import * as plugins from './smarthbs.plugins.js';

/**
 * compiles a directory and outputs it
 */
export let compileDirectory = async (
  originDirPathArg: string,
  destinationDirPathArg: string,
  dataFileNameArg: string
) => {
  let hbsFilePathArray = plugins.smartfile.fs.listFilesSync(originDirPathArg, /.hbs/);
  let data = plugins.smartfile.fs.toObjectSync(
    plugins.path.join(originDirPathArg, dataFileNameArg)
  );
  for (let hbsFilePath of hbsFilePathArray) {
    let parsedPath = plugins.path.parse(hbsFilePath);
    let hbsFileString = plugins.smartfile.fs.toStringSync(
      plugins.path.join(originDirPathArg, hbsFilePath)
    );
    let template = plugins.handlebars.compile(hbsFileString);
    let output = template(data);
    console.log('hi ' + output + ' hi');
    await plugins.smartfile.fs.ensureDir(destinationDirPathArg);
    plugins.smartfile.memory.toFsSync(
      output,
      plugins.path.join(destinationDirPathArg, parsedPath.name + '.html')
    );
  }
};
