@eggjs/dal-runtime 4.0.0-beta.7 → 4.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,81 +1,92 @@
1
- import { TemplateUtil } from "./TemplateUtil.js";
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _TableSqlMap_instances, _TableSqlMap_extract;
7
+ import { Template } from 'nunjucks';
8
+ import { SqlType } from '@eggjs/tegg-types';
2
9
  import { NunjucksUtils } from "./NunjucksUtil.js";
3
- import { SqlType } from "@eggjs/tegg-types";
4
- import { Template } from "nunjucks";
5
-
6
- //#region src/TableSqlMap.ts
7
- var TableSqlMap = class {
8
- constructor(name, map) {
9
- this.name = name;
10
- this.map = map;
11
- const env = NunjucksUtils.createEnv(name);
12
- const extracted = this.#extract(this.map);
13
- this.blocks = extracted.blocks;
14
- this.sqlGenerator = extracted.sqlGenerator;
15
- for (const key in this.blocks) {
16
- // istanbul ignore if
17
- if (!this.blocks.hasOwnProperty(key)) continue;
18
- env.addGlobal(key, this.blocks[key]);
19
- }
20
- env.addFilter("toJson", TemplateUtil.toJson);
21
- env.addFilter("toPoint", TemplateUtil.toPoint);
22
- env.addFilter("toLine", TemplateUtil.toLine);
23
- env.addFilter("toPolygon", TemplateUtil.toPolygon);
24
- env.addFilter("toGeometry", TemplateUtil.toGeometry);
25
- env.addFilter("toMultiPoint", TemplateUtil.toMultiPoint);
26
- env.addFilter("toMultiLine", TemplateUtil.toMultiLine);
27
- env.addFilter("toMultiPolygon", TemplateUtil.toMultiPolygon);
28
- env.addFilter("toGeometryCollection", TemplateUtil.toGeometryCollection);
29
- }
30
- #extract(map) {
31
- const ret = {
32
- blocks: {},
33
- sqlGenerator: {}
34
- };
35
- for (const key in map) {
36
- // istanbul ignore if
37
- if (!map.hasOwnProperty(key)) continue;
38
- const sqlMap = map[key];
39
- switch (sqlMap.type) {
40
- case SqlType.BLOCK:
41
- ret.blocks[key] = sqlMap.content || "";
42
- break;
43
- case SqlType.INSERT:
44
- case SqlType.SELECT:
45
- case SqlType.UPDATE:
46
- case SqlType.DELETE:
47
- default:
48
- ret.sqlGenerator[key] = {
49
- type: sqlMap.type,
50
- template: NunjucksUtils.compile(this.name, key, sqlMap.sql || ""),
51
- raw: sqlMap.sql
52
- };
53
- break;
54
- }
55
- }
56
- return ret;
57
- }
58
- generate(name, data, timezone) {
59
- const generator = this.sqlGenerator[name];
60
- // istanbul ignore if
61
- if (!generator) throw new Error(`No sql map named '${name}' in '${name}'.`);
62
- const template = generator.template;
63
- template.env.timezone = timezone;
64
- return template.render(data);
65
- }
66
- getType(name) {
67
- const generator = this.sqlGenerator[name];
68
- // istanbul ignore if
69
- if (!generator) throw new Error(`No sql map named '${name}' in '${name}'.`);
70
- return generator.type;
71
- }
72
- getTemplateString(name) {
73
- const generator = this.sqlGenerator[name];
74
- // istanbul ignore if
75
- if (!generator) throw new Error(`No sql map named '${name}' in '${name}'.`);
76
- return generator.raw;
77
- }
10
+ import { TemplateUtil } from "./TemplateUtil.js";
11
+ export class TableSqlMap {
12
+ constructor(name, map) {
13
+ _TableSqlMap_instances.add(this);
14
+ this.name = name;
15
+ this.map = map;
16
+ const env = NunjucksUtils.createEnv(name);
17
+ const extracted = __classPrivateFieldGet(this, _TableSqlMap_instances, "m", _TableSqlMap_extract).call(this, this.map);
18
+ this.blocks = extracted.blocks;
19
+ this.sqlGenerator = extracted.sqlGenerator;
20
+ for (const key in this.blocks) {
21
+ // istanbul ignore if
22
+ if (!this.blocks.hasOwnProperty(key))
23
+ continue;
24
+ env.addGlobal(key, this.blocks[key]);
25
+ }
26
+ env.addFilter('toJson', TemplateUtil.toJson);
27
+ env.addFilter('toPoint', TemplateUtil.toPoint);
28
+ env.addFilter('toLine', TemplateUtil.toLine);
29
+ env.addFilter('toPolygon', TemplateUtil.toPolygon);
30
+ env.addFilter('toGeometry', TemplateUtil.toGeometry);
31
+ env.addFilter('toMultiPoint', TemplateUtil.toMultiPoint);
32
+ env.addFilter('toMultiLine', TemplateUtil.toMultiLine);
33
+ env.addFilter('toMultiPolygon', TemplateUtil.toMultiPolygon);
34
+ env.addFilter('toGeometryCollection', TemplateUtil.toGeometryCollection);
35
+ }
36
+ generate(name, data, timezone) {
37
+ const generator = this.sqlGenerator[name];
38
+ // istanbul ignore if
39
+ if (!generator) {
40
+ throw new Error(`No sql map named '${name}' in '${name}'.`);
41
+ }
42
+ const template = generator.template;
43
+ template.env.timezone = timezone;
44
+ return template.render(data);
45
+ }
46
+ getType(name) {
47
+ const generator = this.sqlGenerator[name];
48
+ // istanbul ignore if
49
+ if (!generator) {
50
+ throw new Error(`No sql map named '${name}' in '${name}'.`);
51
+ }
52
+ return generator.type;
53
+ }
54
+ getTemplateString(name) {
55
+ const generator = this.sqlGenerator[name];
56
+ // istanbul ignore if
57
+ if (!generator) {
58
+ throw new Error(`No sql map named '${name}' in '${name}'.`);
59
+ }
60
+ return generator.raw;
61
+ }
62
+ }
63
+ _TableSqlMap_instances = new WeakSet(), _TableSqlMap_extract = function _TableSqlMap_extract(map) {
64
+ const ret = {
65
+ blocks: {},
66
+ sqlGenerator: {},
67
+ };
68
+ for (const key in map) {
69
+ // istanbul ignore if
70
+ if (!map.hasOwnProperty(key))
71
+ continue;
72
+ const sqlMap = map[key];
73
+ switch (sqlMap.type) {
74
+ case SqlType.BLOCK:
75
+ ret.blocks[key] = sqlMap.content || '';
76
+ break;
77
+ case SqlType.INSERT:
78
+ case SqlType.SELECT:
79
+ case SqlType.UPDATE:
80
+ case SqlType.DELETE:
81
+ default:
82
+ ret.sqlGenerator[key] = {
83
+ type: sqlMap.type,
84
+ template: NunjucksUtils.compile(this.name, key, sqlMap.sql || ''),
85
+ raw: sqlMap.sql,
86
+ };
87
+ break;
88
+ }
89
+ }
90
+ return ret;
78
91
  };
