@nest-omni/core 4.1.3-15 → 4.1.3-18
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/audit/audit.module.js +7 -0
- package/audit/services/entity-audit.service.js +2 -1
- package/audit/services/manual-audit-log.service.js +2 -2
- package/audit/services/multi-database.service.d.ts +0 -5
- package/audit/services/multi-database.service.js +0 -24
- package/audit/services/transaction-audit.service.js +3 -2
- package/cache/dependencies/db.dependency.d.ts +2 -7
- package/cache/dependencies/db.dependency.js +4 -11
- package/http-client/examples/proxy-from-environment.example.d.ts +1 -1
- package/http-client/examples/proxy-from-environment.example.js +18 -19
- package/http-client/services/logging.service.js +2 -3
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/package.json +3 -2
- package/setup/bootstrap.setup.d.ts +1 -1
- package/shared/service-registry.module.js +2 -15
- package/shared/services/api-config.service.js +1 -0
- package/validators/is-exists.validator.d.ts +2 -7
- package/validators/is-exists.validator.js +2 -24
- package/validators/is-unique.validator.d.ts +2 -7
- package/validators/is-unique.validator.js +2 -24
- package/transaction/__tests__/mocks.d.ts +0 -9
- package/transaction/__tests__/mocks.js +0 -33
- package/transaction/base-service-transaction.d.ts +0 -106
- package/transaction/base-service-transaction.js +0 -317
- package/transaction/cls-compatibility.service.d.ts +0 -55
- package/transaction/cls-compatibility.service.js +0 -127
- package/transaction/data-source-registry.d.ts +0 -91
- package/transaction/data-source-registry.js +0 -349
- package/transaction/data-source.util.d.ts +0 -142
- package/transaction/data-source.util.js +0 -330
- package/transaction/database-adapter.d.ts +0 -44
- package/transaction/database-adapter.js +0 -240
- package/transaction/decorators/entity-datasource.decorator.d.ts +0 -62
- package/transaction/decorators/entity-datasource.decorator.js +0 -105
- package/transaction/index.d.ts +0 -16
- package/transaction/index.js +0 -71
- package/transaction/logging-transactional.interceptor.d.ts +0 -18
- package/transaction/logging-transactional.interceptor.js +0 -163
- package/transaction/transaction-context.service.d.ts +0 -137
- package/transaction/transaction-context.service.js +0 -411
- package/transaction/transaction-manager.d.ts +0 -230
- package/transaction/transaction-manager.holder.d.ts +0 -31
- package/transaction/transaction-manager.holder.js +0 -42
- package/transaction/transaction-manager.js +0 -1001
- package/transaction/transaction-synchronization.d.ts +0 -171
- package/transaction/transaction-synchronization.js +0 -380
- package/transaction/transaction.errors.d.ts +0 -91
- package/transaction/transaction.errors.js +0 -206
- package/transaction/transaction.module.d.ts +0 -30
- package/transaction/transaction.module.js +0 -126
- package/transaction/transactional.decorator.d.ts +0 -82
- package/transaction/transactional.decorator.js +0 -320
- package/transaction/typeorm-module-wrapper.d.ts +0 -96
- package/transaction/typeorm-module-wrapper.js +0 -197
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { DataSource } from 'typeorm';
|
|
2
|
-
/**
|
|
3
|
-
* 数据源工具类
|
|
4
|
-
* 提供静态方法在任意位置获取数据源
|
|
5
|
-
*/
|
|
6
|
-
export declare class DataSourceUtil {
|
|
7
|
-
/**
|
|
8
|
-
* 获取数据源
|
|
9
|
-
* 按优先级从以下位置查找:
|
|
10
|
-
* 1. 当前请求上下文 (TransactionContextService)
|
|
11
|
-
* 2. 全局数据源存储 (GlobalDataSourceStorage)
|
|
12
|
-
*
|
|
13
|
-
* @param name 数据源名称,默认为 'default'
|
|
14
|
-
* @returns DataSource 实例
|
|
15
|
-
* @throws Error 如果数据源不存在
|
|
16
|
-
*/
|
|
17
|
-
static getDataSource(name?: string): DataSource;
|
|
18
|
-
/**
|
|
19
|
-
* 安全获取数据源,不存在时返回 null
|
|
20
|
-
*
|
|
21
|
-
* @param name 数据源名称
|
|
22
|
-
* @returns DataSource 实例或 null
|
|
23
|
-
*/
|
|
24
|
-
static getDataSourceSafe(name?: string): DataSource | null;
|
|
25
|
-
/**
|
|
26
|
-
* 获取默认数据源
|
|
27
|
-
*/
|
|
28
|
-
static getDefaultDataSource(): DataSource;
|
|
29
|
-
/**
|
|
30
|
-
* 安全获取默认数据源
|
|
31
|
-
*/
|
|
32
|
-
static getDefaultDataSourceSafe(): DataSource | null;
|
|
33
|
-
/**
|
|
34
|
-
* 检查数据源是否可用
|
|
35
|
-
*
|
|
36
|
-
* @param name 数据源名称
|
|
37
|
-
* @returns 是否可用
|
|
38
|
-
*/
|
|
39
|
-
static isAvailable(name?: string): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* 获取所有可用数据源名称
|
|
42
|
-
*/
|
|
43
|
-
static getAvailableDataSourceNames(): string[];
|
|
44
|
-
/**
|
|
45
|
-
* 批量获取数据源
|
|
46
|
-
*
|
|
47
|
-
* @param names 数据源名称数组
|
|
48
|
-
* @returns 数据源 Map
|
|
49
|
-
*/
|
|
50
|
-
static getDataSources(names: string[]): Map<string, DataSource>;
|
|
51
|
-
/**
|
|
52
|
-
* 获取所有已注册的数据源
|
|
53
|
-
*/
|
|
54
|
-
static getAllDataSources(): Map<string, DataSource>;
|
|
55
|
-
/**
|
|
56
|
-
* 手动注册数据源(用于非模块场景)
|
|
57
|
-
*
|
|
58
|
-
* @param name 数据源名称
|
|
59
|
-
* @param dataSource DataSource 实例
|
|
60
|
-
* @param isDefault 是否设为默认数据源
|
|
61
|
-
*/
|
|
62
|
-
static registerDataSource(name: string, dataSource: DataSource, isDefault?: boolean): void;
|
|
63
|
-
/**
|
|
64
|
-
* 批量注册数据源
|
|
65
|
-
*
|
|
66
|
-
* @param dataSources 数据源 Map
|
|
67
|
-
* @param defaultName 默认数据源名称
|
|
68
|
-
*/
|
|
69
|
-
static registerDataSources(dataSources: Map<string, DataSource>, defaultName?: string): void;
|
|
70
|
-
/**
|
|
71
|
-
* 使用数据源执行操作
|
|
72
|
-
*
|
|
73
|
-
* @param name 数据源名称
|
|
74
|
-
* @param operation 要执行的操作
|
|
75
|
-
* @returns 操作结果
|
|
76
|
-
*/
|
|
77
|
-
static withDataSource<T>(name: string, operation: (dataSource: DataSource) => Promise<T> | T): Promise<T>;
|
|
78
|
-
/**
|
|
79
|
-
* 使用默认数据源执行操作
|
|
80
|
-
*
|
|
81
|
-
* @param operation 要执行的操作
|
|
82
|
-
* @returns 操作结果
|
|
83
|
-
*/
|
|
84
|
-
static withDefaultDataSource<T>(operation: (dataSource: DataSource) => Promise<T> | T): Promise<T>;
|
|
85
|
-
/**
|
|
86
|
-
* 在事务中执行操作
|
|
87
|
-
*
|
|
88
|
-
* @param name 数据源名称
|
|
89
|
-
* @param operation 要执行的操作
|
|
90
|
-
* @returns 操作结果
|
|
91
|
-
*/
|
|
92
|
-
static withTransaction<T>(name: string, operation: (dataSource: DataSource) => Promise<T>): Promise<T>;
|
|
93
|
-
/**
|
|
94
|
-
* 在默认数据源的事务中执行操作
|
|
95
|
-
*/
|
|
96
|
-
static withDefaultTransaction<T>(operation: (dataSource: DataSource) => Promise<T>): Promise<T>;
|
|
97
|
-
/**
|
|
98
|
-
* 测试数据源连接
|
|
99
|
-
*
|
|
100
|
-
* @param name 数据源名称
|
|
101
|
-
* @returns 连接是否正常
|
|
102
|
-
*/
|
|
103
|
-
static testConnection(name?: string): Promise<boolean>;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* 便捷的别名
|
|
107
|
-
*/
|
|
108
|
-
export declare const getDataSource: any;
|
|
109
|
-
export declare const getDataSourceSafe: any;
|
|
110
|
-
export declare const getDefaultDataSource: any;
|
|
111
|
-
export declare const isDataSourceAvailable: any;
|
|
112
|
-
export declare const withDataSource: any;
|
|
113
|
-
export declare const withTransaction: any;
|
|
114
|
-
/**
|
|
115
|
-
* 添加数据源到全局注册表
|
|
116
|
-
* 用于在 TypeOrmModule.forRootAsync 的 useFactory 中手动注册数据源
|
|
117
|
-
*
|
|
118
|
-
* @param name 数据源名称
|
|
119
|
-
* @param dataSource DataSource 实例
|
|
120
|
-
* @param isDefault 是否设为默认数据源
|
|
121
|
-
*
|
|
122
|
-
* @example
|
|
123
|
-
* ```typescript
|
|
124
|
-
* TypeOrmModule.forRootAsync({
|
|
125
|
-
* inject: [ApiConfigService],
|
|
126
|
-
* useFactory: (config: ApiConfigService) => {
|
|
127
|
-
* const dsConfig = config.typeormConfig;
|
|
128
|
-
* // 在这里注册,确保数据源初始化后立即可用
|
|
129
|
-
* addDataSource('default', dataSource, true);
|
|
130
|
-
* return dsConfig;
|
|
131
|
-
* },
|
|
132
|
-
* }),
|
|
133
|
-
* ```
|
|
134
|
-
*/
|
|
135
|
-
export declare const addDataSource: any;
|
|
136
|
-
/**
|
|
137
|
-
* 批量添加数据源
|
|
138
|
-
*
|
|
139
|
-
* @param dataSources 数据源 Map
|
|
140
|
-
* @param defaultName 默认数据源名称
|
|
141
|
-
*/
|
|
142
|
-
export declare const addDataSources: any;
|
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.addDataSources = exports.addDataSource = exports.withTransaction = exports.withDataSource = exports.isDataSourceAvailable = exports.getDefaultDataSource = exports.getDataSourceSafe = exports.getDataSource = exports.DataSourceUtil = void 0;
|
|
13
|
-
const transaction_context_service_1 = require("./transaction-context.service");
|
|
14
|
-
/**
|
|
15
|
-
* 全局数据源存储
|
|
16
|
-
* 用于在非请求上下文中存储和获取数据源
|
|
17
|
-
*/
|
|
18
|
-
class GlobalDataSourceStorage {
|
|
19
|
-
/**
|
|
20
|
-
* 注册数据源
|
|
21
|
-
*/
|
|
22
|
-
static register(name, dataSource) {
|
|
23
|
-
this.dataSources.set(name, dataSource);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 批量注册数据源
|
|
27
|
-
*/
|
|
28
|
-
static registerAll(dataSources) {
|
|
29
|
-
for (const [name, dataSource] of dataSources.entries()) {
|
|
30
|
-
this.register(name, dataSource);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* 获取数据源
|
|
35
|
-
*/
|
|
36
|
-
static get(name) {
|
|
37
|
-
return this.dataSources.get(name);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* 获取默认数据源
|
|
41
|
-
*/
|
|
42
|
-
static getDefault() {
|
|
43
|
-
return this.dataSources.get(this.defaultDataSourceName);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* 设置默认数据源名称
|
|
47
|
-
*/
|
|
48
|
-
static setDefaultName(name) {
|
|
49
|
-
this.defaultDataSourceName = name;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 检查数据源是否存在
|
|
53
|
-
*/
|
|
54
|
-
static has(name) {
|
|
55
|
-
return this.dataSources.has(name);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* 获取所有已注册的数据源名称
|
|
59
|
-
*/
|
|
60
|
-
static getAllNames() {
|
|
61
|
-
return Array.from(this.dataSources.keys());
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* 移除数据源
|
|
65
|
-
*/
|
|
66
|
-
static remove(name) {
|
|
67
|
-
this.dataSources.delete(name);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* 清空所有数据源
|
|
71
|
-
*/
|
|
72
|
-
static clear() {
|
|
73
|
-
this.dataSources.clear();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
GlobalDataSourceStorage.dataSources = new Map();
|
|
77
|
-
GlobalDataSourceStorage.defaultDataSourceName = 'default';
|
|
78
|
-
/**
|
|
79
|
-
* 数据源工具类
|
|
80
|
-
* 提供静态方法在任意位置获取数据源
|
|
81
|
-
*/
|
|
82
|
-
class DataSourceUtil {
|
|
83
|
-
/**
|
|
84
|
-
* 获取数据源
|
|
85
|
-
* 按优先级从以下位置查找:
|
|
86
|
-
* 1. 当前请求上下文 (TransactionContextService)
|
|
87
|
-
* 2. 全局数据源存储 (GlobalDataSourceStorage)
|
|
88
|
-
*
|
|
89
|
-
* @param name 数据源名称,默认为 'default'
|
|
90
|
-
* @returns DataSource 实例
|
|
91
|
-
* @throws Error 如果数据源不存在
|
|
92
|
-
*/
|
|
93
|
-
static getDataSource(name = 'default') {
|
|
94
|
-
// 1. 尝试从请求上下文获取
|
|
95
|
-
try {
|
|
96
|
-
return transaction_context_service_1.TransactionContextService.getDataSource(name);
|
|
97
|
-
}
|
|
98
|
-
catch (_a) {
|
|
99
|
-
// 忽略错误,继续尝试其他方式
|
|
100
|
-
}
|
|
101
|
-
// 2. 从全局存储获取
|
|
102
|
-
const dataSource = GlobalDataSourceStorage.get(name);
|
|
103
|
-
if (dataSource) {
|
|
104
|
-
return dataSource;
|
|
105
|
-
}
|
|
106
|
-
throw new Error(`DataSource '${name}' not found. ` +
|
|
107
|
-
`Please ensure it is registered via TransactionModule.registerDataSource() or TypeOrmModule.`);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* 安全获取数据源,不存在时返回 null
|
|
111
|
-
*
|
|
112
|
-
* @param name 数据源名称
|
|
113
|
-
* @returns DataSource 实例或 null
|
|
114
|
-
*/
|
|
115
|
-
static getDataSourceSafe(name = 'default') {
|
|
116
|
-
try {
|
|
117
|
-
return this.getDataSource(name);
|
|
118
|
-
}
|
|
119
|
-
catch (_a) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* 获取默认数据源
|
|
125
|
-
*/
|
|
126
|
-
static getDefaultDataSource() {
|
|
127
|
-
return this.getDataSource('default');
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* 安全获取默认数据源
|
|
131
|
-
*/
|
|
132
|
-
static getDefaultDataSourceSafe() {
|
|
133
|
-
return this.getDataSourceSafe('default');
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* 检查数据源是否可用
|
|
137
|
-
*
|
|
138
|
-
* @param name 数据源名称
|
|
139
|
-
* @returns 是否可用
|
|
140
|
-
*/
|
|
141
|
-
static isAvailable(name = 'default') {
|
|
142
|
-
var _a;
|
|
143
|
-
try {
|
|
144
|
-
const ds = this.getDataSource(name);
|
|
145
|
-
return (_a = ds === null || ds === void 0 ? void 0 : ds.isInitialized) !== null && _a !== void 0 ? _a : false;
|
|
146
|
-
}
|
|
147
|
-
catch (_b) {
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* 获取所有可用数据源名称
|
|
153
|
-
*/
|
|
154
|
-
static getAvailableDataSourceNames() {
|
|
155
|
-
const names = new Set();
|
|
156
|
-
// 从请求上下文获取
|
|
157
|
-
try {
|
|
158
|
-
const contextNames = transaction_context_service_1.TransactionContextService.getRegisteredDataSources();
|
|
159
|
-
contextNames.forEach((name) => names.add(name));
|
|
160
|
-
}
|
|
161
|
-
catch (_a) {
|
|
162
|
-
// 忽略错误
|
|
163
|
-
}
|
|
164
|
-
// 从全局存储获取
|
|
165
|
-
GlobalDataSourceStorage.getAllNames().forEach((name) => names.add(name));
|
|
166
|
-
return Array.from(names);
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* 批量获取数据源
|
|
170
|
-
*
|
|
171
|
-
* @param names 数据源名称数组
|
|
172
|
-
* @returns 数据源 Map
|
|
173
|
-
*/
|
|
174
|
-
static getDataSources(names) {
|
|
175
|
-
const result = new Map();
|
|
176
|
-
for (const name of names) {
|
|
177
|
-
try {
|
|
178
|
-
const ds = this.getDataSource(name);
|
|
179
|
-
if (ds) {
|
|
180
|
-
result.set(name, ds);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
catch (_a) {
|
|
184
|
-
// 跳过不存在的数据源
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return result;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* 获取所有已注册的数据源
|
|
191
|
-
*/
|
|
192
|
-
static getAllDataSources() {
|
|
193
|
-
const names = this.getAvailableDataSourceNames();
|
|
194
|
-
return this.getDataSources(names);
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* 手动注册数据源(用于非模块场景)
|
|
198
|
-
*
|
|
199
|
-
* @param name 数据源名称
|
|
200
|
-
* @param dataSource DataSource 实例
|
|
201
|
-
* @param isDefault 是否设为默认数据源
|
|
202
|
-
*/
|
|
203
|
-
static registerDataSource(name, dataSource, isDefault = false) {
|
|
204
|
-
GlobalDataSourceStorage.register(name, dataSource);
|
|
205
|
-
if (isDefault) {
|
|
206
|
-
GlobalDataSourceStorage.setDefaultName(name);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* 批量注册数据源
|
|
211
|
-
*
|
|
212
|
-
* @param dataSources 数据源 Map
|
|
213
|
-
* @param defaultName 默认数据源名称
|
|
214
|
-
*/
|
|
215
|
-
static registerDataSources(dataSources, defaultName) {
|
|
216
|
-
GlobalDataSourceStorage.registerAll(dataSources);
|
|
217
|
-
if (defaultName) {
|
|
218
|
-
GlobalDataSourceStorage.setDefaultName(defaultName);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* 使用数据源执行操作
|
|
223
|
-
*
|
|
224
|
-
* @param name 数据源名称
|
|
225
|
-
* @param operation 要执行的操作
|
|
226
|
-
* @returns 操作结果
|
|
227
|
-
*/
|
|
228
|
-
static withDataSource(name, operation) {
|
|
229
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
230
|
-
const dataSource = this.getDataSource(name);
|
|
231
|
-
return operation(dataSource);
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* 使用默认数据源执行操作
|
|
236
|
-
*
|
|
237
|
-
* @param operation 要执行的操作
|
|
238
|
-
* @returns 操作结果
|
|
239
|
-
*/
|
|
240
|
-
static withDefaultDataSource(operation) {
|
|
241
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
242
|
-
return this.withDataSource('default', operation);
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* 在事务中执行操作
|
|
247
|
-
*
|
|
248
|
-
* @param name 数据源名称
|
|
249
|
-
* @param operation 要执行的操作
|
|
250
|
-
* @returns 操作结果
|
|
251
|
-
*/
|
|
252
|
-
static withTransaction(name, operation) {
|
|
253
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
254
|
-
const dataSource = this.getDataSource(name);
|
|
255
|
-
return dataSource.transaction((entityManager) => __awaiter(this, void 0, void 0, function* () {
|
|
256
|
-
// 通过 EntityManager 获取 DataSource
|
|
257
|
-
const ds = entityManager.connection;
|
|
258
|
-
return operation(ds);
|
|
259
|
-
}));
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* 在默认数据源的事务中执行操作
|
|
264
|
-
*/
|
|
265
|
-
static withDefaultTransaction(operation) {
|
|
266
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
267
|
-
return this.withTransaction('default', operation);
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* 测试数据源连接
|
|
272
|
-
*
|
|
273
|
-
* @param name 数据源名称
|
|
274
|
-
* @returns 连接是否正常
|
|
275
|
-
*/
|
|
276
|
-
static testConnection() {
|
|
277
|
-
return __awaiter(this, arguments, void 0, function* (name = 'default') {
|
|
278
|
-
try {
|
|
279
|
-
const dataSource = this.getDataSource(name);
|
|
280
|
-
if (dataSource.isInitialized) {
|
|
281
|
-
yield dataSource.query('SELECT 1');
|
|
282
|
-
return true;
|
|
283
|
-
}
|
|
284
|
-
return false;
|
|
285
|
-
}
|
|
286
|
-
catch (_a) {
|
|
287
|
-
return false;
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
exports.DataSourceUtil = DataSourceUtil;
|
|
293
|
-
/**
|
|
294
|
-
* 便捷的别名
|
|
295
|
-
*/
|
|
296
|
-
exports.getDataSource = DataSourceUtil.getDataSource.bind(DataSourceUtil);
|
|
297
|
-
exports.getDataSourceSafe = DataSourceUtil.getDataSourceSafe.bind(DataSourceUtil);
|
|
298
|
-
exports.getDefaultDataSource = DataSourceUtil.getDefaultDataSource.bind(DataSourceUtil);
|
|
299
|
-
exports.isDataSourceAvailable = DataSourceUtil.isAvailable.bind(DataSourceUtil);
|
|
300
|
-
exports.withDataSource = DataSourceUtil.withDataSource.bind(DataSourceUtil);
|
|
301
|
-
exports.withTransaction = DataSourceUtil.withTransaction.bind(DataSourceUtil);
|
|
302
|
-
/**
|
|
303
|
-
* 添加数据源到全局注册表
|
|
304
|
-
* 用于在 TypeOrmModule.forRootAsync 的 useFactory 中手动注册数据源
|
|
305
|
-
*
|
|
306
|
-
* @param name 数据源名称
|
|
307
|
-
* @param dataSource DataSource 实例
|
|
308
|
-
* @param isDefault 是否设为默认数据源
|
|
309
|
-
*
|
|
310
|
-
* @example
|
|
311
|
-
* ```typescript
|
|
312
|
-
* TypeOrmModule.forRootAsync({
|
|
313
|
-
* inject: [ApiConfigService],
|
|
314
|
-
* useFactory: (config: ApiConfigService) => {
|
|
315
|
-
* const dsConfig = config.typeormConfig;
|
|
316
|
-
* // 在这里注册,确保数据源初始化后立即可用
|
|
317
|
-
* addDataSource('default', dataSource, true);
|
|
318
|
-
* return dsConfig;
|
|
319
|
-
* },
|
|
320
|
-
* }),
|
|
321
|
-
* ```
|
|
322
|
-
*/
|
|
323
|
-
exports.addDataSource = DataSourceUtil.registerDataSource.bind(DataSourceUtil);
|
|
324
|
-
/**
|
|
325
|
-
* 批量添加数据源
|
|
326
|
-
*
|
|
327
|
-
* @param dataSources 数据源 Map
|
|
328
|
-
* @param defaultName 默认数据源名称
|
|
329
|
-
*/
|
|
330
|
-
exports.addDataSources = DataSourceUtil.registerDataSources.bind(DataSourceUtil);
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { DataSource, QueryRunner } from 'typeorm';
|
|
2
|
-
/**
|
|
3
|
-
* 数据库类型
|
|
4
|
-
*/
|
|
5
|
-
export type DatabaseType = 'mysql' | 'mariadb' | 'postgres' | 'cockroachdb' | 'sqlite' | 'better-sqlite3' | 'mssql' | 'oracle' | 'mongodb' | 'cordova' | 'react-native' | 'nativescript' | 'sqljs' | 'expo' | 'capacitor';
|
|
6
|
-
/**
|
|
7
|
-
* 数据库适配器
|
|
8
|
-
* 处理不同数据库的 SQL 语法差异
|
|
9
|
-
*/
|
|
10
|
-
export declare class DatabaseAdapter {
|
|
11
|
-
/**
|
|
12
|
-
* 获取数据库类型
|
|
13
|
-
*/
|
|
14
|
-
static getDatabaseType(dataSource: DataSource): DatabaseType;
|
|
15
|
-
/**
|
|
16
|
-
* 检查数据库是否支持 SAVEPOINT
|
|
17
|
-
*/
|
|
18
|
-
static supportsSavepoint(dataSource: DataSource): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* 创建保存点
|
|
21
|
-
*/
|
|
22
|
-
static createSavepoint(queryRunner: QueryRunner, savepointName: string): Promise<void>;
|
|
23
|
-
/**
|
|
24
|
-
* 回滚到保存点
|
|
25
|
-
*/
|
|
26
|
-
static rollbackToSavepoint(queryRunner: QueryRunner, savepointName: string): Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* 释放保存点
|
|
29
|
-
*/
|
|
30
|
-
static releaseSavepoint(queryRunner: QueryRunner, savepointName: string): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* 执行健康检查查询
|
|
33
|
-
*/
|
|
34
|
-
static healthCheck(dataSource: DataSource): Promise<boolean>;
|
|
35
|
-
/**
|
|
36
|
-
* 获取数据库特定的信息
|
|
37
|
-
*/
|
|
38
|
-
static getDatabaseInfo(dataSource: DataSource): {
|
|
39
|
-
type: DatabaseType;
|
|
40
|
-
supportsSavepoint: boolean;
|
|
41
|
-
supportsNestedTransactions: boolean;
|
|
42
|
-
requiresReleaseSavepoint: boolean;
|
|
43
|
-
};
|
|
44
|
-
}
|