From a5ccb9f0e88410f6f93075a350c2178cb7ae9f40 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Wed, 31 Jan 2024 17:47:07 +0100 Subject: [PATCH] Dry --- packages/string-templates/src/helpers/list.js | 33 ++++++++++----- .../string-templates/src/index-helpers.js | 41 +------------------ 2 files changed, 25 insertions(+), 49 deletions(-) diff --git a/packages/string-templates/src/helpers/list.js b/packages/string-templates/src/helpers/list.js index e956958865..883ab5678e 100644 --- a/packages/string-templates/src/helpers/list.js +++ b/packages/string-templates/src/helpers/list.js @@ -1,29 +1,42 @@ -const externalHandlebars = require("./external") -const helperList = require("@budibase/handlebars-helpers") +const { date, duration } = require("./date") -let helpers = undefined +// https://github.com/evanw/esbuild/issues/56 +const externalCollections = { + math: require("@budibase/handlebars-helpers/lib/math"), + array: require("@budibase/handlebars-helpers/lib/array"), + number: require("@budibase/handlebars-helpers/lib/number"), + url: require("@budibase/handlebars-helpers/lib/url"), + string: require("@budibase/handlebars-helpers/lib/string"), + comparison: require("@budibase/handlebars-helpers/lib/comparison"), + object: require("@budibase/handlebars-helpers/lib/object"), + regex: require("@budibase/handlebars-helpers/lib/regex"), + uuid: require("@budibase/handlebars-helpers/lib/uuid"), +} const helpersToRemoveForJs = ["sortBy"] module.exports.helpersToRemoveForJs = helpersToRemoveForJs +const addedHelpers = { + date: date, + duration: duration, +} + +let helpers = undefined + module.exports.getJsHelperList = () => { if (helpers) { return helpers } helpers = {} - let constructed = [] - for (let collection of externalHandlebars.externalCollections) { - constructed.push(helperList[collection]()) - } - for (let collection of constructed) { + for (let collection of Object.values(externalCollections)) { for (let [key, func] of Object.entries(collection)) { // Handlebars injects the hbs options to the helpers by default. We are adding an empty {} as a last parameter to simulate it helpers[key] = (...props) => func(...props, {}) } } - for (let key of Object.keys(externalHandlebars.addedHelpers)) { - helpers[key] = externalHandlebars.addedHelpers[key] + for (let key of Object.keys(addedHelpers)) { + helpers[key] = addedHelpers[key] } for (const toRemove of helpersToRemoveForJs) { diff --git a/packages/string-templates/src/index-helpers.js b/packages/string-templates/src/index-helpers.js index 079e38078d..3c16a352fc 100644 --- a/packages/string-templates/src/index-helpers.js +++ b/packages/string-templates/src/index-helpers.js @@ -1,40 +1,3 @@ -const { date, duration } = require("./helpers/date") +const { getJsHelperList } = require("./helpers/list") -// https://github.com/evanw/esbuild/issues/56 -const externalCollections = { - math: require("@budibase/handlebars-helpers/lib/math"), - array: require("@budibase/handlebars-helpers/lib/array"), - number: require("@budibase/handlebars-helpers/lib/number"), - url: require("@budibase/handlebars-helpers/lib/url"), - string: require("@budibase/handlebars-helpers/lib/string"), - comparison: require("@budibase/handlebars-helpers/lib/comparison"), - object: require("@budibase/handlebars-helpers/lib/object"), - regex: require("@budibase/handlebars-helpers/lib/regex"), - uuid: require("@budibase/handlebars-helpers/lib/uuid"), -} - -const addedHelpers = { - date: date, - duration: duration, -} - -let helpers = undefined - -const getHelperList = () => { - if (helpers) { - return helpers - } - - helpers = {} - for (let collection of Object.values(externalCollections)) { - for (let [key, func] of Object.entries(collection)) { - helpers[key] = func - } - } - for (let key of Object.keys(addedHelpers)) { - helpers[key] = addedHelpers[key] - } - return helpers -} - -module.exports = getHelperList() +module.exports = getJsHelperList()