UNPKG

@eggjs/dal-runtime

Version:
93 lines 7.9 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TemplateUtil = void 0; const node_path_1 = __importDefault(require("node:path")); const dal_1 = require("@eggjs/tegg/dal"); const tegg_types_1 = require("@eggjs/tegg-types"); class TemplateUtil { static isSpatialType(columnModel) { switch (columnModel.type.type) { case tegg_types_1.ColumnType.GEOMETRY: case tegg_types_1.ColumnType.POINT: case tegg_types_1.ColumnType.LINESTRING: case tegg_types_1.ColumnType.POLYGON: case tegg_types_1.ColumnType.MULTIPOINT: case tegg_types_1.ColumnType.MULTILINESTRING: case tegg_types_1.ColumnType.MULTIPOLYGON: case tegg_types_1.ColumnType.GEOMETRYCOLLECTION: { return true; } default: { return false; } } } static importPath(tableModelPath, currentPath) { return node_path_1.default.relative(currentPath, tableModelPath); } static dbTypeToTsType(columnType) { return `ColumnTsType['${columnType}']`; } static toJson(value) { return JSON.stringify(JSON.stringify(value)); } static toPoint(point) { if (typeof point.x !== 'number' || typeof point.y !== 'number') { throw new Error(`invalidate point ${JSON.stringify(point)}`); } return `Point(${point.x}, ${point.y})`; } static toLine(val) { const points = val.map(t => TemplateUtil.toPoint(t)); return `LINESTRING(${points.join(',')})`; } static toPolygon(val) { const lines = val.map(t => TemplateUtil.toLine(t)); return `POLYGON(${lines.join(',')})`; } static toGeometry(val) { const type = dal_1.SpatialHelper.getGeometryType(val); const filterName = TemplateUtil.getSpatialFilter(type); return TemplateUtil[filterName](val); } static toMultiPoint(val) { const points = val.map(t => TemplateUtil.toPoint(t)); return `MULTIPOINT(${points.join(',')})`; } static toMultiLine(val) { const lines = val.map(t => TemplateUtil.toLine(t)); return `MULTILINESTRING(${lines.join(',')})`; } static toMultiPolygon(val) { const polygon = val.map(t => TemplateUtil.toPolygon(t)); return `MULTIPOLYGON(${polygon.join(',')})`; } static toGeometryCollection(val) { const geometries = val.map(t => { return TemplateUtil.toGeometry(t); }); return `GEOMETRYCOLLECTION(${geometries.join(',')})`; } static getSpatialFilter(columnType) { const filter = TemplateUtil.spatialFilter[columnType]; if (!filter) { throw new Error(`type ${columnType} is not spatial type`); } return filter; } } exports.TemplateUtil = TemplateUtil; TemplateUtil.spatialFilter = { [tegg_types_1.ColumnType.POINT]: 'toPoint', [tegg_types_1.ColumnType.LINESTRING]: 'toLine', [tegg_types_1.ColumnType.POLYGON]: 'toPolygon', [tegg_types_1.ColumnType.GEOMETRY]: 'toGeometry', [tegg_types_1.ColumnType.MULTIPOINT]: 'toMultiPoint', [tegg_types_1.ColumnType.MULTILINESTRING]: 'toMultiLine', [tegg_types_1.ColumnType.MULTIPOLYGON]: 'toMultiPolygon', [tegg_types_1.ColumnType.GEOMETRYCOLLECTION]: 'toGeometryCollection', }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVtcGxhdGVVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RlbXBsYXRlVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBNkI7QUFDN0IseUNBQTZEO0FBQzdELGtEQUErQztBQVkvQyxNQUFhLFlBQVk7SUFDdkIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUF3QjtRQUMzQyxRQUFRLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsS0FBSyx1QkFBVSxDQUFDLFFBQVEsQ0FBQztZQUN6QixLQUFLLHVCQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3RCLEtBQUssdUJBQVUsQ0FBQyxVQUFVLENBQUM7WUFDM0IsS0FBSyx1QkFBVSxDQUFDLE9BQU8sQ0FBQztZQUN4QixLQUFLLHVCQUFVLENBQUMsVUFBVSxDQUFDO1lBQzNCLEtBQUssdUJBQVUsQ0FBQyxlQUFlLENBQUM7WUFDaEMsS0FBSyx1QkFBVSxDQUFDLFlBQVksQ0FBQztZQUM3QixLQUFLLHVCQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFzQixFQUFFLFdBQW1CO1FBQzNELE9BQU8sbUJBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQXNCO1FBQzFDLE9BQU8saUJBQWlCLFVBQVUsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FB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