@feedloop/expression-parser
Advanced tools
Comparing version 0.1.7 to 0.1.8
@@ -62,3 +62,3 @@ "use strict"; | ||
case "string": { | ||
var concatFn = configs.functions.find(function (fn) { | ||
var concatFn_1 = configs.functions.find(function (fn) { | ||
return fn.name === "Concatenate" && | ||
@@ -68,3 +68,3 @@ fn.parameters.every(function (param) { return param.type === "string"; }) && | ||
}); | ||
return concatFn | ||
return (concatFn_1 === null || concatFn_1 === void 0 ? void 0 : concatFn_1.generate) | ||
? expression.parts | ||
@@ -77,4 +77,5 @@ .slice(0, -1) | ||
.reduce(function (prevPart, _a) { | ||
var _b = __read(_a, 2), part = _b[0], expr = _b[1]; | ||
return "Concatenate('".concat(part, "', Concatenate(").concat(expr, ", ").concat(prevPart, "))"); | ||
var _b; | ||
var _c = __read(_a, 2), part = _c[0], expr = _c[1]; | ||
return ((_b = concatFn_1.generate) === null || _b === void 0 ? void 0 : _b.call(concatFn_1, "'".concat(part, "'"), concatFn_1.generate(expr, prevPart))) || prevPart; | ||
}, "'".concat(expression.parts[expression.parts.length - 1].value, "'")) | ||
@@ -81,0 +82,0 @@ : "\"".concat(expression.parts |
{ | ||
"name": "@feedloop/expression-parser", | ||
"version": "0.1.7", | ||
"version": "0.1.8", | ||
"main": "lib/index.js", | ||
@@ -16,3 +16,3 @@ "types": "lib/index.d.ts", | ||
}, | ||
"gitHead": "ae0ab03c577bcb92e961fc3656fb81621cdb106a" | ||
"gitHead": "162f0cb45a1d68d0b5d46d1e427d707a5c41d569" | ||
} |
@@ -73,3 +73,3 @@ import { VariableConfig } from "."; | ||
); | ||
return concatFn | ||
return concatFn?.generate | ||
? expression.parts | ||
@@ -83,3 +83,6 @@ .slice(0, -1) | ||
(prevPart, [part, expr]): string => | ||
`Concatenate('${part}', Concatenate(${expr}, ${prevPart}))`, | ||
concatFn.generate?.( | ||
`'${part}'`, | ||
concatFn.generate(expr, prevPart) | ||
) || prevPart, | ||
`'${ | ||
@@ -86,0 +89,0 @@ expression.parts[expression.parts.length - 1].value |
@@ -36,5 +36,5 @@ import { generateFromExpression } from "./parseHelpers"; | ||
expect(generateFromExpression('"Hello {{"World"}}"')).toEqual( | ||
"Concatenate('Hello ', Concatenate('World', ''))" | ||
"CONCAT('Hello ', CONCAT('World', ''))" | ||
); | ||
}); | ||
}); |
@@ -131,3 +131,3 @@ import { | ||
evaluate: (str1: string, str2: string) => str1.concat(str2), | ||
generate: (str1: string, str2: string) => `CONCATENATE(${str1}, ${str2})`, | ||
generate: (str1: string, str2: string) => `CONCAT(${str1}, ${str2})`, | ||
}, | ||
@@ -134,0 +134,0 @@ ]; |
138863
4309