aboutsummaryrefslogtreecommitdiff
path: root/node_modules/string-template/compile.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-06-04 08:51:19 +0200
committerMinteck <contact@minteck.org>2022-06-04 08:51:19 +0200
commitb22f6770c8bd084d66950655203c61dd701b3d90 (patch)
tree873d7fb19584ec2709b95cc1ca05a1fc7cfd0fc4 /node_modules/string-template/compile.js
parent383285ecd5292bf9a825e05904955b937de84cc9 (diff)
downloadequestriadb-b22f6770c8bd084d66950655203c61dd701b3d90.tar.gz
equestriadb-b22f6770c8bd084d66950655203c61dd701b3d90.tar.bz2
equestriadb-b22f6770c8bd084d66950655203c61dd701b3d90.zip
Remove node_modules
Diffstat (limited to 'node_modules/string-template/compile.js')
-rw-r--r--node_modules/string-template/compile.js143
1 files changed, 0 insertions, 143 deletions
diff --git a/node_modules/string-template/compile.js b/node_modules/string-template/compile.js
deleted file mode 100644
index 18a48bf..0000000
--- a/node_modules/string-template/compile.js
+++ /dev/null
@@ -1,143 +0,0 @@
-var template = require("./index")
-
-var whitespaceRegex = /["'\\\n\r\u2028\u2029]/g
-var nargs = /\{[0-9a-zA-Z]+\}/g
-
-var replaceTemplate =
-" var args\n" +
-" var result\n" +
-" if (arguments.length === 1 && typeof arguments[0] === \"object\") {\n" +
-" args = arguments[0]\n" +
-" } else {\n" +
-" args = arguments" +
-" }\n\n" +
-" if (!args || !(\"hasOwnProperty\" in args)) {\n" +
-" args = {}\n" +
-" }\n\n" +
-" return {0}"
-
-var literalTemplate = "\"{0}\""
-var argTemplate = "(result = args.hasOwnProperty(\"{0}\") ? " +
- "args[\"{0}\"] : null, \n " +
- "(result === null || result === undefined) ? \"\" : result)"
-
-module.exports = compile
-
-function compile(string, inline) {
- var replacements = string.match(nargs)
- var interleave = string.split(nargs)
- var replace = []
-
- for (var i = 0; i < interleave.length; i++) {
- var current = interleave[i];
- var replacement = replacements[i];
- var escapeLeft = current.charAt(current.length - 1)
- var escapeRight = (interleave[i + 1] || "").charAt(0)
-
- if (replacement) {
- replacement = replacement.substring(1, replacement.length - 1)
- }
-
- if (escapeLeft === "{" && escapeRight === "}") {
- replace.push(current + replacement)
- } else {
- replace.push(current);
- if (replacement) {
- replace.push({ name: replacement })
- }
- }
- }
-
- var prev = [""]
-
- for (var j = 0; j < replace.length; j++) {
- var curr = replace[j]
-
- if (String(curr) === curr) {
- var top = prev[prev.length - 1]
-
- if (String(top) === top) {
- prev[prev.length - 1] = top + curr
- } else {
- prev.push(curr)
- }
- } else {
- prev.push(curr)
- }
- }
-
- replace = prev
-
- if (inline) {
- for (var k = 0; k < replace.length; k++) {
- var token = replace[k]
-
- if (String(token) === token) {
- replace[k] = template(literalTemplate, escape(token))
- } else {
- replace[k] = template(argTemplate, escape(token.name))
- }
- }
-
- var replaceCode = replace.join(" +\n ")
- var compiledSource = template(replaceTemplate, replaceCode)
- return new Function(compiledSource)
- }
-
- return function template() {
- var args
-
- if (arguments.length === 1 && typeof arguments[0] === "object") {
- args = arguments[0]
- } else {
- args = arguments
- }
-
- if (!args || !("hasOwnProperty" in args)) {
- args = {}
- }
-
- var result = []
-
- for (var i = 0; i < replace.length; i++) {
- if (i % 2 === 0) {
- result.push(replace[i])
- } else {
- var argName = replace[i].name
- var arg = args.hasOwnProperty(argName) ? args[argName] : null
- if (arg !== null || arg !== undefined) {
- result.push(arg)
- }
- }
- }
-
- return result.join("")
- }
-}
-
-function escape(string) {
- string = '' + string;
-
- return string.replace(whitespaceRegex, escapedWhitespace);
-}
-
-function escapedWhitespace(character) {
- // Escape all characters not included in SingleStringCharacters and
- // DoubleStringCharacters on
- // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
- switch (character) {
- case '"':
- case "'":
- case '\\':
- return '\\' + character
- // Four possible LineTerminator characters need to be escaped:
- case '\n':
- return '\\n'
- case '\r':
- return '\\r'
- case '\u2028':
- return '\\u2028'
- case '\u2029':
- return '\\u2029'
- }
-}