@eggjs/dal-runtime 4.0.0-beta.34 → 4.0.0-beta.36

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,89 +1,85 @@
1
- import { Template } from 'nunjucks';
2
- import { SqlType } from '@eggjs/tegg-types';
3
- import { NunjucksUtils } from "./NunjucksUtil.js";
4
1
  import { TemplateUtil } from "./TemplateUtil.js";
5
- export class TableSqlMap {
6
- name;
7
- map;
8
- blocks;
9
- sqlGenerator;
10
- constructor(name, map) {
11
- this.name = name;
12
- this.map = map;
13
- const env = NunjucksUtils.createEnv(name);
14
- const extracted = this.#extract(this.map);
15
- this.blocks = extracted.blocks;
16
- this.sqlGenerator = extracted.sqlGenerator;
17
- for (const key in this.blocks) {
18
- // istanbul ignore if
19
- if (!this.blocks.hasOwnProperty(key))
20
- continue;
21
- env.addGlobal(key, this.blocks[key]);
22
- }
23
- env.addFilter('toJson', TemplateUtil.toJson);
24
- env.addFilter('toPoint', TemplateUtil.toPoint);
25
- env.addFilter('toLine', TemplateUtil.toLine);
26
- env.addFilter('toPolygon', TemplateUtil.toPolygon);
27
- env.addFilter('toGeometry', TemplateUtil.toGeometry);
28
- env.addFilter('toMultiPoint', TemplateUtil.toMultiPoint);
29
- env.addFilter('toMultiLine', TemplateUtil.toMultiLine);
30
- env.addFilter('toMultiPolygon', TemplateUtil.toMultiPolygon);
31
- env.addFilter('toGeometryCollection', TemplateUtil.toGeometryCollection);
32
- }
33
- #extract(map) {
34
- const ret = {
35
- blocks: {},
36
- sqlGenerator: {},
37
- };
38
- for (const key in map) {
39
- // istanbul ignore if
40
- if (!map.hasOwnProperty(key))
41
- continue;
42
- const sqlMap = map[key];
43
- switch (sqlMap.type) {
44
- case SqlType.BLOCK:
45
- ret.blocks[key] = sqlMap.content || '';
46
- break;
47
- case SqlType.INSERT:
48
- case SqlType.SELECT:
49
- case SqlType.UPDATE:
50
- case SqlType.DELETE:
51
- default:
52
- ret.sqlGenerator[key] = {
53
- type: sqlMap.type,
54
- template: NunjucksUtils.compile(this.name, key, sqlMap.sql || ''),
55
- raw: sqlMap.sql,
56
- };
57
- break;
58
- }
59
- }
60
- return ret;
61
- }
62
- generate(name, data, timezone) {
63
- const generator = this.sqlGenerator[name];
64
- // istanbul ignore if
65
- if (!generator) {
66
- throw new Error(`No sql map named '${name}' in '${name}'.`);
67
- }
68
- const template = generator.template;
69
- template.env.timezone = timezone;
70
- return template.render(data);
71
- }
72
- getType(name) {
73
- const generator = this.sqlGenerator[name];
74
- // istanbul ignore if
75
- if (!generator) {
76
- throw new Error(`No sql map named '${name}' in '${name}'.`);
77
- }
78
- return generator.type;
79
- }
80
- getTemplateString(name) {
81
- const generator = this.sqlGenerator[name];
82
- // istanbul ignore if
83
- if (!generator) {
84
- throw new Error(`No sql map named '${name}' in '${name}'.`);
85
- }
86
- return generator.raw;
87
- }
88
- }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVTcWxNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVGFibGVTcWxNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFqRCxNQUFNLE9BQU8sV0FBVztJQUNiLElBQUksQ0FBUztJQUNMLEdBQUcsQ0FBeUI7SUFDNUIsTUFBTSxDQUF5QjtJQUMvQixZQUFZLENBQStCO0lBRTVELFlBQVksSUFBWSxFQUFFLEdBQTJCO1FBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRWYsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBRTNDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLHFCQUFxQjtZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUFFLFNBQVM7WUFDL0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFF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
2
+ 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
+ name;
9
+ map;
10
+ blocks;
11
+ sqlGenerator;
12
+ constructor(name, map) {
13
+ this.name = name;
14
+ this.map = map;
15
+ const env = NunjucksUtils.createEnv(name);
16
+ const extracted = this.#extract(this.map);
17
+ this.blocks = extracted.blocks;
18
+ this.sqlGenerator = extracted.sqlGenerator;
19
+ for (const key in this.blocks) {
20
+ // istanbul ignore if
21
+ if (!this.blocks.hasOwnProperty(key)) continue;
22
+ env.addGlobal(key, this.blocks[key]);
23
+ }
24
+ env.addFilter("toJson", TemplateUtil.toJson);
25
+ env.addFilter("toPoint", TemplateUtil.toPoint);
26
+ env.addFilter("toLine", TemplateUtil.toLine);
27
+ env.addFilter("toPolygon", TemplateUtil.toPolygon);
28
+ env.addFilter("toGeometry", TemplateUtil.toGeometry);
29
+ env.addFilter("toMultiPoint", TemplateUtil.toMultiPoint);
30
+ env.addFilter("toMultiLine", TemplateUtil.toMultiLine);
31
+ env.addFilter("toMultiPolygon", TemplateUtil.toMultiPolygon);
32
+ env.addFilter("toGeometryCollection", TemplateUtil.toGeometryCollection);
33
+ }
34
+ #extract(map) {
35
+ const ret = {
36
+ blocks: {},
37
+ sqlGenerator: {}
38
+ };
39
+ for (const key in map) {
40
+ // istanbul ignore if
41
+ if (!map.hasOwnProperty(key)) continue;
42
+ const sqlMap = map[key];
43
+ switch (sqlMap.type) {
44
+ case SqlType.BLOCK:
45
+ ret.blocks[key] = sqlMap.content || "";
46
+ break;
47
+ case SqlType.INSERT:
48
+ case SqlType.SELECT:
49
+ case SqlType.UPDATE:
50
+ case SqlType.DELETE:
51
+ default:
52
+ ret.sqlGenerator[key] = {
53
+ type: sqlMap.type,
54
+ template: NunjucksUtils.compile(this.name, key, sqlMap.sql || ""),
55
+ raw: sqlMap.sql
56
+ };
57
+ break;
58
+ }
59
+ }
60
+ return ret;
61
+ }
62
+ generate(name, data, timezone) {
63
+ const generator = this.sqlGenerator[name];
64
+ // istanbul ignore if
65
+ if (!generator) throw new Error(`No sql map named '${name}' in '${name}'.`);
66
+ const template = generator.template;
67
+ template.env.timezone = timezone;
68
+ return template.render(data);
69
+ }
70
+ getType(name) {
71
+ const generator = this.sqlGenerator[name];
72
+ // istanbul ignore if
73
+ if (!generator) throw new Error(`No sql map named '${name}' in '${name}'.`);
74
+ return generator.type;
75
+ }
76
+ getTemplateString(name) {
77
+ const generator = this.sqlGenerator[name];
78
+ // istanbul ignore if
79
+ if (!generator) throw new Error(`No sql map named '${name}' in '${name}'.`);
80
+ return generator.raw;
81
+ }
82
+ };
83
+
84
+ //#endregion
85
+ export { TableSqlMap };
@@ -1,19 +1,22 @@
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;
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;
19
20
  }
