@eggjs/dal-runtime 3.62.0 → 4.0.0-beta.10
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.
- package/README.md +13 -1
- package/dist/{src/BaseSqlMap.d.ts → BaseSqlMap.d.ts} +4 -4
- package/dist/BaseSqlMap.js +304 -0
- package/dist/{src/CodeGenerator.d.ts → CodeGenerator.d.ts} +1 -1
- package/dist/CodeGenerator.js +139 -0
- package/dist/DaoLoader.d.ts +4 -0
- package/dist/DaoLoader.js +14 -0
- package/dist/{src/DataSource.d.ts → DataSource.d.ts} +5 -5
- package/dist/DataSource.js +82 -0
- package/dist/{src/DatabaseForker.d.ts → DatabaseForker.d.ts} +2 -2
- package/dist/DatabaseForker.js +50 -0
- package/dist/{src/MySqlDataSource.d.ts → MySqlDataSource.d.ts} +2 -2
- package/dist/{src/MySqlDataSource.js → MySqlDataSource.js} +5 -12
- package/dist/{src/NunjucksConverter.js → NunjucksConverter.js} +3 -7
- package/dist/NunjucksUtil.js +74 -0
- package/dist/{src/SqlGenerator.d.ts → SqlGenerator.d.ts} +1 -1
- package/dist/SqlGenerator.js +392 -0
- package/dist/{src/SqlMapLoader.d.ts → SqlMapLoader.d.ts} +2 -2
- package/dist/SqlMapLoader.js +20 -0
- package/dist/{src/SqlUtil.js → SqlUtil.js} +3 -14
- package/dist/{src/TableModelInstanceBuilder.d.ts → TableModelInstanceBuilder.d.ts} +1 -1
- package/dist/TableModelInstanceBuilder.js +23 -0
- package/dist/TableSqlMap.js +92 -0
- package/dist/{src/TemplateUtil.d.ts → TemplateUtil.d.ts} +3 -12
- package/dist/TemplateUtil.js +86 -0
- package/dist/index.d.ts +15 -9
- package/dist/index.js +16 -28
- package/package.json +33 -32
- package/dist/src/BaseSqlMap.js +0 -310
- package/dist/src/CodeGenerator.js +0 -145
- package/dist/src/DaoLoader.d.ts +0 -4
- package/dist/src/DaoLoader.js +0 -17
- package/dist/src/DataSource.js +0 -83
- package/dist/src/DatabaseForker.js +0 -56
- package/dist/src/NunjucksUtil.js +0 -114
- package/dist/src/SqlGenerator.js +0 -395
- package/dist/src/SqlMapLoader.js +0 -23
- package/dist/src/TableModelInstanceBuilder.js +0 -26
- package/dist/src/TableSqlMap.js +0 -95
- package/dist/src/TemplateUtil.js +0 -93
- package/dist/src/templates/base_dao.njk +0 -166
- package/dist/src/templates/dao.njk +0 -17
- package/dist/src/templates/extension.njk +0 -17
- /package/dist/{src/NunjucksConverter.d.ts → NunjucksConverter.d.ts} +0 -0
- /package/dist/{src/NunjucksUtil.d.ts → NunjucksUtil.d.ts} +0 -0
- /package/dist/{src/SqlUtil.d.ts → SqlUtil.d.ts} +0 -0
- /package/dist/{src/TableSqlMap.d.ts → TableSqlMap.d.ts} +0 -0
package/dist/src/TableSqlMap.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
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");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var _TableSqlMap_instances, _TableSqlMap_extract;
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.TableSqlMap = void 0;
|
|
10
|
-
const NunjucksUtil_1 = require("./NunjucksUtil");
|
|
11
|
-
const TemplateUtil_1 = require("./TemplateUtil");
|
|
12
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
13
|
-
class TableSqlMap {
|
|
14
|
-
constructor(name, map) {
|
|
15
|
-
_TableSqlMap_instances.add(this);
|
|
16
|
-
this.name = name;
|
|
17
|
-
this.map = map;
|
|
18
|
-
const env = NunjucksUtil_1.NunjucksUtils.createEnv(name);
|
|
19
|
-
const extracted = __classPrivateFieldGet(this, _TableSqlMap_instances, "m", _TableSqlMap_extract).call(this, this.map);
|
|
20
|
-
this.blocks = extracted.blocks;
|
|
21
|
-
this.sqlGenerator = extracted.sqlGenerator;
|
|
22
|
-
for (const key in this.blocks) {
|
|
23
|
-
// istanbul ignore if
|
|
24
|
-
if (!this.blocks.hasOwnProperty(key))
|
|
25
|
-
continue;
|
|
26
|
-
env.addGlobal(key, this.blocks[key]);
|
|
27
|
-
}
|
|
28
|
-
env.addFilter('toJson', TemplateUtil_1.TemplateUtil.toJson);
|
|
29
|
-
env.addFilter('toPoint', TemplateUtil_1.TemplateUtil.toPoint);
|
|
30
|
-
env.addFilter('toLine', TemplateUtil_1.TemplateUtil.toLine);
|
|
31
|
-
env.addFilter('toPolygon', TemplateUtil_1.TemplateUtil.toPolygon);
|
|
32
|
-
env.addFilter('toGeometry', TemplateUtil_1.TemplateUtil.toGeometry);
|
|
33
|
-
env.addFilter('toMultiPoint', TemplateUtil_1.TemplateUtil.toMultiPoint);
|
|
34
|
-
env.addFilter('toMultiLine', TemplateUtil_1.TemplateUtil.toMultiLine);
|
|
35
|
-
env.addFilter('toMultiPolygon', TemplateUtil_1.TemplateUtil.toMultiPolygon);
|
|
36
|
-
env.addFilter('toGeometryCollection', TemplateUtil_1.TemplateUtil.toGeometryCollection);
|
|
37
|
-
}
|
|
38
|
-
generate(name, data, timezone) {
|
|
39
|
-
const generator = this.sqlGenerator[name];
|
|
40
|
-
// istanbul ignore if
|
|
41
|
-
if (!generator) {
|
|
42
|
-
throw new Error(`No sql map named '${name}' in '${name}'.`);
|
|
43
|
-
}
|
|
44
|
-
const template = generator.template;
|
|
45
|
-
template.env.timezone = timezone;
|
|
46
|
-
return template.render(data);
|
|
47
|
-
}
|
|
48
|
-
getType(name) {
|
|
49
|
-
const generator = this.sqlGenerator[name];
|
|
50
|
-
// istanbul ignore if
|
|
51
|
-
if (!generator) {
|
|
52
|
-
throw new Error(`No sql map named '${name}' in '${name}'.`);
|
|
53
|
-
}
|
|
54
|
-
return generator.type;
|
|
55
|
-
}
|
|
56
|
-
getTemplateString(name) {
|
|
57
|
-
const generator = this.sqlGenerator[name];
|
|
58
|
-
// istanbul ignore if
|
|
59
|
-
if (!generator) {
|
|
60
|
-
throw new Error(`No sql map named '${name}' in '${name}'.`);
|
|
61
|
-
}
|
|
62
|
-
return generator.raw;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.TableSqlMap = TableSqlMap;
|
|
66
|
-
_TableSqlMap_instances = new WeakSet(), _TableSqlMap_extract = function _TableSqlMap_extract(map) {
|
|
67
|
-
const ret = {
|
|
68
|
-
blocks: {},
|
|
69
|
-
sqlGenerator: {},
|
|
70
|
-
};
|
|
71
|
-
for (const key in map) {
|
|
72
|
-
// istanbul ignore if
|
|
73
|
-
if (!map.hasOwnProperty(key))
|
|
74
|
-
continue;
|
|
75
|
-
const sqlMap = map[key];
|
|
76
|
-
switch (sqlMap.type) {
|
|
77
|
-
case tegg_types_1.SqlType.BLOCK:
|
|
78
|
-
ret.blocks[key] = sqlMap.content || '';
|
|
79
|
-
break;
|
|
80
|
-
case tegg_types_1.SqlType.INSERT:
|
|
81
|
-
case tegg_types_1.SqlType.SELECT:
|
|
82
|
-
case tegg_types_1.SqlType.UPDATE:
|
|
83
|
-
case tegg_types_1.SqlType.DELETE:
|
|
84
|
-
default:
|
|
85
|
-
ret.sqlGenerator[key] = {
|
|
86
|
-
type: sqlMap.type,
|
|
87
|
-
template: NunjucksUtil_1.NunjucksUtils.compile(this.name, key, sqlMap.sql || ''),
|
|
88
|
-
raw: sqlMap.sql,
|
|
89
|
-
};
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return ret;
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVTcWxNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVGFibGVTcWxNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsaURBQStDO0FBQy9DLGlEQUE4QztBQUM5QyxrREFBNEM7QUFTNUMsTUFBYSxXQUFXO0lBTXRCLFlBQVksSUFBWSxFQUFFLEdBQTJCOztRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVmLE1BQU0sR0FBRyxHQUFHLDRCQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLHVCQUFBLElBQUksb0RBQVMsTUFBYixJQUFJLEVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUM7UUFFM0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUIscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsU0FBUztZQUMvQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLDJCQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsMkJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSwyQkFBWSxDQUFDLE1BQU0sQ0FB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
|
package/dist/src/TemplateUtil.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TemplateUtil = void 0;
|
|
7
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
-
const dal_1 = require("@eggjs/tegg/dal");
|
|
9
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
10
|
-
class TemplateUtil {
|
|
11
|
-
static isSpatialType(columnModel) {
|
|
12
|
-
switch (columnModel.type.type) {
|
|
13
|
-
case tegg_types_1.ColumnType.GEOMETRY:
|
|
14
|
-
case tegg_types_1.ColumnType.POINT:
|
|
15
|
-
case tegg_types_1.ColumnType.LINESTRING:
|
|
16
|
-
case tegg_types_1.ColumnType.POLYGON:
|
|
17
|
-
case tegg_types_1.ColumnType.MULTIPOINT:
|
|
18
|
-
case tegg_types_1.ColumnType.MULTILINESTRING:
|
|
19
|
-
case tegg_types_1.ColumnType.MULTIPOLYGON:
|
|
20
|
-
case tegg_types_1.ColumnType.GEOMETRYCOLLECTION: {
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
default: {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
static importPath(tableModelPath, currentPath) {
|
|
29
|
-
return node_path_1.default.relative(currentPath, tableModelPath);
|
|
30
|
-
}
|
|
31
|
-
static dbTypeToTsType(columnType) {
|
|
32
|
-
return `ColumnTsType['${columnType}']`;
|
|
33
|
-
}
|
|
34
|
-
static toJson(value) {
|
|
35
|
-
return JSON.stringify(JSON.stringify(value));
|
|
36
|
-
}
|
|
37
|
-
static toPoint(point) {
|
|
38
|
-
if (typeof point.x !== 'number' || typeof point.y !== 'number') {
|
|
39
|
-
throw new Error(`invalidate point ${JSON.stringify(point)}`);
|
|
40
|
-
}
|
|
41
|
-
return `Point(${point.x}, ${point.y})`;
|
|
42
|
-
}
|
|
43
|
-
static toLine(val) {
|
|
44
|
-
const points = val.map(t => TemplateUtil.toPoint(t));
|
|
45
|
-
return `LINESTRING(${points.join(',')})`;
|
|
46
|
-
}
|
|
47
|
-
static toPolygon(val) {
|
|
48
|
-
const lines = val.map(t => TemplateUtil.toLine(t));
|
|
49
|
-
return `POLYGON(${lines.join(',')})`;
|
|
50
|
-
}
|
|
51
|
-
static toGeometry(val) {
|
|
52
|
-
const type = dal_1.SpatialHelper.getGeometryType(val);
|
|
53
|
-
const filterName = TemplateUtil.getSpatialFilter(type);
|
|
54
|
-
return TemplateUtil[filterName](val);
|
|
55
|
-
}
|
|
56
|
-
static toMultiPoint(val) {
|
|
57
|
-
const points = val.map(t => TemplateUtil.toPoint(t));
|
|
58
|
-
return `MULTIPOINT(${points.join(',')})`;
|
|
59
|
-
}
|
|
60
|
-
static toMultiLine(val) {
|
|
61
|
-
const lines = val.map(t => TemplateUtil.toLine(t));
|
|
62
|
-
return `MULTILINESTRING(${lines.join(',')})`;
|
|
63
|
-
}
|
|
64
|
-
static toMultiPolygon(val) {
|
|
65
|
-
const polygon = val.map(t => TemplateUtil.toPolygon(t));
|
|
66
|
-
return `MULTIPOLYGON(${polygon.join(',')})`;
|
|
67
|
-
}
|
|
68
|
-
static toGeometryCollection(val) {
|
|
69
|
-
const geometries = val.map(t => {
|
|
70
|
-
return TemplateUtil.toGeometry(t);
|
|
71
|
-
});
|
|
72
|
-
return `GEOMETRYCOLLECTION(${geometries.join(',')})`;
|
|
73
|
-
}
|
|
74
|
-
static getSpatialFilter(columnType) {
|
|
75
|
-
const filter = TemplateUtil.spatialFilter[columnType];
|
|
76
|
-
if (!filter) {
|
|
77
|
-
throw new Error(`type ${columnType} is not spatial type`);
|
|
78
|
-
}
|
|
79
|
-
return filter;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
exports.TemplateUtil = TemplateUtil;
|
|
83
|
-
TemplateUtil.spatialFilter = {
|
|
84
|
-
[tegg_types_1.ColumnType.POINT]: 'toPoint',
|
|
85
|
-
[tegg_types_1.ColumnType.LINESTRING]: 'toLine',
|
|
86
|
-
[tegg_types_1.ColumnType.POLYGON]: 'toPolygon',
|
|
87
|
-
[tegg_types_1.ColumnType.GEOMETRY]: 'toGeometry',
|
|
88
|
-
[tegg_types_1.ColumnType.MULTIPOINT]: 'toMultiPoint',
|
|
89
|
-
[tegg_types_1.ColumnType.MULTILINESTRING]: 'toMultiLine',
|
|
90
|
-
[tegg_types_1.ColumnType.MULTIPOLYGON]: 'toMultiPolygon',
|
|
91
|
-
[tegg_types_1.ColumnType.GEOMETRYCOLLECTION]: 'toGeometryCollection',
|
|
92
|
-
};
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVtcGxhdGVVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RlbXBsYXRlVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBNkI7QUFDN0IseUNBQTZEO0FBQzdELGtEQUErQztBQVkvQyxNQUFhLFlBQVk7SUFDdkIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUF3QjtRQUMzQyxRQUFRLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsS0FBSyx1QkFBVSxDQUFDLFFBQVEsQ0FBQztZQUN6QixLQUFLLHVCQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3RCLEtBQUssdUJBQVUsQ0FBQyxVQUFVLENBQUM7WUFDM0IsS0FBSyx1QkFBVSxDQUFDLE9BQU8sQ0FBQztZQUN4QixLQUFLLHVCQUFVLENBQUMsVUFBVSxDQUFDO1lBQzNCLEtBQUssdUJBQVUsQ0FBQyxlQUFlLENBQUM7WUFDaEMsS0FBSyx1QkFBVSxDQUFDLFlBQVksQ0FBQztZQUM3QixLQUFLLHVCQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFzQixFQUFFLFdBQW1CO1FBQzNELE9BQU8sbUJBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQXNCO1FBQzFDLE9BQU8saUJBQWlCLFVBQVUsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FB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
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
{% macro newDataLogic(columns, old, new) %}
|
|
2
|
-
let tmp;
|
|
3
|
-
{% for column in table.columns %}
|
|
4
|
-
// empty-line
|
|
5
|
-
tmp = {{ old }}.{{ column.propertyName }};
|
|
6
|
-
if (tmp !== undefined) {
|
|
7
|
-
{{ new }}.${{ column.propertyName }} = tmp;
|
|
8
|
-
}
|
|
9
|
-
{% endfor %}
|
|
10
|
-
{% endmacro %}
|
|
11
|
-
|
|
12
|
-
{% macro findLogic(funcName, sqlName, idx, uniq) %}
|
|
13
|
-
public async {{ funcName }}(
|
|
14
|
-
{% for key in idx.keys %}
|
|
15
|
-
${{ key.propertyName }}: {{columnMap[key.propertyName].type.type | dbTypeToTSType}}{% if loop.last !== true %},{% endif%}
|
|
16
|
-
{% endfor %}
|
|
17
|
-
): Promise<{{ clazzName }}{{ '| null' if uniq else '[]' }}> {
|
|
18
|
-
return this.dataSource.{{ 'executeScalar' if uniq else 'execute' }}('{{ sqlName }}', {
|
|
19
|
-
{% for key in idx.keys %}
|
|
20
|
-
${{ key.propertyName }},
|
|
21
|
-
{% endfor %}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
{% endmacro %}
|
|
25
|
-
|
|
26
|
-
{% macro generatePrimaryType(primary) %}
|
|
27
|
-
{% if (primary.keys | length) === 1 %}
|
|
28
|
-
{{primary.keys[0].propertyName}}: {{ columnMap[primary.keys[0].propertyName].type.type | dbTypeToTSType}}
|
|
29
|
-
{% else %}
|
|
30
|
-
primary: {
|
|
31
|
-
{% for key in primary.keys %}
|
|
32
|
-
{{ key.propertyName }}: {{columnMap[key.propertyName].type.type | dbTypeToTSType}}{% if loop.last !== true %},{% endif%}
|
|
33
|
-
{% endfor %}
|
|
34
|
-
}
|
|
35
|
-
{% endif %}
|
|
36
|
-
{% endmacro %}
|
|
37
|
-
|
|
38
|
-
{% macro generateUpdateValue(primary) %}
|
|
39
|
-
{% if (primary.keys | length) === 1 %}
|
|
40
|
-
const newData: Record<string, any> = {
|
|
41
|
-
primary: {
|
|
42
|
-
{{primary.keys[0].propertyName}},
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
{% else %}
|
|
46
|
-
const newData: Record<string, any> = {
|
|
47
|
-
primary,
|
|
48
|
-
};
|
|
49
|
-
{% endif %}
|
|
50
|
-
{% endmacro %}
|
|
51
|
-
|
|
52
|
-
{% macro generateDeleteValue(primary) %}
|
|
53
|
-
{% if (primary.keys | length) === 1 %}
|
|
54
|
-
{
|
|
55
|
-
{{primary.keys[0].propertyName}},
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
{% else %}
|
|
59
|
-
primary
|
|
60
|
-
{% endif %}
|
|
61
|
-
{% endmacro %}
|
|
62
|
-
|
|
63
|
-
{% macro generateInsertType(primary) %}
|
|
64
|
-
Optional<{{clazzName}},
|
|
65
|
-
{% for key in primary.keys %}
|
|
66
|
-
'{{ key.propertyName }}'{% if loop.last !== true %}|{% endif%}
|
|
67
|
-
{% endfor %}
|
|
68
|
-
>
|
|
69
|
-
{% endmacro %}
|
|
70
|
-
|
|
71
|
-
import fs from 'node:fs';
|
|
72
|
-
import path from 'node:path';
|
|
73
|
-
import type { InsertResult, UpdateResult, DeleteResult } from '{{dalPkg}}';
|
|
74
|
-
import { Inject } from '{{teggPkg}}';
|
|
75
|
-
import { Dao } from '{{teggPkg}}/dal';
|
|
76
|
-
import { DataSource, DataSourceInjectName, DataSourceQualifier, ColumnTsType } from '{{dalPkg}}';
|
|
77
|
-
import { {{ clazzName }} } from '{{ tableModelPath }}';
|
|
78
|
-
import {{ clazzName }}Extension from '{{ extensionPath }}';
|
|
79
|
-
import Structure from '{{ structurePath }}';
|
|
80
|
-
|
|
81
|
-
const SQL = Symbol('Dao#sql');
|
|
82
|
-
|
|
83
|
-
// empty-line
|
|
84
|
-
type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
|
|
85
|
-
/**
|
|
86
|
-
* 自动生成的 {{ clazzName }}DAO 基类
|
|
87
|
-
* @class Base{{ clazzName }}DAO
|
|
88
|
-
* @classdesc 该文件由 {{teggPkg}} 自动生成,请**不要**修改它!
|
|
89
|
-
*/
|
|
90
|
-
/* istanbul ignore next */
|
|
91
|
-
@Dao()
|
|
92
|
-
export class Base{{ clazzName }}DAO {
|
|
93
|
-
static clazzModel = {{ clazzName }};
|
|
94
|
-
static clazzExtension = {{ clazzName }}Extension;
|
|
95
|
-
static tableStature = Structure;
|
|
96
|
-
static get tableSql() {
|
|
97
|
-
if (!this[SQL]) {
|
|
98
|
-
this[SQL] = fs.readFileSync(path.join(__dirname, '../../structure/{{clazzName}}.sql'), 'utf8');
|
|
99
|
-
}
|
|
100
|
-
return this[SQL];
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
@Inject({
|
|
104
|
-
name: DataSourceInjectName,
|
|
105
|
-
})
|
|
106
|
-
@DataSourceQualifier('{{moduleName}}.{{ table.dataSourceName }}.{{ clazzName }}')
|
|
107
|
-
protected readonly dataSource: DataSource<{{clazzName}}>;
|
|
108
|
-
|
|
109
|
-
// empty-line
|
|
110
|
-
{# insert: 插入 #}
|
|
111
|
-
public async insert(raw: {{generateInsertType(primaryIndex)}}): Promise<InsertResult> {
|
|
112
|
-
const data: Record<string, any> = {};
|
|
113
|
-
|
|
114
|
-
{{ newDataLogic(columns, 'raw', 'data') }}
|
|
115
|
-
|
|
116
|
-
// empty-line
|
|
117
|
-
return this.dataSource.executeRawScalar('insert', data);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// empty-line
|
|
121
|
-
{# update: 更新 #}
|
|
122
|
-
public async update({{generatePrimaryType(primaryIndex)}}, data: Partial<{{ ((clazzName)) }}>): Promise<UpdateResult> {
|
|
123
|
-
// empty-line
|
|
124
|
-
{{ generateUpdateValue(primaryIndex) }}
|
|
125
|
-
|
|
126
|
-
{{ newDataLogic(columns, 'data', 'newData') }}
|
|
127
|
-
|
|
128
|
-
// empty-line
|
|
129
|
-
return this.dataSource.executeRawScalar('update', newData);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
{% for funcName in [ 'delete', 'del' ] %}
|
|
133
|
-
// empty-line
|
|
134
|
-
{# delete: 删除 #}
|
|
135
|
-
public async {{ funcName }}({{generatePrimaryType(primaryIndex)}}): Promise<DeleteResult> {
|
|
136
|
-
return this.dataSource.executeRawScalar('delete', {{generateDeleteValue(primaryIndex)}});
|
|
137
|
-
}
|
|
138
|
-
{% endfor %}
|
|
139
|
-
|
|
140
|
-
{% for idx in table.indices %}
|
|
141
|
-
// empty-line
|
|
142
|
-
{# 某个索引 #}
|
|
143
|
-
{% if idx.type !== 'PRIMARY' %}
|
|
144
|
-
{% set tmpName = ((idx.keys[0].propertyName if (idx.keys | length) === 1 else idx.name) | pascalCase) %}
|
|
145
|
-
{% set findName = 'findBy' + tmpName %}
|
|
146
|
-
{% set findOneName = 'findOneBy' + tmpName %}
|
|
147
|
-
{{ findLogic(findName, findName, idx, false) }}
|
|
148
|
-
// empty-line
|
|
149
|
-
{{ findLogic(findOneName, findOneName, idx, true) }}
|
|
150
|
-
{% endif %}
|
|
151
|
-
{% endfor %}
|
|
152
|
-
|
|
153
|
-
// empty-line
|
|
154
|
-
{# 某个索引 #}
|
|
155
|
-
{% if primaryIndex %}
|
|
156
|
-
{% set tmpName = ((primaryIndex.keys[0].propertyName if (primaryIndex.keys | length) === 1 else primaryIndex.name) | pascalCase) %}
|
|
157
|
-
{% set findName = 'findBy' + tmpName %}
|
|
158
|
-
{% set findOneName = 'findOneBy' + tmpName %}
|
|
159
|
-
{{ findLogic(findName, 'findByPrimary', primaryIndex, true) }}
|
|
160
|
-
{% if (primaryIndex.keys | length) > 0 %}
|
|
161
|
-
// empty-line
|
|
162
|
-
{{ findLogic('findByPrimary', 'findByPrimary', primaryIndex, true) }}
|
|
163
|
-
{% endif %}
|
|
164
|
-
{% endif %}
|
|
165
|
-
}
|
|
166
|
-
// empty-line
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { SingletonProto, AccessLevel } from '{{teggPkg}}';
|
|
2
|
-
import { Base{{ clazzName }}DAO } from './base/Base{{ clazzName }}DAO';
|
|
3
|
-
// empty-line
|
|
4
|
-
/**
|
|
5
|
-
* {{ clazzName }}DAO 类
|
|
6
|
-
{% if user.name %} * @author {{ user.name }} {% if user.email %}<{{ user.email }}>{% endif %}
|
|
7
|
-
{% endif %} * @class {{ clazzName }}DAO
|
|
8
|
-
* @classdesc 在此扩展关于 {{ clazzName }} 数据的一切操作
|
|
9
|
-
* @extends Base{{ clazzName }}DAO
|
|
10
|
-
*/
|
|
11
|
-
@SingletonProto({
|
|
12
|
-
accessLevel: AccessLevel.PUBLIC,
|
|
13
|
-
})
|
|
14
|
-
export default class {{ clazzName }}DAO extends Base{{ clazzName }}DAO {
|
|
15
|
-
// empty-line
|
|
16
|
-
}
|
|
17
|
-
// empty-line
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { SqlMap } from '{{dalPkg}}';
|
|
2
|
-
// empty-line
|
|
3
|
-
/**
|
|
4
|
-
* Define Custom SQLs
|
|
5
|
-
*
|
|
6
|
-
* import { SqlMap, SqlType } from '{{dalPkg}}';
|
|
7
|
-
*
|
|
8
|
-
* export default {
|
|
9
|
-
* findByName: {
|
|
10
|
-
* type: SqlType.SELECT,
|
|
11
|
-
* sql: 'SELECT {{ allColumns }} from foo where name = {{ name }}'
|
|
12
|
-
* },
|
|
13
|
-
* }
|
|
14
|
-
*/
|
|
15
|
-
export default {
|
|
16
|
-
// empty-line
|
|
17
|
-
} as Record<string, SqlMap>;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|