From 32941d59499e7650376a1b0db190e42829fddfb4 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Tue, 2 May 2017 00:19:52 +0200 Subject: [PATCH] fix case when no tripple curly vars are present --- dist/smarthbs.variables.d.ts | 1 + dist/smarthbs.variables.js | 8 +++++--- package.json | 2 +- ts/smarthbs.variables.ts | 11 ++++++----- yarn.lock | 10 +++++----- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/dist/smarthbs.variables.d.ts b/dist/smarthbs.variables.d.ts index 06b90fa..1429354 100644 --- a/dist/smarthbs.variables.d.ts +++ b/dist/smarthbs.variables.d.ts @@ -7,5 +7,6 @@ export declare let findVarsInHbsString: (hbsStringArg: string) => Promise Promise; diff --git a/dist/smarthbs.variables.js b/dist/smarthbs.variables.js index 600c112..969211d 100644 --- a/dist/smarthbs.variables.js +++ b/dist/smarthbs.variables.js @@ -23,9 +23,10 @@ exports.findVarsInHbsString = (hbsStringArg) => __awaiter(this, void 0, void 0, let hbsString = hbsStringArg; // make sure we have a new string object that we may destroy let varNameArray = []; let tripleCurlyMatches = hbsString.match(tripleCurlyRegex); - hbsString = hbsString.replace(tripleCurlyRegex, '[[[replaced]]]'); + if (tripleCurlyMatches.length > 0) { + hbsString = hbsString.replace(tripleCurlyRegex, '[[[replaced]]]'); + } let doubleCurlyMatches = hbsString.match(doubleCurlyRegex); - hbsString = hbsString.replace(doubleCurlyRegex, '[[[replaced]]]'); varNameArray = plugins.lodash.concat(varNameArray, tripleCurlyMatches, doubleCurlyMatches) .map((x) => { return x.match(nameInCurlsRegex)[0]; @@ -37,6 +38,7 @@ exports.findVarsInHbsString = (hbsStringArg) => __awaiter(this, void 0, void 0, * checks if supplied variables satisfy an handlebars template * @param hbsStringArg * @param varObjectArg + * @return string array with missing variable names */ exports.checkVarsSatisfaction = (hbsStringArg, varObjectArg) => __awaiter(this, void 0, void 0, function* () { // required vars as combined deep string with . notation @@ -65,4 +67,4 @@ exports.checkVarsSatisfaction = (hbsStringArg, varObjectArg) => __awaiter(this, } return missingVarsObject; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMudmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRoYnMudmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsOENBQThDOzs7Ozs7Ozs7O0FBRTlDLDhDQUE2QztBQUU3QywwQkFBMEI7QUFDMUIsSUFBSSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQTtBQUM3QyxJQUFJLGdCQUFnQixHQUFHLG9CQUFvQixDQUFBO0FBQzNDLElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFBO0FBRWhDOzs7R0FHRztBQUNRLFFBQUEsbUJBQW1CLEdBQUcsQ0FBTyxZQUFvQjtJQUMxRCxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUEsQ0FBQyw0REFBNEQ7SUFDekYsSUFBSSxZQUFZLEdBQWEsRUFBRSxDQUFBO0lBQy9CLElBQUksa0JBQWtCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzFELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDakUsSUFBSSxrQkFBa0IsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDMUQsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUNqRSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO1NBQ3ZGLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDTCxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFFLENBQUMsQ0FBRSxDQUFBO0lBQ3ZDLENBQUMsQ0FBQyxDQUFBO0lBQ0osWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2hELE1BQU0sQ0FBQyxZQUFZLENBQUE7QUFDckIsQ0FBQyxDQUFBLENBQUE7QUFFRDs7OztHQUlHO0FBQ1EsUUFBQSxxQkFBcUIsR0FBRyxDQUFPLFlBQW9CLEVBQUUsWUFBaUI7SUFDL0Usd0RBQXdEO0lBQ3hELElBQUksa0JBQWtCLEdBQUcsTUFBTSwyQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUVoRSxxQkFBcUI7SUFDckIsSUFBSSxrQkFBa0IsR0FBRyxZQUFZLENBQUE7SUFDckMsSUFBSSxpQkFBaUIsR0FBYSxFQUFFLENBQUE7SUFFcEMsZ0JBQWdCO0lBQ2hCLEdBQUcsQ0FBQyxDQUFDLElBQUksU0FBUyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksZUFBZSxHQUFHLGtCQUFrQixDQUFBO1FBQ3hDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdDLElBQUksUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM5QixJQUFJLFlBQVksR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQTtZQUM1RCxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELEtBQUs7WUFDUCxDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLGVBQWUsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDN0MsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDakMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUE7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGlCQUFpQixDQUFBO0FBQzFCLENBQUMsQ0FBQSxDQUFBIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRoYnMudmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRoYnMudmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsOENBQThDOzs7Ozs7Ozs7O0FBRTlDLDhDQUE2QztBQUU3QywwQkFBMEI7QUFDMUIsSUFBSSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQTtBQUM3QyxJQUFJLGdCQUFnQixHQUFHLG9CQUFvQixDQUFBO0FBQzNDLElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFBO0FBRWhDOzs7R0FHRztBQUNRLFFBQUEsbUJBQW1CLEdBQUcsQ0FBTyxZQUFvQjtJQUMxRCxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUEsQ0FBQyw0REFBNEQ7SUFDekYsSUFBSSxZQUFZLEdBQWEsRUFBRSxDQUFBO0lBQy9CLElBQUksa0JBQWtCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzFELEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUNELElBQUksa0JBQWtCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQzFELFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7U0FDdkYsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNMLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUUsQ0FBQyxDQUFFLENBQUE7SUFDdkMsQ0FBQyxDQUFDLENBQUE7SUFDSixZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDaEQsTUFBTSxDQUFDLFlBQVksQ0FBQTtBQUNyQixDQUFDLENBQUEsQ0FBQTtBQUVEOzs7OztHQUtHO0FBQ1EsUUFBQSxxQkFBcUIsR0FBRyxDQUFPLFlBQW9CLEVBQUUsWUFBaUI7SUFDL0Usd0RBQXdEO0lBQ3hELElBQUksa0JBQWtCLEdBQUcsTUFBTSwyQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUVoRSxxQkFBcUI7SUFDckIsSUFBSSxrQkFBa0IsR0FBRyxZQUFZLENBQUE7SUFDckMsSUFBSSxpQkFBaUIsR0FBYSxFQUFFLENBQUE7SUFFcEMsZ0JBQWdCO0lBQ2hCLEdBQUcsQ0FBQyxDQUFDLElBQUksU0FBUyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksZUFBZSxHQUFHLGtCQUFrQixDQUFBO1FBQ3hDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdDLElBQUksUUFBUSxHQUFHLFlBQVksQ0FBRSxDQUFDLENBQUUsQ0FBQTtZQUNoQyxJQUFJLFlBQVksR0FBRyxDQUFDLGVBQWUsQ0FBRSxRQUFRLENBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQTtZQUM5RCxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELEtBQUs7WUFDUCxDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLGVBQWUsR0FBRyxlQUFlLENBQUUsUUFBUSxDQUFFLENBQUE7WUFDL0MsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDakMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUE7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGlCQUFpQixDQUFBO0FBQzFCLENBQUMsQ0FBQSxDQUFBIn0= \ No newline at end of file diff --git a/package.json b/package.json index a6aefdb..e1df20a 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "@types/lodash": "^4.14.63", "handlebars": "^4.0.7", "lodash": "^4.17.4", - "smartfile": "^4.2.4", + "smartfile": "^4.2.9", "smartq": "^1.1.1", "typings-global": "^1.0.16" }, diff --git a/ts/smarthbs.variables.ts b/ts/smarthbs.variables.ts index 6d0ec21..a4405ae 100644 --- a/ts/smarthbs.variables.ts +++ b/ts/smarthbs.variables.ts @@ -16,9 +16,10 @@ export let findVarsInHbsString = async (hbsStringArg: string) => { let hbsString = hbsStringArg // make sure we have a new string object that we may destroy let varNameArray: string[] = [] let tripleCurlyMatches = hbsString.match(tripleCurlyRegex) - hbsString = hbsString.replace(tripleCurlyRegex, '[[[replaced]]]') + if (tripleCurlyMatches.length > 0) { + hbsString = hbsString.replace(tripleCurlyRegex, '[[[replaced]]]') + } let doubleCurlyMatches = hbsString.match(doubleCurlyRegex) - hbsString = hbsString.replace(doubleCurlyRegex, '[[[replaced]]]') varNameArray = plugins.lodash.concat(varNameArray, tripleCurlyMatches, doubleCurlyMatches) .map((x) => { return x.match(nameInCurlsRegex)[ 0 ] @@ -46,12 +47,12 @@ export let checkVarsSatisfaction = async (hbsStringArg: string, varObjectArg: an let splittedVars = stringVar.split('.') let requiredPointer = suppliedVarsObject for (let i = 0; i < splittedVars.length; i++) { - let splitVar = splittedVars[i] - let varAvailable = (requiredPointer[splitVar] !== undefined) + let splitVar = splittedVars[ i ] + let varAvailable = (requiredPointer[ splitVar ] !== undefined) if (varAvailable && splittedVars.length === (i + 1)) { // ok } else if (varAvailable) { - requiredPointer = requiredPointer[splitVar] + requiredPointer = requiredPointer[ splitVar ] } else { missingVarsObject.push(stringVar) i = splittedVars.length diff --git a/yarn.lock b/yarn.lock index 2eb29c4..6ff906c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,8 +34,8 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.63.tgz#5ac475f55bfdc62bc88c4239dbc482f2f3bead93" "@types/node@*": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.14.tgz#1470fa002a113316ac9d9ad163fc738c7a0de2a4" + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.15.tgz#628429289604c5f7e56c13f3a0422f3e59df1a17" "@types/promises-a-plus@*": version "0.0.27" @@ -455,9 +455,9 @@ smartdelay@^1.0.1: dependencies: typings-global "^1.0.14" -smartfile@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/smartfile/-/smartfile-4.2.4.tgz#5b53324f3d7f0b3fb2dffb134b32808da89b4dee" +smartfile@^4.2.9: + version "4.2.9" + resolved "https://registry.yarnpkg.com/smartfile/-/smartfile-4.2.9.tgz#afcd1160049cbe26a86e42e842c86e8b748e69e7" dependencies: "@types/fs-extra" "2.x.x" "@types/vinyl" "^2.0.0"