UNPKG

ember-legacy-class-transform

Version:
59 lines (50 loc) 5.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.precompile = precompile; var _syntax = require("@glimmer/syntax"); var _templateCompiler = require("./template-compiler"); var _templateCompiler2 = _interopRequireDefault(_templateCompiler); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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: {} }; function precompile(string) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions; var ast = (0, _syntax.preprocess)(string, options); var _TemplateCompiler$com = _templateCompiler2.default.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlci5qcyJdLCJuYW1lcyI6WyJwcmVwcm9jZXNzIiwiVGVtcGxhdGVDb21waWxlciIsImRlZmF1bHRJZCIsInJlcXVpcmUiLCJjcnlwdG8iLCJpZEZuIiwiaGFzaCIsImNyZWF0ZUhhc2giLCJ1cGRhdGUiLCJzcmMiLCJkaWdlc3QiLCJzdWJzdHJpbmciLCJlIiwiZGVmYXVsdE9wdGlvbnMiLCJpZCIsIm1ldGEiLCJwcmVjb21waWxlIiwic3RyaW5nIiwib3B0aW9ucyIsImFzdCIsImNvbXBpbGUiLCJibG9jayIsImJsb2NrSlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b0pTT04iLCJ0ZW1wbGF0ZUpTT05PYmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7O1FBMEJPLEFBQVM7O0FBMUJoQixBQUFTLEFBQWtCOztBQUMzQixBQUFPLEFBQXNCOzs7Ozs7QUFDN0IsSUFBTSx3QkFBbUIsQUFDckI7UUFBSSxPQUFBLEFBQU8sWUFBWCxBQUF1QixZQUFZLEFBQy9CO1lBQUksQUFDQTtBQUNBO2dCQUFNLFNBQVMsUUFBZixBQUFlLEFBQVEsQUFDdkI7QUFDQTtnQkFBSSxPQUFPLGVBQU8sQUFDZDtvQkFBSSxPQUFPLE9BQUEsQUFBTyxXQUFsQixBQUFXLEFBQWtCLEFBQzdCO3FCQUFBLEFBQUssT0FBTCxBQUFZLEtBQVosQUFBaUIsQUFDakI7QUFDQTt1QkFBTyxLQUFBLEFBQUssT0FBTCxBQUFZLFVBQVosQUFBc0IsVUFBdEIsQUFBZ0MsR0FBdkMsQUFBTyxBQUFtQyxBQUM3QztBQUxELEFBTUE7aUJBQUEsQUFBSyxBQUNMO21CQUFBLEFBQU8sQUFDVjtBQVpELFVBWUUsT0FBQSxBQUFPLEdBQUcsQUFBRSxDQUNqQjtBQUNEO1dBQU8sU0FBQSxBQUFTLE9BQU8sQUFDbkI7ZUFBQSxBQUFPLEFBQ1Y7QUFGRCxBQUdIO0FBbkJELEFBQWtCLENBQUM7QUFvQm5CLElBQU07UUFBaUIsQUFDZixBQUNKO1VBRkosQUFBdUIsQUFFYixBQUVWO0FBSnVCLEFBQ25CO0FBR0csb0JBQUEsQUFBb0IsUUFBa0M7UUFBMUIsQUFBMEIsOEVBQWhCLEFBQWdCLEFBQ3pEOztRQUFJLE1BQU0sd0JBQUEsQUFBVyxRQURvQyxBQUN6RCxBQUFVLEFBQW1COztnQ0FDUCwyQkFBQSxBQUFpQixRQUFqQixBQUF5QixTQUZVLEFBRW5DLEFBQWtDO1FBRkMsQUFFbkQsOEJBRm1ELEFBRW5EO1FBRm1ELEFBRTVDLDZCQUY0QyxBQUU1QyxBQUNiOztRQUFJLE9BQU8sUUFBQSxBQUFRLE1BQW5CLEFBQXlCLEFBQ3pCO1FBQUksWUFBWSxLQUFBLEFBQUssVUFBVSxNQUEvQixBQUFnQixBQUFlLEFBQU0sQUFDckM7UUFBSTtZQUNJLEtBQUssS0FBQSxBQUFLLFVBQUwsQUFBZSxRQURILEFBQ2pCLEFBQTRCLEFBQ2hDO2VBRnFCLEFBRWQsQUFDUDtjQUhKLEFBQXlCLEFBS3pCO0FBTHlCLEFBQ3JCO0FBS0o7V0FBTyxLQUFBLEFBQUssVUFBWixBQUFPLEFBQWUsQUFDekIiLCJmaWxlIjoibGliL2NvbXBpbGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJlcHJvY2VzcyB9IGZyb20gXCJAZ2xpbW1lci9zeW50YXhcIjtcbmltcG9ydCBUZW1wbGF0ZUNvbXBpbGVyIGZyb20gXCIuL3RlbXBsYXRlLWNvbXBpbGVyXCI7XG5jb25zdCBkZWZhdWx0SWQgPSAoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLyogdHNsaW50OmRpc2FibGU6bm8tcmVxdWlyZS1pbXBvcnRzICovXG4gICAgICAgICAgICBjb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTtcbiAgICAgICAgICAgIC8qIHRzbGludDplbmFibGU6bm8tcmVxdWlyZS1pbXBvcnRzICovXG4gICAgICAgICAgICBsZXQgaWRGbiA9IHNyYyA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMScpO1xuICAgICAgICAgICAgICAgIGhhc2gudXBkYXRlKHNyYywgJ3V0ZjgnKTtcbiAgICAgICAgICAgICAgICAvLyB0cmltIHRvIDYgYnl0ZXMgb2YgZGF0YSAoMl40OCAtIDEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhc2guZGlnZXN0KCdiYXNlNjQnKS5zdWJzdHJpbmcoMCwgOCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWRGbihcInRlc3RcIik7XG4gICAgICAgICAgICByZXR1cm4gaWRGbjtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlkRm4oKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG59KSgpO1xuY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgaWQ6IGRlZmF1bHRJZCxcbiAgICBtZXRhOiB7fVxufTtcbmV4cG9ydCBmdW5jdGlvbiBwcmVjb21waWxlKHN0cmluZywgb3B0aW9ucyA9IGRlZmF1bHRPcHRpb25zKSB7XG4gICAgbGV0IGFzdCA9IHByZXByb2Nlc3Moc3RyaW5nLCBvcHRpb25zKTtcbiAgICBsZXQgeyBibG9jaywgbWV0YSB9ID0gVGVtcGxhdGVDb21waWxlci5jb21waWxlKG9wdGlvbnMsIGFzdCk7XG4gICAgbGV0IGlkRm4gPSBvcHRpb25zLmlkIHx8IGRlZmF1bHRJZDtcbiAgICBsZXQgYmxvY2tKU09OID0gSlNPTi5zdHJpbmdpZnkoYmxvY2sudG9KU09OKCkpO1xuICAgIGxldCB0ZW1wbGF0ZUpTT05PYmplY3QgPSB7XG4gICAgICAgIGlkOiBpZEZuKEpTT04uc3RyaW5naWZ5KG1ldGEpICsgYmxvY2tKU09OKSxcbiAgICAgICAgYmxvY2s6IGJsb2NrSlNPTixcbiAgICAgICAgbWV0YVxuICAgIH07XG4gICAgLy8gSlNPTiBpcyBqYXZhc2NyaXB0XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRlbXBsYXRlSlNPTk9iamVjdCk7XG59Il19