UNPKG

@eggjs/dal-runtime

Version:
95 lines 8 kB
"use strict"; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _TableSqlMap_instances, _TableSqlMap_extract; Object.defineProperty(exports, "__esModule", { value: true }); exports.TableSqlMap = void 0; const NunjucksUtil_1 = require("./NunjucksUtil"); const TemplateUtil_1 = require("./TemplateUtil"); const tegg_types_1 = require("@eggjs/tegg-types"); class TableSqlMap { constructor(name, map) { _TableSqlMap_instances.add(this); this.name = name; this.map = map; const env = NunjucksUtil_1.NunjucksUtils.createEnv(name); const extracted = __classPrivateFieldGet(this, _TableSqlMap_instances, "m", _TableSqlMap_extract).call(this, this.map); this.blocks = extracted.blocks; this.sqlGenerator = extracted.sqlGenerator; for (const key in this.blocks) { // istanbul ignore if if (!this.blocks.hasOwnProperty(key)) continue; env.addGlobal(key, this.blocks[key]); } env.addFilter('toJson', TemplateUtil_1.TemplateUtil.toJson); env.addFilter('toPoint', TemplateUtil_1.TemplateUtil.toPoint); env.addFilter('toLine', TemplateUtil_1.TemplateUtil.toLine); env.addFilter('toPolygon', TemplateUtil_1.TemplateUtil.toPolygon); env.addFilter('toGeometry', TemplateUtil_1.TemplateUtil.toGeometry); env.addFilter('toMultiPoint', TemplateUtil_1.TemplateUtil.toMultiPoint); env.addFilter('toMultiLine', TemplateUtil_1.TemplateUtil.toMultiLine); env.addFilter('toMultiPolygon', TemplateUtil_1.TemplateUtil.toMultiPolygon); env.addFilter('toGeometryCollection', TemplateUtil_1.TemplateUtil.toGeometryCollection); } generate(name, data, timezone) { const generator = this.sqlGenerator[name]; // istanbul ignore if if (!generator) { throw new Error(`No sql map named '${name}' in '${name}'.`); } const template = generator.template; template.env.timezone = timezone; return template.render(data); } getType(name) { const generator = this.sqlGenerator[name]; // istanbul ignore if if (!generator) { throw new Error(`No sql map named '${name}' in '${name}'.`); } return generator.type; } getTemplateString(name) { const generator = this.sqlGenerator[name]; // istanbul ignore if if (!generator) { throw new Error(`No sql map named '${name}' in '${name}'.`); } return generator.raw; } } exports.TableSqlMap = TableSqlMap; _TableSqlMap_instances = new WeakSet(), _TableSqlMap_extract = function _TableSqlMap_extract(map) { const ret = { blocks: {}, sqlGenerator: {}, }; for (const key in map) { // istanbul ignore if if (!map.hasOwnProperty(key)) continue; const sqlMap = map[key]; switch (sqlMap.type) { case tegg_types_1.SqlType.BLOCK: ret.blocks[key] = sqlMap.content || ''; break; case tegg_types_1.SqlType.INSERT: case tegg_types_1.SqlType.SELECT: case tegg_types_1.SqlType.UPDATE: case tegg_types_1.SqlType.DELETE: default: ret.sqlGenerator[key] = { type: sqlMap.type, template: NunjucksUtil_1.NunjucksUtils.compile(this.name, key, sqlMap.sql || ''), raw: sqlMap.sql, }; break; } } return ret; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVTcWxNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVGFibGVTcWxNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsaURBQStDO0FBQy9DLGlEQUE4QztBQUM5QyxrREFBNEM7QUFTNUMsTUFBYSxXQUFXO0lBTXRCLFlBQVksSUFBWSxFQUFFLEdBQTJCOztRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVmLE1BQU0sR0FBRyxHQUFHLDRCQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLHVCQUFBLElBQUksb0RBQVMsTUFBYixJQUFJLEVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUM7UUFFM0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUIscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsU0FBUztZQUMvQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLDJCQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsMkJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSwyQkFBWSxDQUFDLE1BQU0sQ0FB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