2018-08-27 21:04:15 +00:00
|
|
|
import * as plugins from './smarthbs.plugins';
|
2017-03-19 16:14:28 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* registers a directory of partials to make them available within handlebars compilation
|
|
|
|
*/
|
2017-05-01 14:57:53 +00:00
|
|
|
export let registerPartialDir = (dirPathArg: string): Promise<any> => {
|
2018-08-27 21:04:15 +00:00
|
|
|
let done = plugins.smartpromise.defer();
|
2017-03-19 16:14:28 +00:00
|
|
|
plugins.smartfile.fs.listFileTree(dirPathArg, '**/*.hbs').then(hbsFileArrayArg => {
|
|
|
|
for (let hbsFilePath of hbsFileArrayArg) {
|
2018-08-27 21:04:15 +00:00
|
|
|
let parsedPath = plugins.path.parse(hbsFilePath);
|
|
|
|
let hbsFileString = plugins.smartfile.fs.toStringSync(
|
|
|
|
plugins.path.join(dirPathArg, hbsFilePath)
|
|
|
|
);
|
2017-05-11 12:51:20 +00:00
|
|
|
if (parsedPath.dir === '/') {
|
2018-08-27 21:04:15 +00:00
|
|
|
parsedPath.dir = '';
|
2017-03-19 16:14:28 +00:00
|
|
|
}
|
2017-05-11 12:51:20 +00:00
|
|
|
if (parsedPath.dir !== '') {
|
2018-08-27 21:04:15 +00:00
|
|
|
parsedPath.dir = parsedPath.dir + '/';
|
2017-05-11 12:51:20 +00:00
|
|
|
}
|
2018-08-27 21:04:15 +00:00
|
|
|
let partialName = `partials/${parsedPath.dir}${parsedPath.name}`;
|
|
|
|
plugins.handlebars.registerPartial(partialName, hbsFileString);
|
|
|
|
done.resolve();
|
2017-03-19 16:14:28 +00:00
|
|
|
}
|
2018-08-27 21:04:15 +00:00
|
|
|
});
|
|
|
|
return done.promise;
|
|
|
|
};
|