79
-
80
- //#endregion
81
- export { TableSqlMap };
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVTcWxNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVGFibGVTcWxNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFqRCxNQUFNLE9BQU8sV0FBVztJQU10QixZQUFZLElBQVksRUFBRSxHQUEyQjs7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFFZixNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLHVCQUFBLElBQUksb0RBQVMsTUFBYixJQUFJLEVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUM7UUFFM0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUIscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsU0FBUztZQUMvQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxNQUFN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
@@ -1,22 +1,19 @@
1
- import { ColumnModel } from "@eggjs/dal-decorator";
2
- import { ColumnType, Geometry, GeometryCollection, Line, MultiLine, MultiPoint, MultiPolygon, Point, Polygon } from "@eggjs/tegg-types";
3
-
4
- //#region src/TemplateUtil.d.ts
5
- declare class TemplateUtil {
6
- static isSpatialType(columnModel: ColumnModel): boolean;
7
- static importPath(tableModelPath: string, currentPath: string): string;
8
- static dbTypeToTsType(columnType: ColumnType): string;
9
- static toJson(value: any): string;
10
- static toPoint(point: Point): string;
11
- static toLine(val: Line): string;
12
- static toPolygon(val: Polygon): string;
13
- static toGeometry(val: Geometry): string;
14
- static toMultiPoint(val: MultiPoint): string;
15
- static toMultiLine(val: MultiLine): string;
16
- static toMultiPolygon(val: MultiPolygon): string;
17
- static toGeometryCollection(val: GeometryCollection): string;
18
- static spatialFilter: Record<ColumnType, string>;
19
- static getSpatialFilter(columnType: ColumnType): string;
1
+ import { ColumnModel } from '@eggjs/dal-decorator';
2
+ import { ColumnType } from '@eggjs/tegg-types';
3
+ import type { Geometry, GeometryCollection, Line, MultiLine, MultiPoint, MultiPolygon, Point, Polygon } from '@eggjs/tegg-types';
4
+ export declare class TemplateUtil {
5
+ static isSpatialType(columnModel: ColumnModel): boolean;
6
+ static importPath(tableModelPath: string, currentPath: string): string;
7
+ static dbTypeToTsType(columnType: ColumnType): string;
8
+ static toJson(value: any): string;
9
+ static toPoint(point: Point): string;
10
+ static toLine(val: Line): string;
11
+ static toPolygon(val: Polygon): string;
12
+ static toGeometry(val: Geometry): string;
13
+ static toMultiPoint(val: MultiPoint): string;
14
+ static toMultiLine(val: MultiLine): string;
15
+ static toMultiPolygon(val: MultiPolygon): string;
16
+ static toGeometryCollection(val: GeometryCollection): string;
17
+ static spatialFilter: Record<ColumnType, string>;
18
+ static getSpatialFilter(columnType: ColumnType): string;
20
19
  }
21
- //#endregion
22
- export { TemplateUtil };
@@ -1,78 +1,86 @@
1
- import { ColumnModel, SpatialHelper } from "@eggjs/dal-decorator";
2
- import { ColumnType } from "@eggjs/tegg-types";
3
- import path from "node:path";
4
-
5
- //#region src/TemplateUtil.ts
6
- var TemplateUtil = class TemplateUtil {
7
- static isSpatialType(columnModel) {
8
- switch (columnModel.type.type) {
9
- case ColumnType.GEOMETRY:
10
- case ColumnType.POINT:
11
- case ColumnType.LINESTRING:
12
- case ColumnType.POLYGON:
13
- case ColumnType.MULTIPOINT:
14
- case ColumnType.MULTILINESTRING:
15
- case ColumnType.MULTIPOLYGON:
16
- case ColumnType.GEOMETRYCOLLECTION: return true;
17
- default: return false;
18
- }
19
- }
20
- static importPath(tableModelPath, currentPath) {
21
- return path.relative(currentPath, tableModelPath);
22
- }
23
- static dbTypeToTsType(columnType) {
24
- return `ColumnTsType['${columnType}']`;
25
- }
26
- static toJson(value) {
27
- return JSON.stringify(JSON.stringify(value));
28
- }
29
- static toPoint(point) {
30
- if (typeof point.x !== "number" || typeof point.y !== "number") throw new Error(`invalidate point ${JSON.stringify(point)}`);
31
- return `Point(${point.x}, ${point.y})`;
32
- }
33
- static toLine(val) {
34
- return `LINESTRING(${val.map((t) => TemplateUtil.toPoint(t)).join(",")})`;
35
- }
36
- static toPolygon(val) {
37
- return `POLYGON(${val.map((t) => TemplateUtil.toLine(t)).join(",")})`;
38
- }
39
- static toGeometry(val) {
40
- const type = SpatialHelper.getGeometryType(val);
41
- const filterName = TemplateUtil.getSpatialFilter(type);
42
- return TemplateUtil[filterName](val);
43
- }
44
- static toMultiPoint(val) {
45
- return `MULTIPOINT(${val.map((t) => TemplateUtil.toPoint(t)).join(",")})`;
46
- }
47
- static toMultiLine(val) {
48
- return `MULTILINESTRING(${val.map((t) => TemplateUtil.toLine(t)).join(",")})`;
49
- }
50
- static toMultiPolygon(val) {
51
- return `MULTIPOLYGON(${val.map((t) => TemplateUtil.toPolygon(t)).join(",")})`;
52
- }
53
- static toGeometryCollection(val) {
54
- return `GEOMETRYCOLLECTION(${val.map((t) => {
55
- return TemplateUtil.toGeometry(t);
56
- }).join(",")})`;
57
- }
58
- static {
59
- this.spatialFilter = {
60
- [ColumnType.POINT]: "toPoint",
61
- [ColumnType.LINESTRING]: "toLine",
62
- [ColumnType.POLYGON]: "toPolygon",
63
- [ColumnType.GEOMETRY]: "toGeometry",
64
- [ColumnType.MULTIPOINT]: "toMultiPoint",
65
- [ColumnType.MULTILINESTRING]: "toMultiLine",
66
- [ColumnType.MULTIPOLYGON]: "toMultiPolygon",
67
- [ColumnType.GEOMETRYCOLLECTION]: "toGeometryCollection"
68
- };
69
- }
70
- static getSpatialFilter(columnType) {
71
- const filter = TemplateUtil.spatialFilter[columnType];
72
- if (!filter) throw new Error(`type ${columnType} is not spatial type`);
73
- return filter;
74
- }
1
+ import path from 'node:path';
2
+ import { ColumnModel, SpatialHelper } from '@eggjs/dal-decorator';
3
+ import { ColumnType } from '@eggjs/tegg-types';
4
+ export class TemplateUtil {
5
+ static isSpatialType(columnModel) {
6
+ switch (columnModel.type.type) {
7
+ case ColumnType.GEOMETRY:
8
+ case ColumnType.POINT:
9
+ case ColumnType.LINESTRING:
10
+ case ColumnType.POLYGON:
11
+ case ColumnType.MULTIPOINT:
12
+ case ColumnType.MULTILINESTRING:
13
+ case ColumnType.MULTIPOLYGON:
14
+ case ColumnType.GEOMETRYCOLLECTION: {
15
+ return true;
16
+ }
17
+ default: {
18
+ return false;
19
+ }
20
+ }
21
+ }
22
+ static importPath(tableModelPath, currentPath) {
23
+ return path.relative(currentPath, tableModelPath);
24
+ }
25
+ static dbTypeToTsType(columnType) {
26
+ return `ColumnTsType['${columnType}']`;
27
+ }
28
+ static toJson(value) {
29
+ return JSON.stringify(JSON.stringify(value));
30
+ }
31
+ static toPoint(point) {
32
+ if (typeof point.x !== 'number' || typeof point.y !== 'number') {
33
+ throw new Error(`invalidate point ${JSON.stringify(point)}`);
34
+ }
35
+ return `Point(${point.x}, ${point.y})`;
36
+ }
37
+ static toLine(val) {
38
+ const points = val.map(t => TemplateUtil.toPoint(t));
39
+ return `LINESTRING(${points.join(',')})`;
40
+ }
41
+ static toPolygon(val) {
42
+ const lines = val.map(t => TemplateUtil.toLine(t));
43
+ return `POLYGON(${lines.join(',')})`;
44
+ }
45
+ static toGeometry(val) {
46
+ const type = SpatialHelper.getGeometryType(val);
47
+ const filterName = TemplateUtil.getSpatialFilter(type);
48
+ return TemplateUtil[filterName](val);
49
+ }
50
+ static toMultiPoint(val) {
51
+ const points = val.map(t => TemplateUtil.toPoint(t));
52
+ return `MULTIPOINT(${points.join(',')})`;
53
+ }
54
+ static toMultiLine(val) {
55
+ const lines = val.map(t => TemplateUtil.toLine(t));
56
+ return `MULTILINESTRING(${lines.join(',')})`;
57
+ }
58
+ static toMultiPolygon(val) {
59
+ const polygon = val.map(t => TemplateUtil.toPolygon(t));
60
+ return `MULTIPOLYGON(${polygon.join(',')})`;
61
+ }
62
+ static toGeometryCollection(val) {
63
+ const geometries = val.map(t => {
64
+ return TemplateUtil.toGeometry(t);
65
+ });
66
+ return `GEOMETRYCOLLECTION(${geometries.join(',')})`;
67
+ }
68
+ static getSpatialFilter(columnType) {
69
+ const filter = TemplateUtil.spatialFilter[columnType];
70
+ if (!filter) {
71
+ throw new Error(`type ${columnType} is not spatial type`);
72
+ }
73
+ return filter;
74
+ }
75
+ }
76
+ TemplateUtil.spatialFilter = {
77
+ [ColumnType.POINT]: 'toPoint',
78
+ [ColumnType.LINESTRING]: 'toLine',
79
+ [ColumnType.POLYGON]: 'toPolygon',
80
+ [ColumnType.GEOMETRY]: 'toGeometry',
81
+ [ColumnType.MULTIPOINT]: 'toMultiPoint',
82
+ [ColumnType.MULTILINESTRING]: 'toMultiLine',
83
+ [ColumnType.MULTIPOLYGON]: 'toMultiPolygon',
84
+ [ColumnType.GEOMETRYCOLLECTION]: 'toGeometryCollection',
75
85
  };
76
-
77
- //#endregion
78
- export { TemplateUtil };
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVtcGxhdGVVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1RlbXBsYXRlVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFZL0MsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUF3QjtRQUMzQyxRQUFRLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3pCLEtBQUssVUFBVSxDQUFDLEtBQUssQ0FBQztZQUN0QixLQUFLLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDM0IsS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ3hCLEtBQUssVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUMzQixLQUFLLFVBQVUsQ0FBQyxlQUFlLENBQUM7WUFDaEMsS0FBSyxVQUFVLENBQUMsWUFBWSxDQUFDO1lBQzdCLEtBQUssVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztnQkFDbkMsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBc0IsRUFBRSxXQUFtQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQXNCO1FBQzFDLE9BQU8saUJBQWlCLFVBQVUsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFN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
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { BaseSqlMapGenerator } from "./BaseSqlMap.js";
2
- import { CodeGenerator } from "./CodeGenerator.js";
3
- import { DaoLoader } from "./DaoLoader.js";
4
- import { DataSourceOptions, MysqlDataSource } from "./MySqlDataSource.js";
5
- import { DatabaseForker } from "./DatabaseForker.js";
6
- import { TableSqlMap } from "./TableSqlMap.js";
7
- import { DataSource, ExecuteSql } from "./DataSource.js";
8
- import { NunjucksConverter } from "./NunjucksConverter.js";
9
- import { NunjucksUtils } from "./NunjucksUtil.js";
10
- import { SqlGenerator } from "./SqlGenerator.js";
11
- import { SqlMapLoader } from "./SqlMapLoader.js";
12
- import { SqlUtil } from "./SqlUtil.js";
13
- import { TableModelInstanceBuilder } from "./TableModelInstanceBuilder.js";
14
- import { TemplateUtil } from "./TemplateUtil.js";
15
- export { BaseSqlMapGenerator, CodeGenerator, DaoLoader, DataSource, DataSourceOptions, DatabaseForker, ExecuteSql, MysqlDataSource, NunjucksConverter, NunjucksUtils, SqlGenerator, SqlMapLoader, SqlUtil, TableModelInstanceBuilder, TableSqlMap, TemplateUtil };
1
+ export * from './BaseSqlMap.ts';
2
+ export * from './CodeGenerator.ts';
3
+ export * from './CodeGenerator.ts';
4
+ export * from './DaoLoader.ts';
5
+ export * from './DatabaseForker.ts';
6
+ export * from './DataSource.ts';
7
+ export * from './MySqlDataSource.ts';
8
+ export * from './NunjucksConverter.ts';
9
+ export * from './NunjucksUtil.ts';
10
+ export * from './SqlGenerator.ts';
11
+ export * from './SqlMapLoader.ts';
12
+ export * from './SqlUtil.ts';
13
+ export * from './TableModelInstanceBuilder.ts';
14
+ export { TableSqlMap } from './TableSqlMap.ts';
15
+ export * from './TemplateUtil.ts';
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- import { TemplateUtil } from "./TemplateUtil.js";
2
- import { BaseSqlMapGenerator } from "./BaseSqlMap.js";
3
- import { SqlGenerator } from "./SqlGenerator.js";
4
- import { CodeGenerator } from "./CodeGenerator.js";
5
- import { DaoLoader } from "./DaoLoader.js";
6
- import { MysqlDataSource } from "./MySqlDataSource.js";
7
- import { DatabaseForker } from "./DatabaseForker.js";
8
- import { NunjucksConverter } from "./NunjucksConverter.js";
9
- import { SqlUtil } from "./SqlUtil.js";
10
- import { NunjucksUtils } from "./NunjucksUtil.js";
11
- import { TableSqlMap } from "./TableSqlMap.js";
12
- import { TableModelInstanceBuilder } from "./TableModelInstanceBuilder.js";
13
- import { DataSource } from "./DataSource.js";
14
- import { SqlMapLoader } from "./SqlMapLoader.js";
15
-
16
- export { BaseSqlMapGenerator, CodeGenerator, DaoLoader, DataSource, DatabaseForker, MysqlDataSource, NunjucksConverter, NunjucksUtils, SqlGenerator, SqlMapLoader, SqlUtil, TableModelInstanceBuilder, TableSqlMap, TemplateUtil };
1
+ export * from "./BaseSqlMap.js";
2
+ export * from "./CodeGenerator.js";
3
+ export * from "./CodeGenerator.js";
4
+ export * from "./DaoLoader.js";
5
+ export * from "./DatabaseForker.js";
6
+ export * from "./DataSource.js";
7
+ export * from "./MySqlDataSource.js";
8
+ export * from "./NunjucksConverter.js";
9
+ export * from "./NunjucksUtil.js";
10
+ export * from "./SqlGenerator.js";
11
+ export * from "./SqlMapLoader.js";
12
+ export * from "./SqlUtil.js";
13
+ export * from "./TableModelInstanceBuilder.js";
14
+ export { TableSqlMap } from "./TableSqlMap.js";
15
+ export * from "./TemplateUtil.js";
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLGNBQWMsbUJBQW1CLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/dal-runtime",
3
- "version": "4.0.0-beta.7",
3
+ "version": "4.0.0-beta.9",
4
4
  "description": "tegg dal decorator",
5
5
  "keywords": [
6
6
  "egg",
@@ -38,10 +38,10 @@
38
38
  "nunjucks": "^3.2.4",
39
39
  "sdk-base": "^5.0.1",
40
40
  "sqlstring": "^2.3.3",
41
- "@eggjs/core-decorator": "4.0.0-beta.7",
42
- "@eggjs/dal-decorator": "4.0.0-beta.7",
43
- "@eggjs/tegg-loader": "4.0.0-beta.7",
44
- "@eggjs/tegg-types": "4.0.0-beta.7"
41
+ "@eggjs/core-decorator": "4.0.0-beta.9",
42
+ "@eggjs/dal-decorator": "4.0.0-beta.9",
43
+ "@eggjs/tegg-loader": "4.0.0-beta.9",
44
+ "@eggjs/tegg-types": "4.0.0-beta.9"
45
45
  },
46
46
  "publishConfig": {
47
47
  "access": "public"
@@ -61,7 +61,7 @@
61
61
  "types": "./dist/index.d.ts",
62
62
  "scripts": {
63
63
  "clean": "rimraf dist",
64
- "build": "tsdown",
64
+ "build": "tsdown && rimraf dist && tsc -b --clean && tsc",
65
65
  "typecheck": "tsc --noEmit"
66
66
  }
67
67
  }