diff options
Diffstat (limited to 'node_modules/pupa/index.js')
-rw-r--r-- | node_modules/pupa/index.js | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/node_modules/pupa/index.js b/node_modules/pupa/index.js deleted file mode 100644 index 85739eb..0000000 --- a/node_modules/pupa/index.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; -const {htmlEscape} = require('escape-goat'); - -module.exports = (template, data) => { - if (typeof template !== 'string') { - throw new TypeError(`Expected a \`string\` in the first argument, got \`${typeof template}\``); - } - - if (typeof data !== 'object') { - throw new TypeError(`Expected an \`object\` or \`Array\` in the second argument, got \`${typeof data}\``); - } - - // The regex tries to match either a number inside `{{ }}` or a valid JS identifier or key path. - const doubleBraceRegex = /{{(\d+|[a-z$_][a-z\d$_]*?(?:\.[a-z\d$_]*?)*?)}}/gi; - - if (doubleBraceRegex.test(template)) { - template = template.replace(doubleBraceRegex, (_, key) => { - let result = data; - - for (const property of key.split('.')) { - result = result ? result[property] : ''; - } - - return htmlEscape(String(result)); - }); - } - - const braceRegex = /{(\d+|[a-z$_][a-z\d$_]*?(?:\.[a-z\d$_]*?)*?)}/gi; - - return template.replace(braceRegex, (_, key) => { - let result = data; - - for (const property of key.split('.')) { - result = result ? result[property] : ''; - } - - return String(result); - }); -}; |