//os
const os = require('os');

console.log('OS Platform:', os.platform());
console.log('CPU Architecture:', os.arch());
console.log('Free Memory:', os.freemem());
console.log('Total Memory:', os.totalmem());
console.log('Home Directory:', os.homedir());

//path

const path = require('path');

const filePath = '/user/local/app/index.html';

console.log('Base name:', path.basename(filePath));
console.log('Directory name:', path.dirname(filePath));
console.log('Extension:', path.extname(filePath));
console.log('Join path:', path.join(__dirname, 'public', 'index.html'));

//UTIL

const util = require('util');

// Format
const msg = util.format('%s has %d apples', 'John', 5);
console.log(msg);

// Example using promisify (convert callback to promise)
const fs = require('fs');
const readFile = util.promisify(fs.readFile);

readFile('sample.txt', 'utf8')
  .then(data => console.log(data))
  .catch(err => console.error(err));

//event 

const EventEmitter = require('events');

const emitter = new EventEmitter();

// Define event handler
emitter.on('greet', (name) => {
  console.log(`Hello, ${name}!`);
});

// Trigger the event
emitter.emit('greet', 'Alice');