diff --git a/dist/index.d.ts b/dist/index.d.ts index 0085959..5f6b790 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -6,3 +6,4 @@ import './smarthbs.helpers'; export * from './smarthbs.partials'; export * from './smarthbs.template'; export * from './smarthbs.variables'; +export * from './smarthbs.postprocess'; diff --git a/dist/index.js b/dist/index.js index d802930..a86ab68 100644 --- a/dist/index.js +++ b/dist/index.js @@ -10,4 +10,5 @@ require("./smarthbs.helpers"); __export(require("./smarthbs.partials")); __export(require("./smarthbs.template")); __export(require("./smarthbs.variables")); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUE2QztBQUdsQyxRQUFBLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFBO0FBQzFDLHdDQUFrQztBQUNsQyw4QkFBMkI7QUFDM0IseUNBQW1DO0FBQ25DLHlDQUFtQztBQUNuQywwQ0FBb0MifQ== \ No newline at end of file +__export(require("./smarthbs.postprocess")); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUE2QztBQUdsQyxRQUFBLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFBO0FBQzFDLHdDQUFrQztBQUNsQyw4QkFBMkI7QUFDM0IseUNBQW1DO0FBQ25DLHlDQUFtQztBQUNuQywwQ0FBb0M7QUFDcEMsNENBQXNDIn0= \ No newline at end of file diff --git a/dist/smarthbs.helpers.js b/dist/smarthbs.helpers.js index 80401c5..ec664c1 100644 --- a/dist/smarthbs.helpers.js +++ b/dist/smarthbs.helpers.js @@ -1,6 +1,10 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const plugins = require("./smarthbs.plugins"); +/** + * Helper: + * Allows you to analyze a context + */ plugins.handlebars.registerHelper('__analyze', (analyzeContext) => { if (typeof analyzeContext === 'string') { if (plugins.handlebars.partials[analyzeContext]) { @@ -13,6 +17,10 @@ plugins.handlebars.registerHelper('__analyze', (analyzeContext) => { return 'analyzed'; } }); +/** + * Helper: + * logs all registered partials to console + */ plugins.handlebars.registerHelper('__allPartialsLog', (analyzeContext) => { console.log(plugins.handlebars.partials); return 'analyzed'; @@ -21,4 +29,4 @@ plugins.handlebars.registerHelper('__compile', (evaluationString, evaluationCont let template = plugins.handlebars.compile(evaluationString); return template(evaluationContext); }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0aGJzLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBNkM7QUFFN0MsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsY0FBYztJQUM1RCxFQUFFLENBQUMsQ0FBQyxPQUFPLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsY0FBYyxrQkFBa0IsQ0FBQyxDQUFBO1lBQy9FLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxlQUFlLGNBQWMsa0JBQWtCLENBQUMsQ0FBQTtRQUMxRSxDQUFDO1FBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQTtJQUNuQixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRixPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGNBQWM7SUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sQ0FBQyxVQUFVLENBQUE7QUFDbkIsQ0FBQyxDQUFDLENBQUE7QUFFRixPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUI7SUFDakYsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUMzRCxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDcEMsQ0FBQyxDQUFDLENBQUEifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0aGJzLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4Q0FBNkM7QUFFN0M7OztHQUdHO0FBQ0gsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsY0FBYztJQUM1RCxFQUFFLENBQUMsQ0FBQyxPQUFPLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsY0FBYyxrQkFBa0IsQ0FBQyxDQUFBO1lBQy9FLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxlQUFlLGNBQWMsa0JBQWtCLENBQUMsQ0FBQTtRQUMxRSxDQUFDO1FBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQTtJQUNuQixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRjs7O0dBR0c7QUFDSCxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGNBQWM7SUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sQ0FBQyxVQUFVLENBQUE7QUFDbkIsQ0FBQyxDQUFDLENBQUE7QUFFRixPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUI7SUFDakYsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUMzRCxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDcEMsQ0FBQyxDQUFDLENBQUEifQ== \ No newline at end of file diff --git a/dist/smarthbs.postprocess.d.ts b/dist/smarthbs.postprocess.d.ts new file mode 100644 index 0000000..ec7b3e0 --- /dev/null +++ b/dist/smarthbs.postprocess.d.ts @@ -0,0 +1,5 @@ +/** + * allows you to keep handlebars in place across multiple iterations + * helpful when handlebars syntax is used by more than one tool in a build chain + */ +export declare let postprocess: (stringArg: string) => Promise; diff --git a/dist/smarthbs.postprocess.js b/dist/smarthbs.postprocess.js new file mode 100644 index 0000000..10a125a --- /dev/null +++ b/dist/smarthbs.postprocess.js @@ -0,0 +1,23 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +let safeSyntaxBeginRegex = /{-{/g; +let safeSyntaxEndRegex = /}-}/g; +/** + * allows you to keep handlebars in place across multiple iterations + * helpful when handlebars syntax is used by more than one tool in a build chain + */ +exports.postprocess = (stringArg) => __awaiter(this, void 0, void 0, function* () { + let processedString = stringArg; + processedString = processedString.replace(safeSyntaxBeginRegex, '{{'); + processedString = processedString.replace(safeSyntaxEndRegex, '}}'); + return processedString; +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMucG9zdHByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGhicy5wb3N0cHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBSSxvQkFBb0IsR0FBRyxNQUFNLENBQUE7QUFDakMsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLENBQUE7QUFFL0I7OztHQUdHO0FBQ1EsUUFBQSxXQUFXLEdBQUcsQ0FBTyxTQUFpQjtJQUMvQyxJQUFJLGVBQWUsR0FBRyxTQUFTLENBQUE7SUFDL0IsZUFBZSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDckUsZUFBZSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDbkUsTUFBTSxDQUFDLGVBQWUsQ0FBQTtBQUN4QixDQUFDLENBQUEsQ0FBQSJ9 \ No newline at end of file diff --git a/ts/index.ts b/ts/index.ts index bf5b1cc..2571c25 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -7,3 +7,4 @@ import './smarthbs.helpers' export * from './smarthbs.partials' export * from './smarthbs.template' export * from './smarthbs.variables' +export * from './smarthbs.postprocess' diff --git a/ts/smarthbs.helpers.ts b/ts/smarthbs.helpers.ts index 6741b6d..d39b3cb 100644 --- a/ts/smarthbs.helpers.ts +++ b/ts/smarthbs.helpers.ts @@ -1,5 +1,9 @@ import * as plugins from './smarthbs.plugins' +/** + * Helper: + * Allows you to analyze a context + */ plugins.handlebars.registerHelper('__analyze', (analyzeContext) => { if (typeof analyzeContext === 'string') { if (plugins.handlebars.partials[analyzeContext]) { @@ -12,6 +16,10 @@ plugins.handlebars.registerHelper('__analyze', (analyzeContext) => { } }) +/** + * Helper: + * logs all registered partials to console + */ plugins.handlebars.registerHelper('__allPartialsLog', (analyzeContext) => { console.log(plugins.handlebars.partials) return 'analyzed' diff --git a/ts/smarthbs.postprocess.ts b/ts/smarthbs.postprocess.ts new file mode 100644 index 0000000..1a79499 --- /dev/null +++ b/ts/smarthbs.postprocess.ts @@ -0,0 +1,16 @@ +import * as plugins from './smarthbs.plugins' + + +let safeSyntaxBeginRegex = /{-{/g +let safeSyntaxEndRegex = /}-}/g + +/** + * allows you to keep handlebars in place across multiple iterations + * helpful when handlebars syntax is used by more than one tool in a build chain + */ +export let postprocess = async (stringArg: string): Promise => { + let processedString = stringArg + processedString = processedString.replace(safeSyntaxBeginRegex, '{{') + processedString = processedString.replace(safeSyntaxEndRegex, '}}') + return processedString +}