@eggjs/dal-runtime 3.33.0

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.
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqlGenerator = void 0;
4
+ const dal_decorator_1 = require("@eggjs/dal-decorator");
5
+ // TODO diff 实现
6
+ class SqlGenerator {
7
+ formatComment(comment) {
8
+ return comment.replace(/\n/g, '\\n');
9
+ }
10
+ generateColumn(column) {
11
+ const sqls = [
12
+ ' ',
13
+ column.columnName,
14
+ this.generateColumnType(column.type),
15
+ ];
16
+ if (column.canNull) {
17
+ sqls.push('NULL');
18
+ }
19
+ else {
20
+ sqls.push('NOT NULL');
21
+ }
22
+ if ([
23
+ dal_decorator_1.ColumnType.POINT,
24
+ dal_decorator_1.ColumnType.GEOMETRY,
25
+ dal_decorator_1.ColumnType.POINT,
26
+ dal_decorator_1.ColumnType.LINESTRING,
27
+ dal_decorator_1.ColumnType.POLYGON,
28
+ dal_decorator_1.ColumnType.MULTIPOINT,
29
+ dal_decorator_1.ColumnType.MULTILINESTRING,
30
+ dal_decorator_1.ColumnType.MULTIPOLYGON,
31
+ dal_decorator_1.ColumnType.GEOMETRYCOLLECTION,
32
+ ].includes(column.type.type)) {
33
+ const SRID = column.type.SRID;
34
+ if (SRID) {
35
+ sqls.push(`SRID ${SRID}`);
36
+ }
37
+ }
38
+ if (typeof column.default !== 'undefined') {
39
+ sqls.push(`DEFAULT ${column.default}`);
40
+ }
41
+ if (column.autoIncrement) {
42
+ sqls.push('AUTO_INCREMENT');
43
+ }
44
+ if (column.uniqueKey) {
45
+ sqls.push('UNIQUE KEY');
46
+ }
47
+ if (column.primaryKey) {
48
+ sqls.push('PRIMARY KEY');
49
+ }
50
+ if (column.comment) {
51
+ sqls.push(`COMMENT '${this.formatComment(column.comment)}'`);
52
+ }
53
+ if (column.collate) {
54
+ sqls.push(`COLLATE ${column.collate}`);
55
+ }
56
+ if (column.columnFormat) {
57
+ sqls.push(`COLUMN_FORMAT ${column.columnFormat}`);
58
+ }
59
+ if (column.engineAttribute) {
60
+ sqls.push(`ENGINE_ATTRIBUTE='${column.engineAttribute}'`);
61
+ }
62
+ if (column.secondaryEngineAttribute) {
63
+ sqls.push(`SECONDARY_ENGINE_ATTRIBUTE='${column.secondaryEngineAttribute}'`);
64
+ }
65
+ return sqls.join(' ');
66
+ }
67
+ generateColumnType(columnType) {
68
+ const sqls = [];
69
+ switch (columnType.type) {
70
+ case dal_decorator_1.ColumnType.BOOL: {
71
+ sqls.push('BOOL');
72
+ break;
73
+ }
74
+ case dal_decorator_1.ColumnType.BIT: {
75
+ if (columnType.length) {
76
+ sqls.push(`BIT(${columnType.length})`);
77
+ }
78
+ else {
79
+ sqls.push('BIT');
80
+ }
81
+ break;
82
+ }
83
+ case dal_decorator_1.ColumnType.TINYINT:
84
+ case dal_decorator_1.ColumnType.SMALLINT:
85
+ case dal_decorator_1.ColumnType.MEDIUMINT:
86
+ case dal_decorator_1.ColumnType.INT:
87
+ case dal_decorator_1.ColumnType.BIGINT: {
88
+ if (typeof columnType.length === 'number') {
89
+ sqls.push(`${columnType.type}(${columnType.length})`);
90
+ }
91
+ else {
92
+ sqls.push(columnType.type);
93
+ }
94
+ if (columnType.unsigned) {
95
+ sqls.push('UNSIGNED');
96
+ }
97
+ if (columnType.zeroFill) {
98
+ sqls.push('ZEROFILL');
99
+ }
100
+ break;
101
+ }
102
+ case dal_decorator_1.ColumnType.DECIMAL:
103
+ case dal_decorator_1.ColumnType.FLOAT:
104
+ case dal_decorator_1.ColumnType.DOUBLE: {
105
+ if (typeof columnType.length === 'number' && typeof columnType.fractionalLength === 'number') {
106
+ sqls.push(`${columnType.type}(${columnType.length},${columnType.fractionalLength})`);
107
+ }
108
+ else if (typeof columnType.length === 'number') {
109
+ sqls.push(`${columnType.type}(${columnType.length})`);
110
+ }
111
+ else {
112
+ sqls.push('TINYINT');
113
+ }
114
+ if (columnType.unsigned) {
115
+ sqls.push('UNSIGNED');
116
+ }
117
+ if (columnType.zeroFill) {
118
+ sqls.push('ZEROFILL');
119
+ }
120
+ break;
121
+ }
122
+ case dal_decorator_1.ColumnType.DATE: {
123
+ sqls.push('DATE');
124
+ break;
125
+ }
126
+ case dal_decorator_1.ColumnType.DATETIME:
127
+ case dal_decorator_1.ColumnType.TIMESTAMP:
128
+ case dal_decorator_1.ColumnType.TIME: {
129
+ if (columnType.precision) {
130
+ sqls.push(`${columnType.type}(${columnType.precision})`);
131
+ }
132
+ else {
133
+ sqls.push(columnType.type);
134
+ }
135
+ break;
136
+ }
137
+ case dal_decorator_1.ColumnType.YEAR: {
138
+ sqls.push('YEAR');
139
+ break;
140
+ }
141
+ case dal_decorator_1.ColumnType.CHAR:
142
+ case dal_decorator_1.ColumnType.TEXT: {
143
+ if (columnType.length) {
144
+ sqls.push(`${columnType.type}(${columnType.length})`);
145
+ }
146
+ else {
147
+ sqls.push(columnType.type);
148
+ }
149
+ if (columnType.characterSet) {
150
+ sqls.push(`CHARACTER SET ${columnType.characterSet}`);
151
+ }
152
+ if (columnType.collate) {
153
+ sqls.push(`COLLATE ${columnType.collate}`);
154
+ }
155
+ break;
156
+ }
157
+ case dal_decorator_1.ColumnType.VARCHAR: {
158
+ sqls.push(`${columnType.type}(${columnType.length})`);
159
+ if (columnType.characterSet) {
160
+ sqls.push(`CHARACTER SET ${columnType.characterSet}`);
161
+ }
162
+ if (columnType.collate) {
163
+ sqls.push(`COLLATE ${columnType.collate}`);
164
+ }
165
+ break;
166
+ }
167
+ case dal_decorator_1.ColumnType.BINARY: {
168
+ if (columnType.length) {
169
+ sqls.push(`${columnType.type}(${columnType.length})`);
170
+ }
171
+ else {
172
+ sqls.push(columnType.type);
173
+ }
174
+ break;
175
+ }
176
+ case dal_decorator_1.ColumnType.VARBINARY: {
177
+ sqls.push(`${columnType.type}(${columnType.length})`);
178
+ break;
179
+ }
180
+ case dal_decorator_1.ColumnType.TINYBLOB: {
181
+ sqls.push('TINYBLOB');
182
+ break;
183
+ }
184
+ case dal_decorator_1.ColumnType.TINYTEXT:
185
+ case dal_decorator_1.ColumnType.MEDIUMTEXT:
186
+ case dal_decorator_1.ColumnType.LONGTEXT: {
187
+ sqls.push(columnType.type);
188
+ if (columnType.characterSet) {
189
+ sqls.push(`CHARACTER SET ${columnType.characterSet}`);
190
+ }
191
+ if (columnType.collate) {
192
+ sqls.push(`COLLATE ${columnType.collate}`);
193
+ }
194
+ break;
195
+ }
196
+ case dal_decorator_1.ColumnType.BLOB: {
197
+ if (columnType.length) {
198
+ sqls.push(`${columnType.type}(${columnType.length})`);
199
+ }
200
+ else {
201
+ sqls.push(columnType.type);
202
+ }
203
+ break;
204
+ }
205
+ case dal_decorator_1.ColumnType.MEDIUMBLOB: {
206
+ sqls.push('MEDIUMBLOB');
207
+ break;
208
+ }
209
+ case dal_decorator_1.ColumnType.LONGBLOB: {
210
+ sqls.push('LONGBLOB');
211
+ break;
212
+ }
213
+ case dal_decorator_1.ColumnType.ENUM: {
214
+ const enumValue = columnType.enums.map(t => `'${t}'`).join(',');
215
+ sqls.push(`ENUM(${enumValue})`);
216
+ if (columnType.characterSet) {
217
+ sqls.push(`CHARACTER SET ${columnType.characterSet}`);
218
+ }
219
+ if (columnType.collate) {
220
+ sqls.push(`COLLATE ${columnType.collate}`);
221
+ }
222
+ break;
223
+ }
224
+ case dal_decorator_1.ColumnType.SET: {
225
+ const enumValue = columnType.enums.map(t => `'${t}'`).join(',');
226
+ sqls.push(`SET(${enumValue})`);
227
+ if (columnType.characterSet) {
228
+ sqls.push(`CHARACTER SET ${columnType.characterSet}`);
229
+ }
230
+ if (columnType.collate) {
231
+ sqls.push(`COLLATE ${columnType.collate}`);
232
+ }
233
+ break;
234
+ }
235
+ case dal_decorator_1.ColumnType.JSON: {
236
+ sqls.push('JSON');
237
+ break;
238
+ }
239
+ case dal_decorator_1.ColumnType.GEOMETRY:
240
+ case dal_decorator_1.ColumnType.POINT:
241
+ case dal_decorator_1.ColumnType.LINESTRING:
242
+ case dal_decorator_1.ColumnType.POLYGON:
243
+ case dal_decorator_1.ColumnType.MULTIPOINT:
244
+ case dal_decorator_1.ColumnType.MULTILINESTRING:
245
+ case dal_decorator_1.ColumnType.MULTIPOLYGON:
246
+ case dal_decorator_1.ColumnType.GEOMETRYCOLLECTION: {
247
+ sqls.push(columnType.type);
248
+ break;
249
+ }
250
+ default: {
251
+ throw new Error(`unknown ColumnType ${columnType}`);
252
+ }
253
+ }
254
+ return sqls.join(' ');
255
+ }
256
+ generateIndex(indexModel) {
257
+ const indexSql = [
258
+ ' ',
259
+ ];
260
+ switch (indexModel.type) {
261
+ case dal_decorator_1.IndexType.INDEX: {
262
+ indexSql.push('KEY');
263
+ break;
264
+ }
265
+ case dal_decorator_1.IndexType.UNIQUE: {
266
+ indexSql.push('UNIQUE KEY');
267
+ break;
268
+ }
269
+ case dal_decorator_1.IndexType.PRIMARY: {
270
+ indexSql.push('PRIMARY KEY');
271
+ break;
272
+ }
273
+ case dal_decorator_1.IndexType.FULLTEXT: {
274
+ indexSql.push('FULLTEXT KEY');
275
+ break;
276
+ }
277
+ case dal_decorator_1.IndexType.SPATIAL: {
278
+ indexSql.push('SPATIAL KEY');
279
+ break;
280
+ }
281
+ default: {
282
+ throw new Error(`unknown IndexType ${indexModel.type}`);
283
+ }
284
+ }
285
+ indexSql.push(indexModel.name);
286
+ indexSql.push(`(${indexModel.keys.map(t => t.columnName).join(',')})`);
287
+ if (indexModel.storeType) {
288
+ indexSql.push(`USING ${indexModel.storeType}`);
289
+ }
290
+ if (indexModel.parser) {
291
+ indexSql.push(`WITH PARSER ${indexModel.parser}`);
292
+ }
293
+ if (indexModel.comment) {
294
+ indexSql.push(`COMMENT '${this.formatComment(indexModel.comment)}'`);
295
+ }
296
+ if (indexModel.engineAttribute) {
297
+ indexSql.push(`ENGINE_ATTRIBUTE='${indexModel.engineAttribute}'`);
298
+ }
299
+ if (indexModel.secondaryEngineAttribute) {
300
+ indexSql.push(`SECONDARY_ENGINE_ATTRIBUTE='${indexModel.secondaryEngineAttribute}'`);
301
+ }
302
+ return indexSql.join(' ');
303
+ }
304
+ generateTableOptions(tableModel) {
305
+ const sqls = [];
306
+ if (tableModel.autoExtendSize) {
307
+ sqls.push(`AUTOEXTEND_SIZE=${tableModel.autoExtendSize}`);
308
+ }
309
+ if (tableModel.autoIncrement) {
310
+ sqls.push(`AUTO_INCREMENT=${tableModel.autoIncrement}`);
311
+ }
312
+ if (tableModel.avgRowLength) {
313
+ sqls.push(`AVG_ROW_LENGTH=${tableModel.avgRowLength}`);
314
+ }
315
+ if (tableModel.characterSet) {
316
+ sqls.push(`DEFAULT CHARACTER SET ${tableModel.characterSet}`);
317
+ }
318
+ if (tableModel.collate) {
319
+ sqls.push(`DEFAULT COLLATE ${tableModel.collate}`);
320
+ }
321
+ if (tableModel.comment) {
322
+ sqls.push(`COMMENT='${this.formatComment(tableModel.comment)}'`);
323
+ }
324
+ if (tableModel.compression) {
325
+ sqls.push(`COMPRESSION='${tableModel.compression}'`);
326
+ }
327
+ if (typeof tableModel.encryption !== 'undefined') {
328
+ sqls.push(`ENCRYPTION='${tableModel.encryption ? 'Y' : 'N'}'`);
329
+ }
330
+ if (typeof tableModel.engine !== 'undefined') {
331
+ sqls.push(`ENGINE=${tableModel.engine}`);
332
+ }
333
+ if (tableModel.engineAttribute) {
334
+ sqls.push(`ENGINE_ATTRIBUTE='${tableModel.engineAttribute}'`);
335
+ }
336
+ if (tableModel.secondaryEngineAttribute) {
337
+ sqls.push(`SECONDARY_ENGINE_ATTRIBUTE = '${tableModel.secondaryEngineAttribute}'`);
338
+ }
339
+ if (tableModel.insertMethod) {
340
+ sqls.push(`INSERT_METHOD=${tableModel.insertMethod}`);
341
+ }
342
+ if (tableModel.keyBlockSize) {
343
+ sqls.push(`KEY_BLOCK_SIZE=${tableModel.keyBlockSize}`);
344
+ }
345
+ if (tableModel.maxRows) {
346
+ sqls.push(`MAX_ROWS=${tableModel.maxRows}`);
347
+ }
348
+ if (tableModel.minRows) {
349
+ sqls.push(`MIN_ROWS=${tableModel.minRows}`);
350
+ }
351
+ if (tableModel.rowFormat) {
352
+ sqls.push(`ROW_FORMAT=${tableModel.rowFormat}`);
353
+ }
354
+ return sqls.join(', ');
355
+ }
356
+ generate(tableModel) {
357
+ const createSql = [];
358
+ createSql.push(`CREATE TABLE IF NOT EXISTS ${tableModel.name} (`);
359
+ const columnSql = [];
360
+ for (const column of tableModel.columns) {
361
+ columnSql.push(this.generateColumn(column));
362
+ }
363
+ const indexSql = [];
364
+ for (const index of tableModel.indices) {
365
+ indexSql.push(this.generateIndex(index));
366
+ }
367
+ if (indexSql.length) {
368
+ createSql.push(columnSql.join(',\n') + ',');
369
+ createSql.push(indexSql.join(',\n'));
370
+ }
371
+ else {
372
+ createSql.push(columnSql.join(',\n'));
373
+ }
374
+ createSql.push(`) ${this.generateTableOptions(tableModel)};`);
375
+ return createSql.join('\n');
376
+ }
377
+ }
378
+ exports.SqlGenerator = SqlGenerator;
379
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsR2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NxbEdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3REFPOEI7QUFFOUIsZUFBZTtBQUNmLE1BQWEsWUFBWTtJQUNmLGFBQWEsQ0FBQyxPQUFlO1FBQ25DLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFtQjtRQUN4QyxNQUFNLElBQUksR0FBYTtZQUNyQixHQUFHO1lBQ0gsTUFBTSxDQUFDLFVBQVU7WUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDckMsQ0FBQztRQUNGLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFLO1lBQ0gsMEJBQVUsQ0FBQyxLQUFLO1lBQ2hCLDBCQUFVLENBQUMsUUFBUTtZQUNuQiwwQkFBVSxDQUFDLEtBQUs7WUFDaEIsMEJBQVUsQ0FBQyxVQUFVO1lBQ3JCLDBCQUFVLENBQUMsT0FBTztZQUNsQiwwQkFBVSxDQUFDLFVBQVU7WUFDckIsMEJBQVUsQ0FBQyxlQUFlO1lBQzFCLDBCQUFVLENBQUMsWUFBWTtZQUN2QiwwQkFBVSxDQUFDLGtCQUFrQjtTQUNiLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLElBQUksR0FBSSxNQUFNLENBQUMsSUFBMEIsQ0FBQyxJQUFJLENBQUM7WUFDckQsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFB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
@@ -0,0 +1,10 @@
1
+ import { TableModel } from '@eggjs/dal-decorator';
2
+ import { type EggLogger } from 'egg';
3
+ import { TableSqlMap } from './TableSqlMap';
4
+ export declare class SqlMapLoader {
5
+ private readonly logger;
6
+ private readonly tableModel;
7
+ private readonly sqlMapPath;
8
+ constructor(tableModel: TableModel, moduleDir: string, logger: EggLogger);
9
+ load(): TableSqlMap;
10
+ }
@@ -0,0 +1,35 @@
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.SqlMapLoader = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const BaseSqlMap_1 = require("./BaseSqlMap");
9
+ const TableSqlMap_1 = require("./TableSqlMap");
10
+ class SqlMapLoader {
11
+ constructor(tableModel, moduleDir, logger) {
12
+ this.sqlMapPath = node_path_1.default.join(moduleDir, 'dal/extension', `${tableModel.clazz.name}Extension.ts`);
13
+ this.logger = logger;
14
+ this.tableModel = tableModel;
15
+ }
16
+ load() {
17
+ try {
18
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
19
+ const customSqlMap = require(this.sqlMapPath);
20
+ const baseSqlMapGenerator = new BaseSqlMap_1.BaseSqlMapGenerator(this.tableModel, this.logger);
21
+ const baseSqlMap = baseSqlMapGenerator.load();
22
+ const sqlMap = {
23
+ ...baseSqlMap,
24
+ ...customSqlMap,
25
+ };
26
+ return new TableSqlMap_1.TableSqlMap(this.tableModel.clazz.name, sqlMap);
27
+ }
28
+ catch (e) {
29
+ e.message = `load sql map ${this.sqlMapPath} failed: ${e.message}`;
30
+ throw e;
31
+ }
32
+ }
33
+ }
34
+ exports.SqlMapLoader = SqlMapLoader;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsTWFwTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NxbE1hcExvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBNkI7QUFHN0IsNkNBQW1EO0FBQ25ELCtDQUE0QztBQUU1QyxNQUFhLFlBQVk7SUFLdkIsWUFBWSxVQUFzQixFQUFFLFNBQWlCLEVBQUUsTUFBaUI7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDO1lBQ0gsOERBQThEO1lBQzlELE1BQU0sWUFBWSxHQUEyQixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxnQ0FBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRixNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRztnQkFDYixHQUFHLFVBQVU7Z0JBQ2IsR0FBRyxZQUFZO2FBQ2hCLENBQUM7WUFDRixPQUFPLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxDQUFDLENBQUMsT0FBTyxHQUFHLGdCQUFnQixJQUFJLENBQUMsVUFBVSxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRSxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUEzQkQsb0NBMkJDIn0=
@@ -0,0 +1,3 @@
1
+ export declare class SqlUtil {
2
+ static minify(sql: string): string;
3
+ }