@eggjs/dal-runtime 3.34.0 → 3.35.1
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/dist/src/CodeGenerator.d.ts +4 -0
- package/dist/src/CodeGenerator.js +5 -1
- package/dist/src/templates/base_dao.njk +4 -4
- package/dist/src/templates/dao.njk +1 -1
- package/dist/src/templates/extension.njk +2 -2
- package/package.json +5 -5
- package/dist/src/templates/templates/base_dao.njk +0 -150
- package/dist/src/templates/templates/dao.njk +0 -17
- package/dist/src/templates/templates/extension.njk +0 -17
|
@@ -2,6 +2,8 @@ import { TableModel } from '@eggjs/dal-decorator';
|
|
|
2
2
|
export interface CodeGeneratorOptions {
|
|
3
3
|
moduleDir: string;
|
|
4
4
|
moduleName: string;
|
|
5
|
+
teggPkg?: string;
|
|
6
|
+
dalPkg?: string;
|
|
5
7
|
}
|
|
6
8
|
export declare enum Templates {
|
|
7
9
|
BASE_DAO = "base_dao",
|
|
@@ -11,6 +13,8 @@ export declare enum Templates {
|
|
|
11
13
|
export declare class CodeGenerator {
|
|
12
14
|
private readonly moduleDir;
|
|
13
15
|
private readonly moduleName;
|
|
16
|
+
private readonly teggPkg;
|
|
17
|
+
private readonly dalPkg;
|
|
14
18
|
constructor(options: CodeGeneratorOptions);
|
|
15
19
|
private njkEnv;
|
|
16
20
|
createNunjucksEnv(): void;
|
|
@@ -22,6 +22,8 @@ class CodeGenerator {
|
|
|
22
22
|
constructor(options) {
|
|
23
23
|
this.moduleDir = options.moduleDir;
|
|
24
24
|
this.moduleName = options.moduleName;
|
|
25
|
+
this.teggPkg = options.teggPkg ?? '@eggjs/tegg';
|
|
26
|
+
this.dalPkg = options.dalPkg ?? '@eggjs/tegg/dal';
|
|
25
27
|
this.createNunjucksEnv();
|
|
26
28
|
}
|
|
27
29
|
createNunjucksEnv() {
|
|
@@ -41,6 +43,8 @@ class CodeGenerator {
|
|
|
41
43
|
fileName: node_path_1.default.basename(filePath),
|
|
42
44
|
clazzName: tableModel.clazz.name,
|
|
43
45
|
moduleName: this.moduleName,
|
|
46
|
+
teggPkg: this.teggPkg,
|
|
47
|
+
dalPkg: this.dalPkg,
|
|
44
48
|
id: tableModel.columns.find(t => t.propertyName === 'id'),
|
|
45
49
|
primaryIndex: tableModel.getPrimary(),
|
|
46
50
|
tableModelPath: TemplateUtil_1.TemplateUtil.importPath(tableModelAbsolutePath, node_path_1.default.dirname(filePath)),
|
|
@@ -121,4 +125,4 @@ class CodeGenerator {
|
|
|
121
125
|
}
|
|
122
126
|
}
|
|
123
127
|
exports.CodeGenerator = CodeGenerator;
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db2RlR2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdEQUFzRDtBQUN0RCwwREFBNkI7QUFDN0Isb0RBQXVCO0FBQ3ZCLGlEQUE4QztBQUU5QywwREFBc0Q7QUFDdEQsZ0VBQWtDO0FBQ2xDLDZDQUEwQztBQUMxQyxpREFBOEM7QUFTOUMsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLHdCQUFXLENBQUE7SUFDWCxvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsU0FBUyx5QkFBVCxTQUFTLFFBSXBCO0FBRUQsTUFBYSxhQUFhO0lBTXhCLFlBQVksT0FBNkI7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQztRQUNsRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBSUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxtQkFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDcEUsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQUMsQ0FBQyxVQUFVLENBQUMsZ0JBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxD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
|
|
@@ -68,16 +68,16 @@ Optional<{{clazzName}},
|
|
|
68
68
|
>
|
|
69
69
|
{% endmacro %}
|
|
70
70
|
|
|
71
|
-
import type { InsertResult, UpdateResult, DeleteResult } from '
|
|
72
|
-
import { SingletonProto, AccessLevel, Inject } from '
|
|
73
|
-
import { DataSource, DataSourceInjectName, DataSourceQualifier, ColumnTsType } from '
|
|
71
|
+
import type { InsertResult, UpdateResult, DeleteResult } from '{{dalPkg}}';
|
|
72
|
+
import { SingletonProto, AccessLevel, Inject } from '{{teggPkg}}';
|
|
73
|
+
import { DataSource, DataSourceInjectName, DataSourceQualifier, ColumnTsType } from '{{dalPkg}}';
|
|
74
74
|
import { {{ clazzName }} } from '{{ tableModelPath }}';
|
|
75
75
|
// empty-line
|
|
76
76
|
type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
|
|
77
77
|
/**
|
|
78
78
|
* 自动生成的 {{ clazzName }}DAO 基类
|
|
79
79
|
* @class Base{{ clazzName }}DAO
|
|
80
|
-
* @classdesc 该文件由
|
|
80
|
+
* @classdesc 该文件由 {{teggPkg}} 自动生成,请**不要**修改它!
|
|
81
81
|
*/
|
|
82
82
|
/* istanbul ignore next */
|
|
83
83
|
@SingletonProto({
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { SqlMap } from '
|
|
1
|
+
import { SqlMap } from '{{dalPkg}}';
|
|
2
2
|
// empty-line
|
|
3
3
|
/**
|
|
4
4
|
* Define Custom SQLs
|
|
5
5
|
*
|
|
6
|
-
* import { SqlMap, SqlType } from '
|
|
6
|
+
* import { SqlMap, SqlType } from '{{dalPkg}}';
|
|
7
7
|
*
|
|
8
8
|
* export default {
|
|
9
9
|
* findByName: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/dal-runtime",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.35.1",
|
|
4
4
|
"description": "tegg dal decorator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"clean": "tsc -b --clean",
|
|
22
22
|
"tsc": "npm run clean && tsc -p ./tsconfig.json",
|
|
23
23
|
"tsc:pub": "npm run clean && tsc -p ./tsconfig.pub.json && npm run cp:template",
|
|
24
|
-
"cp:template": "cp -r src/templates dist/src/templates",
|
|
24
|
+
"cp:template": "rm -rf dist/src/templates && cp -r src/templates dist/src/templates",
|
|
25
25
|
"prepublishOnly": "npm run tsc:pub"
|
|
26
26
|
},
|
|
27
27
|
"author": "killagu <killa123@126.com>",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"node": ">=14.0.0"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@eggjs/dal-decorator": "^3.
|
|
42
|
+
"@eggjs/dal-decorator": "^3.35.1",
|
|
43
43
|
"@eggjs/rds": "^1.0.0",
|
|
44
44
|
"js-beautify": "^1.15.1",
|
|
45
45
|
"lodash": "^4.17.21",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@eggjs/tegg": "^3.
|
|
54
|
+
"@eggjs/tegg": "^3.35.1",
|
|
55
55
|
"@types/lodash": "^4.17.0",
|
|
56
56
|
"@types/mocha": "^10.0.1",
|
|
57
57
|
"@types/node": "^20.2.4",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"ts-node": "^10.9.1",
|
|
62
62
|
"typescript": "^5.0.4"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "7637fc3eff8293af87df936a4840821add64257b"
|
|
65
65
|
}
|
|
@@ -1,150 +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 type { InsertResult, UpdateResult, DeleteResult } from '@eggjs/rds/lib/types';
|
|
72
|
-
import { SingletonProto, AccessLevel, Inject } from '@eggjs/tegg';
|
|
73
|
-
import { DataSource, DataSourceInjectName, DataSourceQualifier, ColumnTsType } from '@eggjs/tegg/dal';
|
|
74
|
-
import { {{ clazzName }} } from '{{ tableModelPath }}';
|
|
75
|
-
// empty-line
|
|
76
|
-
type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
|
|
77
|
-
/**
|
|
78
|
-
* 自动生成的 {{ clazzName }}DAO 基类
|
|
79
|
-
* @class Base{{ clazzName }}DAO
|
|
80
|
-
* @classdesc 该文件由 @eggjs/tegg 自动生成,请**不要**修改它!
|
|
81
|
-
*/
|
|
82
|
-
/* istanbul ignore next */
|
|
83
|
-
@SingletonProto({
|
|
84
|
-
accessLevel: AccessLevel.PUBLIC,
|
|
85
|
-
})
|
|
86
|
-
export class Base{{ clazzName }}DAO {
|
|
87
|
-
static clazzModel = {{ clazzName }};
|
|
88
|
-
|
|
89
|
-
@Inject({
|
|
90
|
-
name: DataSourceInjectName,
|
|
91
|
-
})
|
|
92
|
-
@DataSourceQualifier('{{moduleName}}.{{ table.dataSourceName }}.{{ clazzName }}')
|
|
93
|
-
protected readonly dataSource: DataSource<{{clazzName}}>;
|
|
94
|
-
|
|
95
|
-
// empty-line
|
|
96
|
-
{# insert: 插入 #}
|
|
97
|
-
public async insert(raw: {{generateInsertType(primaryIndex)}}): Promise<InsertResult> {
|
|
98
|
-
const data: Record<string, any> = {};
|
|
99
|
-
|
|
100
|
-
{{ newDataLogic(columns, 'raw', 'data') }}
|
|
101
|
-
|
|
102
|
-
// empty-line
|
|
103
|
-
return this.dataSource.executeRawScalar('insert', data);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// empty-line
|
|
107
|
-
{# update: 更新 #}
|
|
108
|
-
public async update({{generatePrimaryType(primaryIndex)}}, data: Partial<{{ ((clazzName)) }}>): Promise<UpdateResult> {
|
|
109
|
-
// empty-line
|
|
110
|
-
{{ generateUpdateValue(primaryIndex) }}
|
|
111
|
-
|
|
112
|
-
{{ newDataLogic(columns, 'data', 'newData') }}
|
|
113
|
-
|
|
114
|
-
// empty-line
|
|
115
|
-
return this.dataSource.executeRawScalar('update', newData);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
{% for funcName in [ 'delete', 'del' ] %}
|
|
119
|
-
// empty-line
|
|
120
|
-
{# delete: 删除 #}
|
|
121
|
-
public async {{ funcName }}({{generatePrimaryType(primaryIndex)}}): Promise<DeleteResult> {
|
|
122
|
-
return this.dataSource.executeRawScalar('delete', {{generateDeleteValue(primaryIndex)}});
|
|
123
|
-
}
|
|
124
|
-
{% endfor %}
|
|
125
|
-
|
|
126
|
-
{% for idx in table.indices %}
|
|
127
|
-
// empty-line
|
|
128
|
-
{# 某个索引 #}
|
|
129
|
-
{% set tmpName = ((idx.keys[0].propertyName if (idx.keys | length) === 1 else idx.name) | pascalCase) %}
|
|
130
|
-
{% set findName = 'findBy' + tmpName %}
|
|
131
|
-
{% set findOneName = 'findOneBy' + tmpName %}
|
|
132
|
-
{{ findLogic(findName, findName, idx, false) }}
|
|
133
|
-
// empty-line
|
|
134
|
-
{{ findLogic(findOneName, findOneName, idx, true) }}
|
|
135
|
-
{% endfor %}
|
|
136
|
-
|
|
137
|
-
// empty-line
|
|
138
|
-
{# 某个索引 #}
|
|
139
|
-
{% if primaryIndex %}
|
|
140
|
-
{% set tmpName = ((primaryIndex.keys[0].propertyName if (primaryIndex.keys | length) === 1 else primaryIndex.name) | pascalCase) %}
|
|
141
|
-
{% set findName = 'findBy' + tmpName %}
|
|
142
|
-
{% set findOneName = 'findOneBy' + tmpName %}
|
|
143
|
-
{{ findLogic(findName, findName, primaryIndex, true) }}
|
|
144
|
-
{% if (primaryIndex.keys | length) === 1 %}
|
|
145
|
-
// empty-line
|
|
146
|
-
{{ findLogic('findByPrimary', findName, primaryIndex, true) }}
|
|
147
|
-
{% endif %}
|
|
148
|
-
{% endif %}
|
|
149
|
-
}
|
|
150
|
-
// empty-line
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { SingletonProto, AccessLevel } from '@eggjs/tegg';
|
|
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 '@eggjs/tegg/dal';
|
|
2
|
-
// empty-line
|
|
3
|
-
/**
|
|
4
|
-
* Define Custom SQLs
|
|
5
|
-
*
|
|
6
|
-
* import { SqlMap, SqlType } from '@eggjs/tegg/dal';
|
|
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>;
|