21
+ //#endregion
22
+ export { TemplateUtil };
@@ -1,86 +1,75 @@
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 spatialFilter = {
69
- [ColumnType.POINT]: 'toPoint',
70
- [ColumnType.LINESTRING]: 'toLine',
71
- [ColumnType.POLYGON]: 'toPolygon',
72
- [ColumnType.GEOMETRY]: 'toGeometry',
73
- [ColumnType.MULTIPOINT]: 'toMultiPoint',
74
- [ColumnType.MULTILINESTRING]: 'toMultiLine',
75
- [ColumnType.MULTIPOLYGON]: 'toMultiPolygon',
76
- [ColumnType.GEOMETRYCOLLECTION]: 'toGeometryCollection',
77
- };
78
- static getSpatialFilter(columnType) {
79
- const filter = TemplateUtil.spatialFilter[columnType];
80
- if (!filter) {
81
- throw new Error(`type ${columnType} is not spatial type`);
82
- }
83
- return filter;
84
- }
85
- }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVtcGxhdGVVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1RlbXBsYXRlVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFZL0MsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUF3QjtRQUMzQyxRQUFRLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3pCLEtBQUssVUFBVSxDQUFDLEtBQUssQ0FBQztZQUN0QixLQUFLLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDM0IsS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ3hCLEtBQUssVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUMzQixLQUFLLFVBQVUsQ0FBQyxlQUFlLENBQUM7WUFDaEMsS0FBSyxVQUFVLENBQUMsWUFBWSxDQUFDO1lBQzdCLEtBQUssVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztnQkFDbkMsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBc0IsRUFBRSxXQUFtQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQXNCO1FBQzFDLE9BQU8saUJBQWlCLFVBQVUsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFN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
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
+ return TemplateUtil[TemplateUtil.getSpatialFilter(type)](val);
42
+ }
43
+ static toMultiPoint(val) {
44
+ return `MULTIPOINT(${val.map((t) => TemplateUtil.toPoint(t)).join(",")})`;
45
+ }
46
+ static toMultiLine(val) {
47
+ return `MULTILINESTRING(${val.map((t) => TemplateUtil.toLine(t)).join(",")})`;
48
+ }
49
+ static toMultiPolygon(val) {
50
+ return `MULTIPOLYGON(${val.map((t) => TemplateUtil.toPolygon(t)).join(",")})`;
51
+ }
52
+ static toGeometryCollection(val) {
53
+ return `GEOMETRYCOLLECTION(${val.map((t) => {
54
+ return TemplateUtil.toGeometry(t);
55
+ }).join(",")})`;
56
+ }
57
+ static spatialFilter = {
58
+ [ColumnType.POINT]: "toPoint",
59
+ [ColumnType.LINESTRING]: "toLine",
60
+ [ColumnType.POLYGON]: "toPolygon",
61
+ [ColumnType.GEOMETRY]: "toGeometry",
62
+ [ColumnType.MULTIPOINT]: "toMultiPoint",
63
+ [ColumnType.MULTILINESTRING]: "toMultiLine",
64
+ [ColumnType.MULTIPOLYGON]: "toMultiPolygon",
65
+ [ColumnType.GEOMETRYCOLLECTION]: "toGeometryCollection"
66
+ };
67
+ static getSpatialFilter(columnType) {
68
+ const filter = TemplateUtil.spatialFilter[columnType];
69
+ if (!filter) throw new Error(`type ${columnType} is not spatial type`);
70
+ return filter;
71
+ }
72
+ };
73
+
74
+ //#endregion
75
+ export { TemplateUtil };
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
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';
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 };
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
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==
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 { TableModelInstanceBuilder } from "./TableModelInstanceBuilder.js";
9
+ import { NunjucksConverter } from "./NunjucksConverter.js";
10
+ import { SqlUtil } from "./SqlUtil.js";
11
+ import { NunjucksUtils } from "./NunjucksUtil.js";
12
+ import { TableSqlMap } from "./TableSqlMap.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 };
package/package.json CHANGED
@@ -1,36 +1,39 @@
1
1
  {
2
2
  "name": "@eggjs/dal-runtime",
3
- "version": "4.0.0-beta.34",
3
+ "version": "4.0.0-beta.36",
4
4
  "description": "tegg dal runtime",
5
5
  "keywords": [
6
- "egg",
7
- "typescript",
6
+ "dal",
8
7
  "decorator",
8
+ "egg",
9
9
  "runtime",
10
10
  "tegg",
11
- "dal"
12
- ],
13
- "type": "module",
14
- "exports": {
15
- ".": "./dist/index.js",
16
- "./package.json": "./package.json"
17
- },
18
- "files": [
19
- "dist"
11
+ "typescript"
20
12
  ],
21
- "author": "killagu <killa123@126.com>",
22
- "license": "MIT",
23
13
  "homepage": "https://github.com/eggjs/egg/tree/next/tegg/core/dal-runtime",
24
14
  "bugs": {
25
15
  "url": "https://github.com/eggjs/egg/issues"
26
16
  },
17
+ "license": "MIT",
18
+ "author": "killagu <killa123@126.com>",
27
19
  "repository": {
28
20
  "type": "git",
29
- "url": "git@github.com:eggjs/egg.git",
21
+ "url": "git+https://github.com/eggjs/egg.git",
30
22
  "directory": "tegg/core/dal-runtime"
31
23
  },
32
- "engines": {
33
- "node": ">=22.18.0"
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "type": "module",
28
+ "main": "./dist/index.js",
29
+ "module": "./dist/index.js",
30
+ "types": "./dist/index.d.ts",
31
+ "exports": {
32
+ ".": "./dist/index.js",
33
+ "./package.json": "./package.json"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
34
37
  },
35
38
  "dependencies": {
36
39
  "@eggjs/rds": "^1.3.0",
@@ -39,30 +42,23 @@
39
42
  "nunjucks": "^3.2.4",
40
43
  "sdk-base": "^5.0.1",
41
44
  "sqlstring": "^2.3.3",
42
- "@eggjs/core-decorator": "4.0.0-beta.34",
43
- "@eggjs/tegg-types": "4.0.0-beta.34",
44
- "@eggjs/tegg-loader": "4.0.0-beta.34",
45
- "@eggjs/dal-decorator": "4.0.0-beta.34"
45
+ "@eggjs/core-decorator": "4.0.0-beta.36",
46
+ "@eggjs/tegg-loader": "4.0.0-beta.36",
47
+ "@eggjs/dal-decorator": "4.0.0-beta.36",
48
+ "@eggjs/tegg-types": "4.0.0-beta.36"
46
49
  },
47
50
  "devDependencies": {
48
51
  "@types/js-beautify": "^1.14.3",
49
52
  "@types/lodash": "^4.17.20",
50
- "@types/node": "^24.9.1",
53
+ "@types/node": "^24.10.2",
51
54
  "@types/nunjucks": "^3.2.6",
52
55
  "@types/sqlstring": "^2.3.2",
53
- "typescript": "^5.9.3",
54
- "tsdown": "0.15.11",
55
- "unplugin-unused": "^0.5.4"
56
+ "typescript": "^5.9.3"
56
57
  },
57
- "publishConfig": {
58
- "access": "public"
58
+ "engines": {
59
+ "node": ">=22.18.0"
59
60
  },
60
- "main": "./dist/index.js",
61
- "module": "./dist/index.js",
62
- "types": "./dist/index.d.ts",
63
61
  "scripts": {
64
- "clean": "rimraf dist *.tsbuildinfo",
65
- "build": "tsdown && npm run clean && tsc -p tsconfig.build.json",
66
- "typecheck": "tsc --noEmit"
62
+ "typecheck": "tsgo --noEmit"
67
63
  }
68
64
  }