@eggjs/dal-runtime
Version:
tegg dal decorator
95 lines • 8 kB
JavaScript
;
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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