30 lines
990 B
TypeScript
30 lines
990 B
TypeScript
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')
|
|
);
|
|
}
|
|
};
|