@eggjs/dal-runtime 4.0.0-beta.7 → 4.0.0-beta.9

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,114 +1,139 @@
1
- import { TemplateUtil } from "./TemplateUtil.js";
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import js_beautify from 'js-beautify';
4
+ import _ from 'lodash';
5
+ import nunjucks, {} from 'nunjucks';
6
+ import { Templates } from '@eggjs/tegg-types';
7
+ import { ColumnModel, TableModel } from '@eggjs/dal-decorator';
8
+ import { PrototypeUtil } from '@eggjs/core-decorator';
2
9
  import { SqlGenerator } from "./SqlGenerator.js";
3
- import _ from "lodash";
4
- import { ColumnModel, TableModel } from "@eggjs/dal-decorator";
5
- import { Templates } from "@eggjs/tegg-types";
6
- import path from "node:path";
7
- import fs from "node:fs/promises";
8
- import js_beautify from "js-beautify";
9
- import nunjucks from "nunjucks";
10
- import { PrototypeUtil } from "@eggjs/core-decorator";
11
-
12
- //#region src/CodeGenerator.ts
13
- var CodeGenerator = class {
14
- constructor(options) {
15
- this.moduleDir = options.moduleDir;
16
- this.moduleName = options.moduleName;
17
- this.teggPkg = options.teggPkg ?? "@eggjs/tegg";
18
- this.dalPkg = options.dalPkg ?? "@eggjs/tegg/dal";
19
- this.createNunjucksEnv();
20
- }
21
- createNunjucksEnv() {
22
- this.njkEnv = nunjucks.configure(path.join(__dirname, "./templates"), { autoescape: false });
23
- this.njkEnv.addFilter("pascalCase", (name) => _.upperFirst(_.camelCase(name)));
24
- this.njkEnv.addFilter("camelCase", (name) => _.camelCase(name));
25
- this.njkEnv.addFilter("dbTypeToTSType", TemplateUtil.dbTypeToTsType);
26
- }
27
- genCode(tplName, filePath, tableModel) {
28
- let tableModelAbsolutePath = PrototypeUtil.getFilePath(tableModel.clazz);
29
- tableModelAbsolutePath = tableModelAbsolutePath.substring(0, tableModelAbsolutePath.length - 3);
30
- const data = {
31
- table: tableModel,
32
- file: filePath,
33
- fileName: path.basename(filePath),
34
- clazzName: tableModel.clazz.name,
35
- moduleName: this.moduleName,
36
- teggPkg: this.teggPkg,
37
- dalPkg: this.dalPkg,
38
- id: tableModel.columns.find((t) => t.propertyName === "id"),
39
- primaryIndex: tableModel.getPrimary(),
40
- tableModelPath: TemplateUtil.importPath(tableModelAbsolutePath, path.dirname(filePath)),
41
- extensionPath: `../../extension/${tableModel.clazz.name}Extension`,
42
- structurePath: `../../structure/${tableModel.clazz.name}.json`,
43
- sqlPath: `../../structure/${tableModel.clazz.name}.sql`,
44
- columnMap: tableModel.columns.reduce((p, c) => {
45
- p[c.propertyName] = c;
46
- return p;
47
- }, {})
48
- };
49
- return this.njkEnv.render(`${tplName}.njk`, data);
50
- }
51
- async generate(tableModel) {
52
- let dalDir;
53
- try {
54
- await fs.access(path.join(this.moduleDir, "src"));
55
- dalDir = path.join(this.moduleDir, "src/dal");
56
- } catch {
57
- dalDir = path.join(this.moduleDir, "dal");
58
- }
59
- const clazzFileName = path.basename(PrototypeUtil.getFilePath(tableModel.clazz));
60
- const baseFileName = path.basename(clazzFileName, ".ts");
61
- const paths = {
62
- baseBizDAO: path.join(dalDir, `dao/base/Base${baseFileName}DAO.ts`),
63
- bizDAO: path.join(dalDir, `dao/${baseFileName}DAO.ts`),
64
- extension: path.join(dalDir, `extension/${baseFileName}Extension.ts`),
65
- structure: path.join(dalDir, `structure/${baseFileName}.json`),
66
- structureSql: path.join(dalDir, `structure/${baseFileName}.sql`)
67
- };
68
- await fs.mkdir(path.dirname(paths.structure), { recursive: true });
69
- await fs.writeFile(paths.structure, JSON.stringify(tableModel, null, 2), "utf8");
70
- const structureSql = new SqlGenerator().generate(tableModel);
71
- await fs.writeFile(paths.structureSql, structureSql, "utf8");
72
- const codes = [
73
- {
74
- templates: Templates.BASE_DAO,
75
- filePath: paths.baseBizDAO,
76
- beautify: true,
77
- overwrite: true
78
- },
79
- {
80
- templates: Templates.DAO,
81
- filePath: paths.bizDAO,
82
- beautify: true,
83
- overwrite: false
84
- },
85
- {
86
- templates: Templates.EXTENSION,
87
- filePath: paths.extension,
88
- beautify: false,
89
- overwrite: false
90
- }
91
- ];
92
- for (const { templates, filePath, beautify, overwrite } of codes) {
93
- await fs.mkdir(path.dirname(filePath), { recursive: true });
94
- const code = this.genCode(templates, filePath, tableModel);
95
- let beautified;
96
- if (beautify) beautified = js_beautify(code, {
97
- brace_style: "preserve-inline",
98
- indent_size: 2,
99
- jslint_happy: true,
100
- preserve_newlines: false
101
- });
102
- else beautified = code;
103
- beautified = beautified.replace(/( )*\/\/ empty-line( )*/g, "").replace(/Promise( )*<( )*(.+?)( )*>/g, "Promise<$3>").replace(/Optional( )*<( )*(.+?)( )*>/g, "Optional<$3>").replace(/Record( )*<( )*(.+?)( )*>/g, "Record<$3>").replace(/Partial( )*<( )*(.+?)( )*>/g, "Partial<$3>").replace(/DataSource( )*<( )*(.+?)( )*>/g, "DataSource<$3>").replace(/ \? :/g, "?:");
104
- if (overwrite !== true) try {
105
- await fs.access(filePath);
106
- continue;
107
- } catch {}
108
- await fs.writeFile(filePath, beautified, "utf8");
109
- }
110
- }
111
- };
112
-
113
- //#endregion
114
- export { CodeGenerator };
10
+ import { TemplateUtil } from "./TemplateUtil.js";
11
+ export class CodeGenerator {
12
+ constructor(options) {
13
+ this.moduleDir = options.moduleDir;
14
+ this.moduleName = options.moduleName;
15
+ this.teggPkg = options.teggPkg ?? '@eggjs/tegg';
16
+ this.dalPkg = options.dalPkg ?? '@eggjs/tegg/dal';
17
+ this.createNunjucksEnv();
18
+ }
19
+ createNunjucksEnv() {
20
+ this.njkEnv = nunjucks.configure(path.join(__dirname, './templates'), {
21
+ autoescape: false,
22
+ });
23
+ this.njkEnv.addFilter('pascalCase', name => _.upperFirst(_.camelCase(name)));
24
+ this.njkEnv.addFilter('camelCase', name => _.camelCase(name));
25
+ this.njkEnv.addFilter('dbTypeToTSType', TemplateUtil.dbTypeToTsType);
26
+ }
27
+ genCode(tplName, filePath, tableModel) {
28
+ let tableModelAbsolutePath = PrototypeUtil.getFilePath(tableModel.clazz);
29
+ tableModelAbsolutePath = tableModelAbsolutePath.substring(0, tableModelAbsolutePath.length - 3);
30
+ const data = {
31
+ table: tableModel,
32
+ file: filePath,
33
+ fileName: path.basename(filePath),
34
+ clazzName: tableModel.clazz.name,
35
+ moduleName: this.moduleName,
36
+ teggPkg: this.teggPkg,
37
+ dalPkg: this.dalPkg,
38
+ id: tableModel.columns.find(t => t.propertyName === 'id'),
39
+ primaryIndex: tableModel.getPrimary(),
40
+ tableModelPath: TemplateUtil.importPath(tableModelAbsolutePath, path.dirname(filePath)),
41
+ extensionPath: `../../extension/${tableModel.clazz.name}Extension`,
42
+ structurePath: `../../structure/${tableModel.clazz.name}.json`,
43
+ sqlPath: `../../structure/${tableModel.clazz.name}.sql`,
44
+ columnMap: tableModel.columns.reduce((p, c) => {
45
+ p[c.propertyName] = c;
46
+ return p;
47
+ }, {}),
48
+ };
49
+ return this.njkEnv.render(`${tplName}.njk`, data);
50
+ }
51
+ async generate(tableModel) {
52
+ let dalDir;
53
+ try {
54
+ await fs.access(path.join(this.moduleDir, 'src'));
55
+ dalDir = path.join(this.moduleDir, 'src/dal');
56
+ }
57
+ catch {
58
+ dalDir = path.join(this.moduleDir, 'dal');
59
+ }
60
+ // const tableName = tableModel.name;
61
+ // const clazzName = tableModel.clazz.name;
62
+ const clazzFileName = path.basename(PrototypeUtil.getFilePath(tableModel.clazz));
63
+ const baseFileName = path.basename(clazzFileName, '.ts');
64
+ // 要动的一些文件
65
+ const paths = {
66
+ // e.g. app/dal/dao/base/example.ts
67
+ baseBizDAO: path.join(dalDir, `dao/base/Base${baseFileName}DAO.ts`),
68
+ // e.g. app/dal/dao/example.ts
69
+ bizDAO: path.join(dalDir, `dao/${baseFileName}DAO.ts`),
70
+ // e.g. app/dal/extension/example.ts
71
+ extension: path.join(dalDir, `extension/${baseFileName}Extension.ts`),
72
+ // e.g. app/dal/structure/example.json
73
+ structure: path.join(dalDir, `structure/${baseFileName}.json`),
74
+ // e.g. app/dal/structure/example.sql
75
+ structureSql: path.join(dalDir, `structure/${baseFileName}.sql`),
76
+ };
77
+ // 建立 structure 文件
78
+ await fs.mkdir(path.dirname(paths.structure), {
79
+ recursive: true,
80
+ });
81
+ await fs.writeFile(paths.structure, JSON.stringify(tableModel, null, 2), 'utf8');
82
+ const sqlGenerator = new SqlGenerator();
83
+ const structureSql = sqlGenerator.generate(tableModel);
84
+ await fs.writeFile(paths.structureSql, structureSql, 'utf8');
85
+ const codes = [{
86
+ templates: Templates.BASE_DAO,
87
+ filePath: paths.baseBizDAO,
88
+ beautify: true,
89
+ overwrite: true,
90
+ }, {
91
+ templates: Templates.DAO,
92
+ filePath: paths.bizDAO,
93
+ beautify: true,
94
+ overwrite: false,
95
+ }, {
96
+ templates: Templates.EXTENSION,
97
+ filePath: paths.extension,
98
+ beautify: false,
99
+ overwrite: false,
100
+ }];
101
+ for (const { templates, filePath, beautify, overwrite } of codes) {
102
+ await fs.mkdir(path.dirname(filePath), {
103
+ recursive: true,
104
+ });
105
+ const code = this.genCode(templates, filePath, tableModel);
106
+ let beautified;
107
+ if (beautify) {
108
+ beautified = js_beautify(code, {
109
+ brace_style: 'preserve-inline',
110
+ indent_size: 2,
111
+ jslint_happy: true,
112
+ preserve_newlines: false,
113
+ });
114
+ }
115
+ else {
116
+ beautified = code;
117
+ }
118
+ beautified = beautified
119
+ .replace(/( )*\/\/ empty-line( )*/g, '')
120
+ .replace(/Promise( )*<( )*(.+?)( )*>/g, 'Promise<$3>')
121
+ .replace(/Optional( )*<( )*(.+?)( )*>/g, 'Optional<$3>')
122
+ .replace(/Record( )*<( )*(.+?)( )*>/g, 'Record<$3>')
123
+ .replace(/Partial( )*<( )*(.+?)( )*>/g, 'Partial<$3>')
124
+ .replace(/DataSource( )*<( )*(.+?)( )*>/g, 'DataSource<$3>')
125
+ .replace(/ \? :/g, '?:');
126
+ if (overwrite !== true) {
127
+ try {
128
+ await fs.access(filePath);
129
+ continue;
130
+ }
131
+ catch {
132
+ // file not exists
133
+ }
134
+ }
135
+ await fs.writeFile(filePath, beautified, 'utf8');
136
+ }
137
+ }
138
+ }
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Db2RlR2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUU3QixPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sUUFBUSxFQUFFLEVBQW9CLE1BQU0sVUFBVSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQVksT0FBNkI7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQztRQUNsRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBSUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lB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
@@ -1,8 +1,4 @@
1
- import { BaseDaoType } from "@eggjs/tegg-types/dal";
2
-
3
- //#region src/DaoLoader.d.ts
4
- declare class DaoLoader {
5
- static loadDaos(moduleDir: string): Promise<Array<BaseDaoType>>;
1
+ import { type BaseDaoType } from '@eggjs/tegg-types/dal';
2
+ export declare class DaoLoader {
3
+ static loadDaos(moduleDir: string): Promise<Array<BaseDaoType>>;
6
4
  }
7
- //#endregion
8
- export { DaoLoader };
package/dist/DaoLoader.js CHANGED
@@ -1,16 +1,14 @@
1
- import { DaoInfoUtil } from "@eggjs/dal-decorator";
2
- import { EggLoadUnitType } from "@eggjs/tegg-types";
3
- import "@eggjs/tegg-types/dal";
4
- import { LoaderFactory } from "@eggjs/tegg-loader";
5
-
6
- //#region src/DaoLoader.ts
7
- var DaoLoader = class {
8
- static async loadDaos(moduleDir) {
9
- return (await LoaderFactory.createLoader(moduleDir, EggLoadUnitType.MODULE).load()).filter((t) => {
10
- return DaoInfoUtil.getIsDao(t);
11
- });
12
- }
13
- };
14
-
15
- //#endregion
16
- export { DaoLoader };
1
+ import { EggLoadUnitType } from '@eggjs/tegg-types';
2
+ import { DaoInfoUtil } from '@eggjs/dal-decorator';
3
+ import {} from '@eggjs/tegg-types/dal';
4
+ import { LoaderFactory } from '@eggjs/tegg-loader';
5
+ export class DaoLoader {
6
+ static async loadDaos(moduleDir) {
7
+ const loader = LoaderFactory.createLoader(moduleDir, EggLoadUnitType.MODULE);
8
+ const clazzList = await loader.load();
9
+ return clazzList.filter((t) => {
10
+ return DaoInfoUtil.getIsDao(t);
11
+ });
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGFvTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Rhb0xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBb0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbkQsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBaUI7UUFDckMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdFLE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBb0IsRUFBRTtZQUM5QyxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
@@ -1,32 +1,28 @@
1
- import { MysqlDataSource } from "./MySqlDataSource.js";
2
- import { TableSqlMap } from "./TableSqlMap.js";
3
- import { TableModel } from "@eggjs/dal-decorator";
4
- import { DataSource, PaginateData, SqlType } from "@eggjs/tegg-types";
5
-
6
- //#region src/DataSource.d.ts
7
- interface ExecuteSql {
8
- sql: string;
9
- template: string;
10
- sqlType: SqlType;
1
+ import { TableModel } from '@eggjs/dal-decorator';
2
+ import type { DataSource as IDataSource, PaginateData, SqlType } from '@eggjs/tegg-types';
3
+ import { MysqlDataSource } from './MySqlDataSource.ts';
4
+ import { TableSqlMap } from './TableSqlMap.ts';
5
+ export interface ExecuteSql {
6
+ sql: string;
7
+ template: string;
8
+ sqlType: SqlType;
11
9
  }
12
- declare class DataSource$1<T> implements DataSource<T> {
13
- #private;
14
- private readonly tableModel;
15
- private readonly mysqlDataSource;
16
- private readonly sqlMap;
17
- constructor(tableModel: TableModel<T>, mysqlDataSource: MysqlDataSource, sqlMap: TableSqlMap);
18
- /**
19
- * public for aop execute to implement sql hint append
20
- * @param sqlName - sql name
21
- * @param data - sql data
22
- */
23
- generateSql(sqlName: string, data: object): Promise<ExecuteSql>;
24
- count(sqlName: string, data?: any): Promise<number>;
25
- execute(sqlName: string, data?: any): Promise<Array<T>>;
26
- executeRaw(sqlName: string, data?: any): Promise<Array<any>>;
27
- executeScalar(sqlName: string, data?: any): Promise<T | null>;
28
- executeRawScalar(sqlName: string, data?: any): Promise<any | null>;
29
- paginate(sqlName: string, data: any, currentPage: number, perPageCount: number): Promise<PaginateData<T>>;
10
+ export declare class DataSource<T> implements IDataSource<T> {
11
+ #private;
12
+ private readonly tableModel;
13
+ private readonly mysqlDataSource;
14
+ private readonly sqlMap;
15
+ constructor(tableModel: TableModel<T>, mysqlDataSource: MysqlDataSource, sqlMap: TableSqlMap);
16
+ /**
17
+ * public for aop execute to implement sql hint append
18
+ * @param sqlName - sql name
19
+ * @param data - sql data
20
+ */
21
+ generateSql(sqlName: string, data: object): Promise<ExecuteSql>;
22
+ count(sqlName: string, data?: any): Promise<number>;
23
+ execute(sqlName: string, data?: any): Promise<Array<T>>;
24
+ executeRaw(sqlName: string, data?: any): Promise<Array<any>>;
25
+ executeScalar(sqlName: string, data?: any): Promise<T | null>;
26
+ executeRawScalar(sqlName: string, data?: any): Promise<any | null>;
27
+ paginate(sqlName: string, data: any, currentPage: number, perPageCount: number): Promise<PaginateData<T>>;
30
28
  }
31
- //#endregion
32
- export { DataSource$1 as DataSource, ExecuteSql };
@@ -1,72 +1,82 @@
1
- import "./MySqlDataSource.js";
2
- import "./TableSqlMap.js";
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _DataSource_instances, _DataSource_paginateCount;
7
+ import { TableModel } from '@eggjs/dal-decorator';
8
+ import { MysqlDataSource } from "./MySqlDataSource.js";
9
+ import { TableSqlMap } from "./TableSqlMap.js";
3
10
  import { TableModelInstanceBuilder } from "./TableModelInstanceBuilder.js";
4
- import { TableModel } from "@eggjs/dal-decorator";
5
-
6
- //#region src/DataSource.ts
7
- const PAGINATE_COUNT_WRAPPER = ["SELECT COUNT(0) as count FROM (", ") AS T"];
8
- var DataSource = class {
9
- constructor(tableModel, mysqlDataSource, sqlMap) {
10
- this.tableModel = tableModel;
11
- this.mysqlDataSource = mysqlDataSource;
12
- this.sqlMap = sqlMap;
13
- }
14
- /**
15
- * public for aop execute to implement sql hint append
16
- * @param sqlName - sql name
17
- * @param data - sql data
18
- */
19
- async generateSql(sqlName, data) {
20
- const sql = this.sqlMap.generate(sqlName, data, this.mysqlDataSource.timezone);
21
- const sqlType = this.sqlMap.getType(sqlName);
22
- const template = this.sqlMap.getTemplateString(sqlName);
23
- return {
24
- sql,
25
- sqlType,
26
- template
27
- };
28
- }
29
- async count(sqlName, data) {
30
- const newData = Object.assign({ $$count: true }, data);
31
- const executeSql = await this.generateSql(sqlName, newData);
32
- return await this.#paginateCount(executeSql.sql);
33
- }
34
- async execute(sqlName, data) {
35
- const executeSql = await this.generateSql(sqlName, data);
36
- return (await this.mysqlDataSource.query(executeSql.sql)).map((t) => {
37
- return TableModelInstanceBuilder.buildInstance(this.tableModel, t);
38
- });
39
- }
40
- async executeRaw(sqlName, data) {
41
- const executeSql = await this.generateSql(sqlName, data);
42
- return await this.mysqlDataSource.query(executeSql.sql);
43
- }
44
- async executeScalar(sqlName, data) {
45
- const ret = await this.execute(sqlName, data);
46
- if (!Array.isArray(ret)) return ret || null;
47
- return ret[0] || null;
48
- }
49
- async executeRawScalar(sqlName, data) {
50
- const ret = await this.executeRaw(sqlName, data);
51
- if (!Array.isArray(ret)) return ret || null;
52
- return ret[0] || null;
53
- }
54
- async paginate(sqlName, data, currentPage, perPageCount) {
55
- const limit = `LIMIT ${(currentPage - 1) * perPageCount}, ${perPageCount}`;
56
- const sql = (await this.generateSql(sqlName, data)).sql + " " + limit;
57
- const countSql = (await this.generateSql(sqlName, Object.assign({ $$count: true }, data))).sql;
58
- const ret = await Promise.all([this.mysqlDataSource.query(sql), this.#paginateCount(countSql)]);
59
- return {
60
- total: Number(ret[1]),
61
- pageNum: currentPage,
62
- rows: ret[0].map((t) => TableModelInstanceBuilder.buildInstance(this.tableModel, t))
63
- };
64
- }
65
- async #paginateCount(baseSQL) {
66
- const sql = `${PAGINATE_COUNT_WRAPPER[0]}${baseSQL}${PAGINATE_COUNT_WRAPPER[1]}`;
67
- return (await this.mysqlDataSource.query(sql))[0].count;
68
- }
11
+ const PAGINATE_COUNT_WRAPPER = ['SELECT COUNT(0) as count FROM (', ') AS T'];
12
+ export class DataSource {
13
+ constructor(tableModel, mysqlDataSource, sqlMap) {
14
+ _DataSource_instances.add(this);
15
+ this.tableModel = tableModel;
16
+ this.mysqlDataSource = mysqlDataSource;
17
+ this.sqlMap = sqlMap;
18
+ }
19
+ /**
20
+ * public for aop execute to implement sql hint append
21
+ * @param sqlName - sql name
22
+ * @param data - sql data
23
+ */
24
+ async generateSql(sqlName, data) {
25
+ const sql = this.sqlMap.generate(sqlName, data, this.mysqlDataSource.timezone);
26
+ const sqlType = this.sqlMap.getType(sqlName);
27
+ const template = this.sqlMap.getTemplateString(sqlName);
28
+ return {
29
+ sql,
30
+ sqlType,
31
+ template,
32
+ };
33
+ }
34
+ async count(sqlName, data) {
35
+ const newData = Object.assign({ $$count: true }, data);
36
+ const executeSql = await this.generateSql(sqlName, newData);
37
+ return await __classPrivateFieldGet(this, _DataSource_instances, "m", _DataSource_paginateCount).call(this, executeSql.sql);
38
+ }
39
+ async execute(sqlName, data) {
40
+ const executeSql = await this.generateSql(sqlName, data);
41
+ const rows = await this.mysqlDataSource.query(executeSql.sql);
42
+ return rows.map((t) => {
43
+ return TableModelInstanceBuilder.buildInstance(this.tableModel, t);
44
+ });
45
+ }
46
+ async executeRaw(sqlName, data) {
47
+ const executeSql = await this.generateSql(sqlName, data);
48
+ return await this.mysqlDataSource.query(executeSql.sql);
49
+ }
50
+ async executeScalar(sqlName, data) {
51
+ const ret = await this.execute(sqlName, data);
52
+ if (!Array.isArray(ret))
53
+ return ret || null;
54
+ return ret[0] || null;
55
+ }
56
+ async executeRawScalar(sqlName, data) {
57
+ const ret = await this.executeRaw(sqlName, data);
58
+ if (!Array.isArray(ret))
59
+ return (ret || null);
60
+ return ret[0] || null;
61
+ }
62
+ async paginate(sqlName, data, currentPage, perPageCount) {
63
+ const limit = `LIMIT ${(currentPage - 1) * perPageCount}, ${perPageCount}`;
64
+ const sql = (await this.generateSql(sqlName, data)).sql + ' ' + limit;
65
+ const countSql = (await this.generateSql(sqlName, Object.assign({ $$count: true }, data))).sql;
66
+ const ret = await Promise.all([
67
+ this.mysqlDataSource.query(sql),
68
+ __classPrivateFieldGet(this, _DataSource_instances, "m", _DataSource_paginateCount).call(this, countSql),
69
+ ]);
70
+ return {
71
+ total: Number(ret[1]),
72
+ pageNum: currentPage,
73
+ rows: ret[0].map((t) => TableModelInstanceBuilder.buildInstance(this.tableModel, t)),
74
+ };
75
+ }
76
+ }
77
+ _DataSource_instances = new WeakSet(), _DataSource_paginateCount = async function _DataSource_paginateCount(baseSQL) {
78
+ const sql = `${PAGINATE_COUNT_WRAPPER[0]}${baseSQL}${PAGINATE_COUNT_WRAPPER[1]}`;
79
+ const result = await this.mysqlDataSource.query(sql);
80
+ return result[0].count;
69
81
  };
70
-
71
- //#endregion
72
- export { DataSource };
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9EYXRhU291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBUTNFLE1BQU0sc0JBQXNCLEdBQUcsQ0FBRSxpQ0FBaUMsRUFBRSxRQUFRLENBQUUsQ0FBQztBQUUvRSxNQUFNLE9BQU8sVUFBVTtJQUtyQixZQUFZLFVBQXlCLEVBQUUsZUFBZ0MsRUFBRSxNQUFtQjs7UUFDMUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQWUsRUFBRSxJQUFZO1FBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFTLENBQUMsQ0FBQztRQUNoRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE9BQU87WUFDTCxHQUFHO1lBQ0gsT0FBTztZQUNQLFFBQVE7U0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENB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
@@ -1,16 +1,12 @@
1
- import { DataSourceOptions } from "./MySqlDataSource.js";
2
-
3
- //#region src/DatabaseForker.d.ts
4
- declare class DatabaseForker {
5
- private readonly env;
6
- private readonly options;
7
- constructor(env: string, options: DataSourceOptions);
8
- shouldFork(): boolean;
9
- forkDb(moduleDir: string): Promise<void>;
10
- private forkTables;
11
- private doForkTable;
12
- private doCreateUtDb;
13
- destroy(): Promise<void>;
1
+ import { type DataSourceOptions } from './MySqlDataSource.ts';
2
+ export declare class DatabaseForker {
3
+ private readonly env;
4
+ private readonly options;
5
+ constructor(env: string, options: DataSourceOptions);
6
+ shouldFork(): boolean;
7
+ forkDb(moduleDir: string): Promise<void>;
8
+ private forkTables;
9
+ private doForkTable;
10
+ private doCreateUtDb;
11
+ destroy(): Promise<void>;
14
12
  }
15
- //#endregion
16
- export { DatabaseForker };