// esm - Schreibweise mit "import"
import fs from 'node:fs'; // "fs" ist ein Modul aus der Node Standardbib und kann mit Prefix "node:" hervorgehoben werden
import color from 'chalk';

// async ... await
const getFileBy = async (path, encoding = 'utf-8') => {
  try {
    const result = await fs.promises.readFile(path, encoding);
    return result;
  } catch (error) {
    throw new Error(error);
  }
};

const getPromiseFileBy = (path, encoding = 'utf-8') => {
  return new Promise((resolve, reject) => {
    fs.readFile(path, encoding, (err, data) => {
      if (err) {
        reject(err);
      }
      resolve(data);
    });
  });
};

getFileBy('package.json')
  .then((data) => {
    console.log(color.green(data));
  })
  .catch((err) => {
    console.log(color.magenta(err));
  })
  .finally(() => {
    console.log(color.yellow('process finished'));
  });
