@eggjs/dal-decorator 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.
Files changed (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/index.d.ts +20 -0
  4. package/dist/index.js +37 -0
  5. package/dist/src/decorator/Column.d.ts +178 -0
  6. package/dist/src/decorator/Column.js +21 -0
  7. package/dist/src/decorator/DataSourceQualifier.d.ts +3 -0
  8. package/dist/src/decorator/DataSourceQualifier.js +13 -0
  9. package/dist/src/decorator/Index.d.ts +14 -0
  10. package/dist/src/decorator/Index.js +11 -0
  11. package/dist/src/decorator/Table.d.ts +25 -0
  12. package/dist/src/decorator/Table.js +23 -0
  13. package/dist/src/enum/ColumnFormat.d.ts +5 -0
  14. package/dist/src/enum/ColumnFormat.js +10 -0
  15. package/dist/src/enum/ColumnType.d.ts +40 -0
  16. package/dist/src/enum/ColumnType.js +51 -0
  17. package/dist/src/enum/CompressionType.d.ts +5 -0
  18. package/dist/src/enum/CompressionType.js +10 -0
  19. package/dist/src/enum/IndexStoreType.d.ts +4 -0
  20. package/dist/src/enum/IndexStoreType.js +9 -0
  21. package/dist/src/enum/IndexType.d.ts +7 -0
  22. package/dist/src/enum/IndexType.js +12 -0
  23. package/dist/src/enum/InsertMethod.d.ts +5 -0
  24. package/dist/src/enum/InsertMethod.js +10 -0
  25. package/dist/src/enum/RowFormat.d.ts +8 -0
  26. package/dist/src/enum/RowFormat.js +13 -0
  27. package/dist/src/model/ColumnModel.d.ts +35 -0
  28. package/dist/src/model/ColumnModel.js +51 -0
  29. package/dist/src/model/IndexModel.d.ts +30 -0
  30. package/dist/src/model/IndexModel.js +47 -0
  31. package/dist/src/model/TableModel.d.ts +54 -0
  32. package/dist/src/model/TableModel.js +102 -0
  33. package/dist/src/type/ColumnTsType.d.ts +42 -0
  34. package/dist/src/type/ColumnTsType.js +3 -0
  35. package/dist/src/type/DateSource.d.ts +13 -0
  36. package/dist/src/type/DateSource.js +3 -0
  37. package/dist/src/type/MySql.d.ts +1 -0
  38. package/dist/src/type/MySql.js +3 -0
  39. package/dist/src/type/Spatial.d.ts +21 -0
  40. package/dist/src/type/Spatial.js +35 -0
  41. package/dist/src/type/SqlMap.d.ts +19 -0
  42. package/dist/src/type/SqlMap.js +12 -0
  43. package/dist/src/util/ColumnInfoUtil.d.ts +12 -0
  44. package/dist/src/util/ColumnInfoUtil.js +24 -0
  45. package/dist/src/util/IndexInfoUtil.d.ts +7 -0
  46. package/dist/src/util/IndexInfoUtil.js +16 -0
  47. package/dist/src/util/TableInfoUtil.d.ts +12 -0
  48. package/dist/src/util/TableInfoUtil.js +28 -0
  49. package/package.json +57 -0
@@ -0,0 +1,51 @@
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.ColumnModel = void 0;
7
+ const lodash_snakecase_1 = __importDefault(require("lodash.snakecase"));
8
+ class ColumnModel {
9
+ constructor(params) {
10
+ this.columnName = params.columnName;
11
+ this.propertyName = params.propertyName;
12
+ this.type = params.type;
13
+ this.canNull = params.canNull;
14
+ this.default = params.default;
15
+ this.comment = params.comment;
16
+ this.visible = params.visible;
17
+ this.autoIncrement = params.autoIncrement;
18
+ this.uniqueKey = params.uniqueKey;
19
+ this.primaryKey = params.primaryKey;
20
+ this.collate = params.collate;
21
+ this.columnFormat = params.columnFormat;
22
+ this.engineAttribute = params.engineAttribute;
23
+ this.secondaryEngineAttribute = params.secondaryEngineAttribute;
24
+ }
25
+ static build(property, type, params) {
26
+ var _a, _b;
27
+ const columnName = (_a = params === null || params === void 0 ? void 0 : params.name) !== null && _a !== void 0 ? _a : (0, lodash_snakecase_1.default)(property);
28
+ let canNull = (_b = params === null || params === void 0 ? void 0 : params.canNull) !== null && _b !== void 0 ? _b : false;
29
+ if (params === null || params === void 0 ? void 0 : params.primaryKey) {
30
+ canNull = false;
31
+ }
32
+ return new ColumnModel({
33
+ columnName,
34
+ propertyName: property,
35
+ type,
36
+ canNull,
37
+ default: params === null || params === void 0 ? void 0 : params.default,
38
+ comment: params === null || params === void 0 ? void 0 : params.comment,
39
+ visible: params === null || params === void 0 ? void 0 : params.visible,
40
+ autoIncrement: params === null || params === void 0 ? void 0 : params.autoIncrement,
41
+ uniqueKey: params === null || params === void 0 ? void 0 : params.uniqueKey,
42
+ primaryKey: params === null || params === void 0 ? void 0 : params.primaryKey,
43
+ collate: params === null || params === void 0 ? void 0 : params.collate,
44
+ columnFormat: params === null || params === void 0 ? void 0 : params.columnFormat,
45
+ engineAttribute: params === null || params === void 0 ? void 0 : params.engineAttribute,
46
+ secondaryEngineAttribute: params === null || params === void 0 ? void 0 : params.secondaryEngineAttribute,
47
+ });
48
+ }
49
+ }
50
+ exports.ColumnModel = ColumnModel;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvQ29sdW1uTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsd0VBQXlDO0FBRXpDLE1BQWEsV0FBVztJQWdCdEIsWUFBWSxNQWVYO1FBQ0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQzlDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBZ0IsRUFBRSxJQUFzQixFQUFFLE1BQXFCOztRQUMxRSxNQUFNLFVBQVUsR0FBRyxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJLG1DQUFJLElBQUEsMEJBQVMsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN2RCxJQUFJLE9BQU8sR0FBRyxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxPQUFPLG1DQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxVQUFVLEVBQUUsQ0FBQztZQUN2QixPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxPQUFPLElBQUksV0FBVyxDQUFDO1lBQ3JCLFVBQVU7WUFDVixZQUFZLEVBQUUsUUFBUTtZQUN0QixJQUFJO1lBQ0osT0FBTztZQUNQLE9BQU8sRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTztZQUN4QixPQUFPLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU87WUFDeEIsT0FBTyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxPQUFPO1lBQ3hCLGFBQWEsRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYTtZQUNwQyxTQUFTLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFNBQVM7WUFDNUIsVUFBVSxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxVQUFVO1lBQzlCLE9BQU8sRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTztZQUN4QixZQUFZLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFlBQVk7WUFDbEMsZUFBZSxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxlQUFlO1lBQ3hDLHdCQUF3QixFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSx3QkFBd0I7U0FDM0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBdkVELGtDQXVFQyJ9
@@ -0,0 +1,30 @@
1
+ import { IndexType } from '../enum/IndexType';
2
+ import { IndexStoreType } from '../enum/IndexStoreType';
3
+ import { IndexParams } from '../decorator/Index';
4
+ import { ColumnModel } from './ColumnModel';
5
+ export interface IndexKey {
6
+ columnName: string;
7
+ propertyName: string;
8
+ }
9
+ export declare class IndexModel {
10
+ name: string;
11
+ keys: IndexKey[];
12
+ type: IndexType;
13
+ storeType?: IndexStoreType;
14
+ comment?: string;
15
+ engineAttribute?: string;
16
+ secondaryEngineAttribute?: string;
17
+ parser?: string;
18
+ constructor(params: {
19
+ name: string;
20
+ keys: IndexKey[];
21
+ type: IndexType;
22
+ storeType?: IndexStoreType;
23
+ comment?: string;
24
+ engineAttribute?: string;
25
+ secondaryEngineAttribute?: string;
26
+ parser?: string;
27
+ });
28
+ static buildIndexName(keys: string[], type: IndexType): string;
29
+ static build(params: IndexParams, columns: ColumnModel[]): IndexModel;
30
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IndexModel = void 0;
4
+ const IndexType_1 = require("../enum/IndexType");
5
+ class IndexModel {
6
+ constructor(params) {
7
+ this.name = params.name;
8
+ this.keys = params.keys;
9
+ this.type = params.type;
10
+ this.storeType = params.storeType;
11
+ this.comment = params.comment;
12
+ this.engineAttribute = params.engineAttribute;
13
+ this.secondaryEngineAttribute = params.secondaryEngineAttribute;
14
+ this.parser = params.parser;
15
+ }
16
+ static buildIndexName(keys, type) {
17
+ const prefix = type === IndexType_1.IndexType.UNIQUE ? 'uk_' : 'idx_';
18
+ return prefix + keys.join('_');
19
+ }
20
+ static build(params, columns) {
21
+ var _a, _b;
22
+ const type = (_a = params.type) !== null && _a !== void 0 ? _a : IndexType_1.IndexType.INDEX;
23
+ const name = (_b = params.name) !== null && _b !== void 0 ? _b : IndexModel.buildIndexName(params.keys, type);
24
+ const keys = params.keys.map(t => {
25
+ const column = columns.find(c => c.propertyName === t);
26
+ if (!column) {
27
+ throw new Error(`Index "${name}" configuration error: has no property named "${t}"`);
28
+ }
29
+ return {
30
+ propertyName: column.propertyName,
31
+ columnName: column.columnName,
32
+ };
33
+ });
34
+ return new IndexModel({
35
+ name,
36
+ keys,
37
+ type,
38
+ storeType: params.storeType,
39
+ comment: params.comment,
40
+ engineAttribute: params.engineAttribute,
41
+ secondaryEngineAttribute: params.secondaryEngineAttribute,
42
+ parser: params.parser,
43
+ });
44
+ }
45
+ }
46
+ exports.IndexModel = IndexModel;
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kZXhNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9JbmRleE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE4QztBQVU5QyxNQUFhLFVBQVU7SUFXckIsWUFBWSxNQVNYO1FBQ0MsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDOUMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBYyxFQUFFLElBQWU7UUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLHFCQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMxRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQW1CLEVBQUUsT0FBc0I7O1FBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQUEsTUFBTSxDQUFDLElBQUksbUNBQUkscUJBQVMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsTUFBQSxNQUFNLENBQUMsSUFBSSxtQ0FBSSxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekUsTUFBTSxJQUFJLEdBQW9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxpREFBaUQsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2RixDQUFDO1lBQ0QsT0FBTztnQkFDTCxZQUFZLEVBQUUsTUFBTyxDQUFDLFlBQVk7Z0JBQ2xDLFVBQVUsRUFBRSxNQUFPLENBQUMsVUFBVTthQUMvQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksVUFBVSxDQUFDO1lBQ3BCLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1lBQ3ZDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyx3QkFBd0I7WUFDekQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVERCxnQ0E0REMifQ==
@@ -0,0 +1,54 @@
1
+ import { CompressionType } from '../enum/CompressionType';
2
+ import { InsertMethod } from '../enum/InsertMethod';
3
+ import { RowFormat } from '../enum/RowFormat';
4
+ import { ColumnModel } from './ColumnModel';
5
+ import { IndexModel } from './IndexModel';
6
+ import { EggProtoImplClass } from '@eggjs/core-decorator';
7
+ export declare class TableModel<T = object> {
8
+ clazz: EggProtoImplClass<T>;
9
+ name: string;
10
+ columns: Array<ColumnModel>;
11
+ indices: Array<IndexModel>;
12
+ dataSourceName: string;
13
+ comment?: string;
14
+ autoExtendSize?: number;
15
+ autoIncrement?: number;
16
+ avgRowLength?: number;
17
+ characterSet?: string;
18
+ collate?: string;
19
+ compression?: CompressionType;
20
+ encryption?: boolean;
21
+ engine?: string;
22
+ engineAttribute?: string;
23
+ insertMethod?: InsertMethod;
24
+ keyBlockSize?: number;
25
+ maxRows?: number;
26
+ minRows?: number;
27
+ rowFormat?: RowFormat;
28
+ secondaryEngineAttribute?: string;
29
+ constructor(params: {
30
+ clazz: EggProtoImplClass<T>;
31
+ name: string;
32
+ dataSourceName: string;
33
+ columns: Array<ColumnModel>;
34
+ indices: Array<IndexModel>;
35
+ comment?: string;
36
+ autoExtendSize?: number;
37
+ autoIncrement?: number;
38
+ avgRowLength?: number;
39
+ characterSet?: string;
40
+ collate?: string;
41
+ compression?: CompressionType;
42
+ encryption?: boolean;
43
+ engine?: string;
44
+ engineAttribute?: string;
45
+ insertMethod?: InsertMethod;
46
+ keyBlockSize?: number;
47
+ maxRows?: number;
48
+ minRows?: number;
49
+ rowFormat?: RowFormat;
50
+ secondaryEngineAttribute?: string;
51
+ });
52
+ getPrimary(): IndexModel | undefined;
53
+ static build<T>(clazz: EggProtoImplClass<T>): TableModel<T>;
54
+ }
@@ -0,0 +1,102 @@
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.TableModel = void 0;
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const ColumnModel_1 = require("./ColumnModel");
9
+ const IndexModel_1 = require("./IndexModel");
10
+ const TableInfoUtil_1 = require("../util/TableInfoUtil");
11
+ const pluralize_1 = __importDefault(require("pluralize"));
12
+ const lodash_snakecase_1 = __importDefault(require("lodash.snakecase"));
13
+ const ColumnInfoUtil_1 = require("../util/ColumnInfoUtil");
14
+ const IndexInfoUtil_1 = require("../util/IndexInfoUtil");
15
+ const IndexType_1 = require("../enum/IndexType");
16
+ class TableModel {
17
+ constructor(params) {
18
+ this.clazz = params.clazz;
19
+ this.name = params.name;
20
+ this.dataSourceName = params.dataSourceName;
21
+ this.columns = params.columns;
22
+ this.indices = params.indices;
23
+ this.comment = params.comment;
24
+ this.autoExtendSize = params.autoExtendSize;
25
+ this.autoIncrement = params.autoIncrement;
26
+ this.avgRowLength = params.avgRowLength;
27
+ this.characterSet = params.characterSet;
28
+ this.collate = params.collate;
29
+ this.compression = params.compression;
30
+ this.encryption = params.encryption;
31
+ this.engine = params.engine;
32
+ this.engineAttribute = params.engineAttribute;
33
+ this.insertMethod = params.insertMethod;
34
+ this.keyBlockSize = params.keyBlockSize;
35
+ this.maxRows = params.maxRows;
36
+ this.minRows = params.minRows;
37
+ this.rowFormat = params.rowFormat;
38
+ this.secondaryEngineAttribute = params.secondaryEngineAttribute;
39
+ }
40
+ getPrimary() {
41
+ const index = this.indices.find(t => t.type === IndexType_1.IndexType.PRIMARY);
42
+ if (index) {
43
+ return index;
44
+ }
45
+ const primaryColumn = this.columns.filter(t => t.primaryKey === true);
46
+ return new IndexModel_1.IndexModel({
47
+ name: 'PRIMARY',
48
+ type: IndexType_1.IndexType.PRIMARY,
49
+ keys: primaryColumn.map(t => {
50
+ return {
51
+ columnName: t.columnName,
52
+ propertyName: t.propertyName,
53
+ };
54
+ }),
55
+ });
56
+ }
57
+ static build(clazz) {
58
+ var _a, _b;
59
+ const params = TableInfoUtil_1.TableInfoUtil.getTableParams(clazz);
60
+ const name = (_a = params === null || params === void 0 ? void 0 : params.name) !== null && _a !== void 0 ? _a : (0, lodash_snakecase_1.default)((0, pluralize_1.default)(clazz.name));
61
+ const columnInfoMap = ColumnInfoUtil_1.ColumnInfoUtil.getColumnInfoMap(clazz);
62
+ const columnTypeMap = ColumnInfoUtil_1.ColumnInfoUtil.getColumnTypeMap(clazz);
63
+ const dataSourceName = (_b = params === null || params === void 0 ? void 0 : params.dataSourceName) !== null && _b !== void 0 ? _b : 'default';
64
+ (0, node_assert_1.default)(TableInfoUtil_1.TableInfoUtil.getIsTable(clazz), `${name} is not Table`);
65
+ (0, node_assert_1.default)(columnTypeMap, `${name} has no columns`);
66
+ const columns = [];
67
+ const indices = [];
68
+ for (const [property, columnType] of columnTypeMap === null || columnTypeMap === void 0 ? void 0 : columnTypeMap.entries()) {
69
+ const columnParam = columnInfoMap === null || columnInfoMap === void 0 ? void 0 : columnInfoMap.get(property);
70
+ columns.push(ColumnModel_1.ColumnModel.build(property, columnType, columnParam));
71
+ }
72
+ const indexList = IndexInfoUtil_1.IndexInfoUtil.getIndexList(clazz);
73
+ for (const index of indexList) {
74
+ indices.push(IndexModel_1.IndexModel.build(index, columns));
75
+ }
76
+ return new TableModel({
77
+ clazz,
78
+ name,
79
+ columns,
80
+ indices,
81
+ dataSourceName,
82
+ comment: params === null || params === void 0 ? void 0 : params.comment,
83
+ autoExtendSize: params === null || params === void 0 ? void 0 : params.autoExtendSize,
84
+ autoIncrement: params === null || params === void 0 ? void 0 : params.autoIncrement,
85
+ avgRowLength: params === null || params === void 0 ? void 0 : params.avgRowLength,
86
+ characterSet: params === null || params === void 0 ? void 0 : params.characterSet,
87
+ collate: params === null || params === void 0 ? void 0 : params.collate,
88
+ compression: params === null || params === void 0 ? void 0 : params.compression,
89
+ encryption: params === null || params === void 0 ? void 0 : params.encryption,
90
+ engine: params === null || params === void 0 ? void 0 : params.engine,
91
+ engineAttribute: params === null || params === void 0 ? void 0 : params.engineAttribute,
92
+ insertMethod: params === null || params === void 0 ? void 0 : params.insertMethod,
93
+ keyBlockSize: params === null || params === void 0 ? void 0 : params.keyBlockSize,
94
+ maxRows: params === null || params === void 0 ? void 0 : params.maxRows,
95
+ minRows: params === null || params === void 0 ? void 0 : params.minRows,
96
+ rowFormat: params === null || params === void 0 ? void 0 : params.rowFormat,
97
+ secondaryEngineAttribute: params === null || params === void 0 ? void 0 : params.secondaryEngineAttribute,
98
+ });
99
+ }
100
+ }
101
+ exports.TableModel = TableModel;
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9UYWJsZU1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFpQztBQUlqQywrQ0FBNEM7QUFDNUMsNkNBQTBDO0FBRTFDLHlEQUFzRDtBQUN0RCwwREFBa0M7QUFDbEMsd0VBQXlDO0FBQ3pDLDJEQUF3RDtBQUN4RCx5REFBc0Q7QUFDdEQsaURBQThDO0FBRTlDLE1BQWEsVUFBVTtJQXVCckIsWUFBWSxNQXNCWDtRQUNDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFH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
@@ -0,0 +1,42 @@
1
+ /// <reference types="node" />
2
+ import { Geometry, GeometryCollection, Line, MultiLine, MultiPoint, MultiPolygon, Point, Polygon } from './Spatial';
3
+ export interface ColumnTsType {
4
+ BIT: Buffer;
5
+ TINYINT: number;
6
+ BOOL: 0 | 1;
7
+ SMALLINT: number;
8
+ MEDIUMINT: number;
9
+ INT: number;
10
+ BIGINT: string;
11
+ DECIMAL: string;
12
+ FLOAT: number;
13
+ DOUBLE: number;
14
+ DATE: Date;
15
+ DATETIME: Date;
16
+ TIMESTAMP: Date;
17
+ TIME: string;
18
+ YEAR: number;
19
+ CHAR: string;
20
+ VARCHAR: string;
21
+ BINARY: Buffer;
22
+ VARBINARY: Buffer;
23
+ TINYBLOB: Buffer;
24
+ TINYTEXT: string;
25
+ BLOB: Buffer;
26
+ TEXT: string;
27
+ MEDIUMBLOB: Buffer;
28
+ MEDIUMTEXT: string;
29
+ LONGBLOB: Buffer;
30
+ LONGTEXT: string;
31
+ ENUM: string;
32
+ SET: string;
33
+ JSON: object;
34
+ GEOMETRY: Geometry;
35
+ POINT: Point;
36
+ LINESTRING: Line;
37
+ POLYGON: Polygon;
38
+ MULTIPOINT: MultiPoint;
39
+ MULTILINESTRING: MultiLine;
40
+ MULTIPOLYGON: MultiPolygon;
41
+ GEOMETRYCOLLECTION: GeometryCollection;
42
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uVHNUeXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGUvQ29sdW1uVHNUeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,13 @@
1
+ export interface PaginateData<T> {
2
+ total: number;
3
+ pageNum: number;
4
+ rows: Array<T>;
5
+ }
6
+ export interface DataSource<T> {
7
+ execute(sqlName: string, data?: any): Promise<Array<T>>;
8
+ executeScalar(sqlName: string, data?: any): Promise<T | null>;
9
+ executeRaw(sqlName: string, data?: any): Promise<Array<any>>;
10
+ executeRawScalar(sqlName: string, data?: any): Promise<any | null>;
11
+ paginate(sqlName: string, data: any, currentPage: number, perPageCount: number): Promise<PaginateData<T>>;
12
+ count(sqlName: string, data?: any): Promise<number>;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90eXBlL0RhdGVTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1 @@
1
+ export { InsertResult, UpdateResult, DeleteResult } from '@eggjs/rds/lib/types';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXlTcWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZS9NeVNxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,21 @@
1
+ import { ColumnType } from '../enum/ColumnType';
2
+ export interface Point {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ export type Line = Array<Point>;
7
+ export type Polygon = Array<Line>;
8
+ export type Geometry = Point | Line | Polygon;
9
+ export type MultiPoint = Array<Point>;
10
+ export type MultiLine = Array<Line>;
11
+ export type MultiPolygon = Array<Polygon>;
12
+ export type GeometryCollection = Array<Point | Line | Polygon>;
13
+ export declare class SpatialHelper {
14
+ static isPoint(t: Geometry): boolean;
15
+ static isLine(t: Geometry): boolean;
16
+ static isPolygon(t: Geometry): boolean;
17
+ static getGeometryType(t: Geometry): ColumnType.POINT | ColumnType.LINESTRING | ColumnType.POLYGON;
18
+ static isMultiPoint(t: GeometryCollection): boolean;
19
+ static isMultiLine(t: GeometryCollection): boolean;
20
+ static isMultiPolygon(t: GeometryCollection): boolean;
21
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpatialHelper = void 0;
4
+ const ColumnType_1 = require("../enum/ColumnType");
5
+ class SpatialHelper {
6
+ static isPoint(t) {
7
+ return typeof Reflect.get(t, 'x') === 'number' && typeof Reflect.get(t, 'y') === 'number';
8
+ }
9
+ static isLine(t) {
10
+ return Array.isArray(t) && t[0] && SpatialHelper.isPoint(t[0]);
11
+ }
12
+ static isPolygon(t) {
13
+ return Array.isArray(t) && t[0] && SpatialHelper.isLine(t[0]);
14
+ }
15
+ static getGeometryType(t) {
16
+ if (SpatialHelper.isPoint(t)) {
17
+ return ColumnType_1.ColumnType.POINT;
18
+ }
19
+ else if (SpatialHelper.isLine(t)) {
20
+ return ColumnType_1.ColumnType.LINESTRING;
21
+ }
22
+ return ColumnType_1.ColumnType.POLYGON;
23
+ }
24
+ static isMultiPoint(t) {
25
+ return Array.isArray(t) && t[0] && SpatialHelper.isPoint(t[0]);
26
+ }
27
+ static isMultiLine(t) {
28
+ return Array.isArray(t) && t[0] && SpatialHelper.isLine(t[0]);
29
+ }
30
+ static isMultiPolygon(t) {
31
+ return Array.isArray(t) && t[0] && SpatialHelper.isPolygon(t[0]);
32
+ }
33
+ }
34
+ exports.SpatialHelper = SpatialHelper;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BhdGlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90eXBlL1NwYXRpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWdEO0FBZ0JoRCxNQUFhLGFBQWE7SUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFXO1FBQ3hCLE9BQU8sT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDNUYsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBVztRQUN2QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBVztRQUMxQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBVztRQUNoQyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLHVCQUFVLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUM7YUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLHVCQUFVLENBQUMsVUFBVSxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLHVCQUFVLENBQUMsT0FBTyxDQUFDO0lBRTVCLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQXFCO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFxQjtRQUN0QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBcUI7UUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQWxDRCxzQ0FrQ0MifQ==
@@ -0,0 +1,19 @@
1
+ export declare enum SqlType {
2
+ BLOCK = "BLOCK",
3
+ INSERT = "INSERT",
4
+ SELECT = "SELECT",
5
+ UPDATE = "UPDATE",
6
+ DELETE = "DELETE"
7
+ }
8
+ export interface BaseSqlMap {
9
+ type?: SqlType;
10
+ }
11
+ export interface FullSqlMap extends BaseSqlMap {
12
+ type: SqlType.DELETE | SqlType.INSERT | SqlType.UPDATE | SqlType.SELECT;
13
+ sql: string;
14
+ }
15
+ export interface BlockSqlMap extends BaseSqlMap {
16
+ type: SqlType.BLOCK;
17
+ content: string;
18
+ }
19
+ export type SqlMap = FullSqlMap | BlockSqlMap;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqlType = void 0;
4
+ var SqlType;
5
+ (function (SqlType) {
6
+ SqlType["BLOCK"] = "BLOCK";
7
+ SqlType["INSERT"] = "INSERT";
8
+ SqlType["SELECT"] = "SELECT";
9
+ SqlType["UPDATE"] = "UPDATE";
10
+ SqlType["DELETE"] = "DELETE";
11
+ })(SqlType || (exports.SqlType = SqlType = {}));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGUvU3FsTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksT0FNWDtBQU5ELFdBQVksT0FBTztJQUNqQiwwQkFBZSxDQUFBO0lBQ2YsNEJBQWlCLENBQUE7SUFDakIsNEJBQWlCLENBQUE7SUFDakIsNEJBQWlCLENBQUE7SUFDakIsNEJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQU5XLE9BQU8sdUJBQVAsT0FBTyxRQU1sQiJ9
@@ -0,0 +1,12 @@
1
+ import { EggProtoImplClass } from '@eggjs/core-decorator';
2
+ import { ColumnParams, ColumnTypeParams } from '../decorator/Column';
3
+ export declare const DAL_COLUMN_INFO_MAP: unique symbol;
4
+ export declare const DAL_COLUMN_TYPE_MAP: unique symbol;
5
+ export type ColumnInfoMap = Map<string, ColumnParams>;
6
+ export type ColumnTypeMap = Map<string, ColumnTypeParams>;
7
+ export declare class ColumnInfoUtil {
8
+ static addColumnInfo(clazz: EggProtoImplClass, property: string, column: ColumnInfoUtil): void;
9
+ static addColumnType(clazz: EggProtoImplClass, property: string, type: ColumnTypeParams): void;
10
+ static getColumnInfoMap(clazz: EggProtoImplClass): ColumnInfoMap | undefined;
11
+ static getColumnTypeMap(clazz: EggProtoImplClass): ColumnTypeMap | undefined;
12
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnInfoUtil = exports.DAL_COLUMN_TYPE_MAP = exports.DAL_COLUMN_INFO_MAP = void 0;
4
+ const core_decorator_1 = require("@eggjs/core-decorator");
5
+ exports.DAL_COLUMN_INFO_MAP = Symbol('EggPrototype#dalColumnInfoMap');
6
+ exports.DAL_COLUMN_TYPE_MAP = Symbol('EggPrototype#dalColumnTypeMap');
7
+ class ColumnInfoUtil {
8
+ static addColumnInfo(clazz, property, column) {
9
+ const columnInfoMap = core_decorator_1.MetadataUtil.initOwnMapMetaData(exports.DAL_COLUMN_INFO_MAP, clazz, new Map());
10
+ columnInfoMap.set(property, column);
11
+ }
12
+ static addColumnType(clazz, property, type) {
13
+ const columnInfoMap = core_decorator_1.MetadataUtil.initOwnMapMetaData(exports.DAL_COLUMN_TYPE_MAP, clazz, new Map());
14
+ columnInfoMap.set(property, type);
15
+ }
16
+ static getColumnInfoMap(clazz) {
17
+ return core_decorator_1.MetadataUtil.getMetaData(exports.DAL_COLUMN_INFO_MAP, clazz);
18
+ }
19
+ static getColumnTypeMap(clazz) {
20
+ return core_decorator_1.MetadataUtil.getMetaData(exports.DAL_COLUMN_TYPE_MAP, clazz);
21
+ }
22
+ }
23
+ exports.ColumnInfoUtil = ColumnInfoUtil;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uSW5mb1V0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbC9Db2x1bW5JbmZvVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBd0U7QUFHM0QsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUM5RCxRQUFBLG1CQUFtQixHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBSTNFLE1BQWEsY0FBYztJQUN6QixNQUFNLENBQUMsYUFBYSxDQUFDLEtBQXdCLEVBQUUsUUFBZ0IsRUFBRSxNQUFzQjtRQUNyRixNQUFNLGFBQWEsR0FBRyw2QkFBWSxDQUFDLGtCQUFrQixDQUFDLDJCQUFtQixFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0YsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBd0IsRUFBRSxRQUFnQixFQUFFLElBQXNCO1FBQ3JGLE1BQU0sYUFBYSxHQUFHLDZCQUFZLENBQUMsa0JBQWtCLENBQUMsMkJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3RixhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQXdCO1FBQzlDLE9BQU8sNkJBQVksQ0FBQyxXQUFXLENBQUMsMkJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUF3QjtRQUM5QyxPQUFPLDZCQUFZLENBQUMsV0FBVyxDQUFDLDJCQUFtQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQWxCRCx3Q0FrQkMifQ==
@@ -0,0 +1,7 @@
1
+ import { EggProtoImplClass } from '@eggjs/core-decorator';
2
+ import { IndexParams } from '../decorator/Index';
3
+ export declare const DAL_INDEX_LIST: unique symbol;
4
+ export declare class IndexInfoUtil {
5
+ static addIndex(clazz: EggProtoImplClass, index: IndexParams): void;
6
+ static getIndexList(clazz: EggProtoImplClass): Array<IndexParams>;
7
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IndexInfoUtil = exports.DAL_INDEX_LIST = void 0;
4
+ const core_decorator_1 = require("@eggjs/core-decorator");
5
+ exports.DAL_INDEX_LIST = Symbol('EggPrototype#dalIndexList');
6
+ class IndexInfoUtil {
7
+ static addIndex(clazz, index) {
8
+ const indexList = core_decorator_1.MetadataUtil.initOwnArrayMetaData(exports.DAL_INDEX_LIST, clazz, []);
9
+ indexList.push(index);
10
+ }
11
+ static getIndexList(clazz) {
12
+ return core_decorator_1.MetadataUtil.getMetaData(exports.DAL_INDEX_LIST, clazz) || [];
13
+ }
14
+ }
15
+ exports.IndexInfoUtil = IndexInfoUtil;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kZXhJbmZvVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL0luZGV4SW5mb1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXdFO0FBRzNELFFBQUEsY0FBYyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRWxFLE1BQWEsYUFBYTtJQUN4QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQXdCLEVBQUUsS0FBa0I7UUFDMUQsTUFBTSxTQUFTLEdBQXVCLDZCQUFZLENBQUMsb0JBQW9CLENBQUMsc0JBQWMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUF3QjtRQUMxQyxPQUFPLDZCQUFZLENBQUMsV0FBVyxDQUFDLHNCQUFjLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQVRELHNDQVNDIn0=
@@ -0,0 +1,12 @@
1
+ import { EggProtoImplClass } from '@eggjs/core-decorator';
2
+ import { TableParams } from '../decorator/Table';
3
+ export declare const DAL_IS_TABLE: unique symbol;
4
+ export declare const DAL_TABLE_PARAMS: unique symbol;
5
+ export declare const TABLE_CLAZZ_LIST: Array<EggProtoImplClass>;
6
+ export declare class TableInfoUtil {
7
+ static setIsTable(clazz: EggProtoImplClass): void;
8
+ static getClazzList(): EggProtoImplClass[];
9
+ static getIsTable(clazz: EggProtoImplClass): boolean;
10
+ static setTableParams(clazz: EggProtoImplClass, params: TableParams): void;
11
+ static getTableParams(clazz: EggProtoImplClass): TableParams | undefined;
12
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableInfoUtil = exports.TABLE_CLAZZ_LIST = exports.DAL_TABLE_PARAMS = exports.DAL_IS_TABLE = void 0;
4
+ const core_decorator_1 = require("@eggjs/core-decorator");
5
+ exports.DAL_IS_TABLE = Symbol('EggPrototype#dalIsTable');
6
+ exports.DAL_TABLE_PARAMS = Symbol('EggPrototype#dalTableParams');
7
+ exports.TABLE_CLAZZ_LIST = [];
8
+ class TableInfoUtil {
9
+ static setIsTable(clazz) {
10
+ exports.TABLE_CLAZZ_LIST.push(clazz);
11
+ core_decorator_1.MetadataUtil.defineMetaData(exports.DAL_IS_TABLE, true, clazz);
12
+ }
13
+ // TODO del
14
+ static getClazzList() {
15
+ return exports.TABLE_CLAZZ_LIST;
16
+ }
17
+ static getIsTable(clazz) {
18
+ return core_decorator_1.MetadataUtil.getMetaData(exports.DAL_IS_TABLE, clazz) === true;
19
+ }
20
+ static setTableParams(clazz, params) {
21
+ core_decorator_1.MetadataUtil.defineMetaData(exports.DAL_TABLE_PARAMS, params, clazz);
22
+ }
23
+ static getTableParams(clazz) {
24
+ return core_decorator_1.MetadataUtil.getMetaData(exports.DAL_TABLE_PARAMS, clazz);
25
+ }
26
+ }
27
+ exports.TableInfoUtil = TableInfoUtil;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVJbmZvVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL1RhYmxlSW5mb1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXdFO0FBRzNELFFBQUEsWUFBWSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2pELFFBQUEsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFFekQsUUFBQSxnQkFBZ0IsR0FBNkIsRUFBRSxDQUFDO0FBRTdELE1BQWEsYUFBYTtJQUN4QixNQUFNLENBQUMsVUFBVSxDQUFDLEtBQXdCO1FBQ3hDLHdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3Qiw2QkFBWSxDQUFDLGNBQWMsQ0FBQyxvQkFBWSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsV0FBVztJQUNYLE1BQU0sQ0FBQyxZQUFZO1FBQ2pCLE9BQU8sd0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBd0I7UUFDeEMsT0FBTyw2QkFBWSxDQUFDLFdBQVcsQ0FBQyxvQkFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUF3QixFQUFFLE1BQW1CO1FBQ2pFLDZCQUFZLENBQUMsY0FBYyxDQUFDLHdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUF3QjtRQUM1QyxPQUFPLDZCQUFZLENBQUMsV0FBVyxDQUFDLHdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDRjtBQXRCRCxzQ0FzQkMifQ==
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@eggjs/dal-decorator",
3
+ "version": "3.33.0",
4
+ "description": "tegg dal decorator",
5
+ "keywords": [
6
+ "egg",
7
+ "typescript",
8
+ "decorator",
9
+ "tegg",
10
+ "dal"
11
+ ],
12
+ "main": "dist/index.js",
13
+ "files": [
14
+ "dist/**/*.js",
15
+ "dist/**/*.d.ts"
16
+ ],
17
+ "typings": "dist/index.d.ts",
18
+ "scripts": {
19
+ "test": "cross-env NODE_ENV=test NODE_OPTIONS='--no-deprecation' mocha",
20
+ "clean": "tsc -b --clean",
21
+ "tsc": "npm run clean && tsc -p ./tsconfig.json",
22
+ "tsc:pub": "npm run clean && tsc -p ./tsconfig.pub.json",
23
+ "prepublishOnly": "npm run tsc:pub"
24
+ },
25
+ "author": "killagu <killa123@126.com>",
26
+ "license": "MIT",
27
+ "homepage": "https://github.com/eggjs/tegg",
28
+ "bugs": {
29
+ "url": "https://github.com/eggjs/tegg/issues"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git@github.com:eggjs/tegg.git",
34
+ "directory": "core/dal-decorator"
35
+ },
36
+ "engines": {
37
+ "node": ">=14.0.0"
38
+ },
39
+ "dependencies": {
40
+ "@eggjs/core-decorator": "^3.33.0",
41
+ "@eggjs/tegg-common-util": "^3.33.0",
42
+ "lodash.snakecase": "^4.1.1",
43
+ "pluralize": "^7.0.0"
44
+ },
45
+ "publishConfig": {
46
+ "access": "public"
47
+ },
48
+ "devDependencies": {
49
+ "@types/mocha": "^10.0.1",
50
+ "@types/node": "^20.2.4",
51
+ "cross-env": "^7.0.3",
52
+ "mocha": "^10.2.0",
53
+ "ts-node": "^10.9.1",
54
+ "typescript": "^5.0.4"
55
+ },
56
+ "gitHead": "8415595364405be14730f6151ded8763bfb12454"
57
+ }