UNPKG

ember-legacy-class-transform

Version:
46 lines (43 loc) 5.22 kB
import { preprocess } from "@glimmer/syntax"; import TemplateCompiler from "./template-compiler"; var defaultId = function () { if (typeof require === 'function') { try { /* tslint:disable:no-require-imports */ var crypto = require('crypto'); /* tslint:enable:no-require-imports */ var idFn = function (src) { var hash = crypto.createHash('sha1'); hash.update(src, 'utf8'); // trim to 6 bytes of data (2^48 - 1) return hash.digest('base64').substring(0, 8); }; idFn("test"); return idFn; } catch (e) {} } return function idFn() { return null; }; }(); var defaultOptions = { id: defaultId, meta: {} }; export function precompile(string) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions; var ast = preprocess(string, options); var _TemplateCompiler$com = TemplateCompiler.compile(options, ast), block = _TemplateCompiler$com.block, meta = _TemplateCompiler$com.meta; var idFn = options.id || defaultId; var blockJSON = JSON.stringify(block.toJSON()); var templateJSONObject = { id: idFn(JSON.stringify(meta) + blockJSON), block: blockJSON, meta: meta }; // JSON is javascript return JSON.stringify(templateJSONObject); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlci5qcyJdLCJuYW1lcyI6WyJwcmVwcm9jZXNzIiwiVGVtcGxhdGVDb21waWxlciIsImRlZmF1bHRJZCIsInJlcXVpcmUiLCJjcnlwdG8iLCJpZEZuIiwiaGFzaCIsImNyZWF0ZUhhc2giLCJ1cGRhdGUiLCJzcmMiLCJkaWdlc3QiLCJzdWJzdHJpbmciLCJlIiwiZGVmYXVsdE9wdGlvbnMiLCJpZCIsIm1ldGEiLCJwcmVjb21waWxlIiwic3RyaW5nIiwib3B0aW9ucyIsImFzdCIsImNvbXBpbGUiLCJibG9jayIsImJsb2NrSlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b0pTT04iLCJ0ZW1wbGF0ZUpTT05PYmplY3QiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVQsUUFBMkIsaUJBQTNCO0FBQ0EsT0FBT0MsZ0JBQVAsTUFBNkIscUJBQTdCO0FBQ0EsSUFBTUMsWUFBYSxZQUFNO0FBQ3JCLFFBQUksT0FBT0MsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUMvQixZQUFJO0FBQ0E7QUFDQSxnQkFBTUMsU0FBU0QsUUFBUSxRQUFSLENBQWY7QUFDQTtBQUNBLGdCQUFJRSxPQUFPLGVBQU87QUFDZCxvQkFBSUMsT0FBT0YsT0FBT0csVUFBUCxDQUFrQixNQUFsQixDQUFYO0FBQ0FELHFCQUFLRSxNQUFMLENBQVlDLEdBQVosRUFBaUIsTUFBakI7QUFDQTtBQUNBLHVCQUFPSCxLQUFLSSxNQUFMLENBQVksUUFBWixFQUFzQkMsU0FBdEIsQ0FBZ0MsQ0FBaEMsRUFBbUMsQ0FBbkMsQ0FBUDtBQUNILGFBTEQ7QUFNQU4saUJBQUssTUFBTDtBQUNBLG1CQUFPQSxJQUFQO0FBQ0gsU0FaRCxDQVlFLE9BQU9PLENBQVAsRUFBVSxDQUFFO0FBQ2pCO0FBQ0QsV0FBTyxTQUFTUCxJQUFULEdBQWdCO0FBQ25CLGVBQU8sSUFBUDtBQUNILEtBRkQ7QUFHSCxDQW5CaUIsRUFBbEI7QUFvQkEsSUFBTVEsaUJBQWlCO0FBQ25CQyxRQUFJWixTQURlO0FBRW5CYSxVQUFNO0FBRmEsQ0FBdkI7QUFJQSxPQUFPLFNBQVNDLFVBQVQsQ0FBb0JDLE1BQXBCLEVBQXNEO0FBQUEsUUFBMUJDLE9BQTBCLHVFQUFoQkwsY0FBZ0I7O0FBQ3pELFFBQUlNLE1BQU1uQixXQUFXaUIsTUFBWCxFQUFtQkMsT0FBbkIsQ0FBVjs7QUFEeUQsZ0NBRW5DakIsaUJBQWlCbUIsT0FBakIsQ0FBeUJGLE9BQXpCLEVBQWtDQyxHQUFsQyxDQUZtQztBQUFBLFFBRW5ERSxLQUZtRCx5QkFFbkRBLEtBRm1EO0FBQUEsUUFFNUNOLElBRjRDLHlCQUU1Q0EsSUFGNEM7O0FBR3pELFFBQUlWLE9BQU9hLFFBQVFKLEVBQVIsSUFBY1osU0FBekI7QUFDQSxRQUFJb0IsWUFBWUMsS0FBS0MsU0FBTCxDQUFlSCxNQUFNSSxNQUFOLEVBQWYsQ0FBaEI7QUFDQSxRQUFJQyxxQkFBcUI7QUFDckJaLFlBQUlULEtBQUtrQixLQUFLQyxTQUFMLENBQWVULElBQWYsSUFBdUJPLFNBQTVCLENBRGlCO0FBRXJCRCxlQUFPQyxTQUZjO0FBR3JCUDtBQUhxQixLQUF6QjtBQUtBO0FBQ0EsV0FBT1EsS0FBS0MsU0FBTCxDQUFlRSxrQkFBZixDQUFQO0FBQ0giLCJmaWxlIjoibGliL2NvbXBpbGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJlcHJvY2VzcyB9IGZyb20gXCJAZ2xpbW1lci9zeW50YXhcIjtcbmltcG9ydCBUZW1wbGF0ZUNvbXBpbGVyIGZyb20gXCIuL3RlbXBsYXRlLWNvbXBpbGVyXCI7XG5jb25zdCBkZWZhdWx0SWQgPSAoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLyogdHNsaW50OmRpc2FibGU6bm8tcmVxdWlyZS1pbXBvcnRzICovXG4gICAgICAgICAgICBjb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTtcbiAgICAgICAgICAgIC8qIHRzbGludDplbmFibGU6bm8tcmVxdWlyZS1pbXBvcnRzICovXG4gICAgICAgICAgICBsZXQgaWRGbiA9IHNyYyA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMScpO1xuICAgICAgICAgICAgICAgIGhhc2gudXBkYXRlKHNyYywgJ3V0ZjgnKTtcbiAgICAgICAgICAgICAgICAvLyB0cmltIHRvIDYgYnl0ZXMgb2YgZGF0YSAoMl40OCAtIDEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhc2guZGlnZXN0KCdiYXNlNjQnKS5zdWJzdHJpbmcoMCwgOCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWRGbihcInRlc3RcIik7XG4gICAgICAgICAgICByZXR1cm4gaWRGbjtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlkRm4oKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG59KSgpO1xuY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgaWQ6IGRlZmF1bHRJZCxcbiAgICBtZXRhOiB7fVxufTtcbmV4cG9ydCBmdW5jdGlvbiBwcmVjb21waWxlKHN0cmluZywgb3B0aW9ucyA9IGRlZmF1bHRPcHRpb25zKSB7XG4gICAgbGV0IGFzdCA9IHByZXByb2Nlc3Moc3RyaW5nLCBvcHRpb25zKTtcbiAgICBsZXQgeyBibG9jaywgbWV0YSB9ID0gVGVtcGxhdGVDb21waWxlci5jb21waWxlKG9wdGlvbnMsIGFzdCk7XG4gICAgbGV0IGlkRm4gPSBvcHRpb25zLmlkIHx8IGRlZmF1bHRJZDtcbiAgICBsZXQgYmxvY2tKU09OID0gSlNPTi5zdHJpbmdpZnkoYmxvY2sudG9KU09OKCkpO1xuICAgIGxldCB0ZW1wbGF0ZUpTT05PYmplY3QgPSB7XG4gICAgICAgIGlkOiBpZEZuKEpTT04uc3RyaW5naWZ5KG1ldGEpICsgYmxvY2tKU09OKSxcbiAgICAgICAgYmxvY2s6IGJsb2NrSlNPTixcbiAgICAgICAgbWV0YVxuICAgIH07XG4gICAgLy8gSlNPTiBpcyBqYXZhc2NyaXB0XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRlbXBsYXRlSlNPTk9iamVjdCk7XG59Il19