UNPKG

eyeglass

Version:
100 lines 2.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const SassImplementation_1 = require("./SassImplementation"); const util_1 = require("util"); let rUnquote = /^("|')(.*)\1$/; let rPlaceholders = /\${([^}]+)}/g; function unquote(sass, string) { if (typeof string === "string") { return sass.types.String(string.replace(rUnquote, "$2")); } if (!SassImplementation_1.isSassString(sass, string)) { throw new Error(`Expected: Sass String. Got: ${util_1.inspect(string)}`); } if (rUnquote.test(string.getValue())) { return sass.types.String(RegExp.$2); } else { return string; } } exports.unquote = unquote; function unquoteJS(sass, string) { if (typeof string === "string") { return string.replace(rUnquote, "$2"); } if (!SassImplementation_1.isSassString(sass, string)) { throw new Error(`Expected: Sass String. Got: ${util_1.inspect(string)}`); } if (rUnquote.test(string.getValue())) { return RegExp.$2; } else { return string.getValue(); } } exports.unquoteJS = unquoteJS; function quoteSass(sass, string) { if (typeof string === "string") { if (rUnquote.test(string)) { return sass.types.String(string); } else { return sass.types.String(`"${string}"`); } } if (typeof string === "undefined") { return undefined; } if (!SassImplementation_1.isSassString(sass, string)) { throw new Error(`Expected: Sass String. Got: ${util_1.inspect(string)}`); } if (rUnquote.test(string.getValue())) { return string; } else { return sass.types.String(`"${string.getValue()}"`); } } exports.quoteSass = quoteSass; function quoteJS(sass, string) { if (typeof string === "string") { if (rUnquote.test(string)) { return string; } else { return `"${string}"`; } } if (typeof string === "undefined") { return undefined; } if (!SassImplementation_1.isSassString(sass, string)) { throw new Error(`Expected: Sass String. Got: ${util_1.inspect(string)}`); } if (rUnquote.test(string.getValue())) { return string.getValue(); } else { return `"${string.getValue()}"`; } } exports.quoteJS = quoteJS; function tmpl(sass, templateString, data) { return templateString.replace(rPlaceholders, (match, key) => { if (data.hasOwnProperty(key)) { let v = data[key]; if (typeof v === "string") { return v; } else { return SassImplementation_1.inspect(sass, v); } } else { return match; } }); } exports.tmpl = tmpl; //# sourceMappingURL=strings.js.map