@steedos/objectql 2.2.50 → 2.2.51-beta.4
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/lib/services/helpers/graphql/consts.d.ts +17 -0
- package/lib/services/helpers/graphql/consts.js +28 -0
- package/lib/services/helpers/graphql/consts.js.map +1 -0
- package/lib/services/helpers/graphql/getQueryFields.js +17 -2
- package/lib/services/helpers/graphql/getQueryFields.js.map +1 -1
- package/lib/services/helpers/graphql/index.d.ts +1 -1
- package/lib/services/helpers/graphql/index.js +31 -46
- package/lib/services/helpers/graphql/index.js.map +1 -1
- package/lib/util/index.js +7 -0
- package/lib/util/index.js.map +1 -1
- package/package.json +11 -12
- package/src/actions/field_updates.ts +0 -118
- package/src/actions/index.ts +0 -3
- package/src/actions/types/field_update_target.ts +0 -7
- package/src/actions/types/workflow_notification.ts +0 -9
- package/src/actions/types/workflow_rule.ts +0 -11
- package/src/actions/workflow_notifications.ts +0 -81
- package/src/actions/workflow_rule.ts +0 -136
- package/src/driver/driver.ts +0 -102
- package/src/driver/field-encrytion/index.ts +0 -8
- package/src/driver/field-encrytion/sharedconst.ts +0 -34
- package/src/driver/fieldDBType.ts +0 -14
- package/src/driver/format.ts +0 -36
- package/src/driver/index.ts +0 -20
- package/src/driver/metadata.ts +0 -226
- package/src/driver/meteorMongo.ts +0 -639
- package/src/driver/mongo.ts +0 -416
- package/src/driver/mysql.ts +0 -47
- package/src/driver/oracle.ts +0 -60
- package/src/driver/postgres.ts +0 -46
- package/src/driver/sqlite3.ts +0 -40
- package/src/driver/sqlserver.ts +0 -52
- package/src/dynamic-load/actions.ts +0 -146
- package/src/dynamic-load/approval_process.ts +0 -73
- package/src/dynamic-load/button.ts +0 -75
- package/src/dynamic-load/chart.ts +0 -22
- package/src/dynamic-load/client_script.ts +0 -65
- package/src/dynamic-load/field.ts +0 -77
- package/src/dynamic-load/flow_role.ts +0 -46
- package/src/dynamic-load/index.ts +0 -21
- package/src/dynamic-load/layout.ts +0 -53
- package/src/dynamic-load/listview.ts +0 -57
- package/src/dynamic-load/method.ts +0 -63
- package/src/dynamic-load/object_translations.ts +0 -61
- package/src/dynamic-load/originalObject.ts +0 -8
- package/src/dynamic-load/package.ts +0 -312
- package/src/dynamic-load/page.ts +0 -23
- package/src/dynamic-load/permission.ts +0 -71
- package/src/dynamic-load/permissionset.ts +0 -78
- package/src/dynamic-load/preload_data.ts +0 -104
- package/src/dynamic-load/profile.ts +0 -90
- package/src/dynamic-load/query.ts +0 -22
- package/src/dynamic-load/restrictionRules.ts +0 -23
- package/src/dynamic-load/role.ts +0 -46
- package/src/dynamic-load/shareRules.ts +0 -23
- package/src/dynamic-load/tab.ts +0 -17
- package/src/dynamic-load/tabs.ts +0 -13
- package/src/dynamic-load/translations.ts +0 -54
- package/src/dynamic-load/trigger.ts +0 -236
- package/src/dynamic-load/validation_rule.ts +0 -77
- package/src/dynamic-load/workflow.ts +0 -114
- package/src/errors/index.ts +0 -111
- package/src/formula/core.ts +0 -490
- package/src/formula/field_formula.ts +0 -107
- package/src/formula/index.ts +0 -81
- package/src/formula/params.ts +0 -197
- package/src/formula/recompute.ts +0 -65
- package/src/formula/simple_params.ts +0 -92
- package/src/formula/type.ts +0 -107
- package/src/formula/util.ts +0 -207
- package/src/index.ts +0 -24
- package/src/metadata-register/_base.ts +0 -85
- package/src/metadata-register/app.ts +0 -30
- package/src/metadata-register/chart.ts +0 -9
- package/src/metadata-register/index.ts +0 -123
- package/src/metadata-register/layout.ts +0 -38
- package/src/metadata-register/object.ts +0 -68
- package/src/metadata-register/page.ts +0 -9
- package/src/metadata-register/permissionFields.ts +0 -13
- package/src/metadata-register/permissionset.ts +0 -25
- package/src/metadata-register/process.ts +0 -16
- package/src/metadata-register/processTrigger.ts +0 -24
- package/src/metadata-register/profile.ts +0 -25
- package/src/metadata-register/query.ts +0 -9
- package/src/metadata-register/restrictionRules.ts +0 -12
- package/src/metadata-register/shareRules.ts +0 -13
- package/src/metadata-register/tab.ts +0 -9
- package/src/metadata-register/tabs.ts +0 -43
- package/src/services/datasourceServiceFactory.ts +0 -55
- package/src/services/helpers/graphql/getPrimaryFieldType.ts +0 -48
- package/src/services/helpers/graphql/getQueryFields.ts +0 -36
- package/src/services/helpers/graphql/index.ts +0 -681
- package/src/services/helpers/rest.ts +0 -57
- package/src/services/index.ts +0 -13
- package/src/services/objectService.ts +0 -846
- package/src/services/objectServiceDispatcher.ts +0 -209
- package/src/services/objectServiceFactory.ts +0 -29
- package/src/summary/core.ts +0 -263
- package/src/summary/field_summary.ts +0 -71
- package/src/summary/index.ts +0 -96
- package/src/summary/recompute.ts +0 -31
- package/src/summary/type.ts +0 -60
- package/src/ts-types/index.ts +0 -3
- package/src/ts-types/permissionset.ts +0 -8
- package/src/ts-types/profile.ts +0 -11
- package/src/ts-types/triggerActionParams.ts +0 -22
- package/src/typeorm/driver.ts +0 -379
- package/src/typeorm/index.ts +0 -3
- package/src/typeorm/util.ts +0 -147
- package/src/types/action.ts +0 -52
- package/src/types/app.ts +0 -280
- package/src/types/config.ts +0 -152
- package/src/types/connection.ts +0 -87
- package/src/types/dashboard.ts +0 -91
- package/src/types/datasource.ts +0 -570
- package/src/types/field.ts +0 -370
- package/src/types/field_permission.ts +0 -42
- package/src/types/field_types.ts +0 -1
- package/src/types/index.ts +0 -21
- package/src/types/list_view.ts +0 -56
- package/src/types/listeners.ts +0 -18
- package/src/types/object.ts +0 -2076
- package/src/types/object_dynamic_load.ts +0 -426
- package/src/types/object_events.ts +0 -43
- package/src/types/object_layouts.ts +0 -20
- package/src/types/object_permission.ts +0 -134
- package/src/types/query.ts +0 -28
- package/src/types/report.ts +0 -128
- package/src/types/restrictionRule.ts +0 -57
- package/src/types/schema.ts +0 -273
- package/src/types/shareRule.ts +0 -57
- package/src/types/trigger.ts +0 -88
- package/src/types/userSession.ts +0 -45
- package/src/types/validation_rules.ts +0 -29
- package/src/util/convert.ts +0 -131
- package/src/util/field.ts +0 -93
- package/src/util/function_expression.ts +0 -63
- package/src/util/index.ts +0 -1058
- package/src/util/locale.ts +0 -24
- package/src/util/permission_shares.ts +0 -25
- package/src/util/suffix.ts +0 -78
- package/src/util/transform.ts +0 -239
- package/src/validators/index.ts +0 -36
package/src/types/datasource.ts
DELETED
|
@@ -1,570 +0,0 @@
|
|
|
1
|
-
import { Dictionary } from '@salesforce/ts-types';
|
|
2
|
-
// import { initObjectFieldsSummarys } from '../summary';
|
|
3
|
-
import { getObjectServiceName } from '../services/index';
|
|
4
|
-
import {
|
|
5
|
-
SteedosDriver,
|
|
6
|
-
SteedosMongoDriver,
|
|
7
|
-
SteedosMeteorMongoDriver,
|
|
8
|
-
SteedosSqlite3Driver,
|
|
9
|
-
SteedosSqlServerDriver,
|
|
10
|
-
SteedosPostgresDriver,
|
|
11
|
-
SteedosOracleDriver,
|
|
12
|
-
SteedosMySqlDriver
|
|
13
|
-
} from '../driver';
|
|
14
|
-
|
|
15
|
-
import _ = require('lodash');
|
|
16
|
-
import { SteedosQueryOptions, SteedosQueryFilters } from './query';
|
|
17
|
-
import {
|
|
18
|
-
SteedosIDType,
|
|
19
|
-
SteedosObjectType,
|
|
20
|
-
SteedosObjectTypeConfig,
|
|
21
|
-
SteedosSchema,
|
|
22
|
-
SteedosObjectPermissionTypeConfig,
|
|
23
|
-
SteedosObjectPermissionType,
|
|
24
|
-
getAppConfigs,
|
|
25
|
-
getDashboardConfigs,
|
|
26
|
-
getSteedosSchema,
|
|
27
|
-
getObjectConfig,
|
|
28
|
-
addAllConfigFiles
|
|
29
|
-
} from '.';
|
|
30
|
-
import { SteedosDriverConfig } from '../driver';
|
|
31
|
-
import { getObjectDispatcher, createObjectService, createDataSourceService } from '../services/index';
|
|
32
|
-
import path = require('path');
|
|
33
|
-
let Fiber = require('fibers');
|
|
34
|
-
const defaultDatasourceName = 'default';
|
|
35
|
-
// const meteorDatasourceName = 'meteor';
|
|
36
|
-
declare var Creator: any;
|
|
37
|
-
export enum SteedosDatabaseDriverType {
|
|
38
|
-
Mongo = 'mongo',
|
|
39
|
-
MeteorMongo = 'meteor-mongo',
|
|
40
|
-
Sqlite = 'sqlite',
|
|
41
|
-
SqlServer = 'sqlserver',
|
|
42
|
-
Postgres = 'postgres',
|
|
43
|
-
Oracle = 'oracle',
|
|
44
|
-
MySql = 'mysql'
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export type SteedosDataSourceTypeConfig = {
|
|
48
|
-
name?: string
|
|
49
|
-
driver: SteedosDatabaseDriverType | string | SteedosDriver
|
|
50
|
-
logging?: boolean | Array<any>
|
|
51
|
-
url?: string
|
|
52
|
-
host?: string,
|
|
53
|
-
port?: number,
|
|
54
|
-
username?: string
|
|
55
|
-
password?: string,
|
|
56
|
-
database?: string,
|
|
57
|
-
connectString?: string,
|
|
58
|
-
timezone?: string,
|
|
59
|
-
options?: any
|
|
60
|
-
objects?: Dictionary<SteedosObjectTypeConfig>
|
|
61
|
-
objectFiles?: string[]
|
|
62
|
-
objectsRolesPermission?: Dictionary<Dictionary<SteedosObjectPermissionTypeConfig>>
|
|
63
|
-
getRoles?: Function //TODO 尚未开放此功能
|
|
64
|
-
enable_space?: boolean
|
|
65
|
-
locale?: string //指定新建数据库表的默认语言,如zh,可用于字段的默认排序
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export class SteedosDataSourceType implements Dictionary {
|
|
69
|
-
[key: string]: unknown;
|
|
70
|
-
private _name: string;
|
|
71
|
-
public get name(): string {
|
|
72
|
-
return this._name;
|
|
73
|
-
}
|
|
74
|
-
private _adapter: SteedosDriver;
|
|
75
|
-
public get adapter(): SteedosDriver {
|
|
76
|
-
return this._adapter;
|
|
77
|
-
}
|
|
78
|
-
private _getRoles: Function;
|
|
79
|
-
private _url: string;
|
|
80
|
-
private _host: string;
|
|
81
|
-
private _port: number;
|
|
82
|
-
private _username?: string;
|
|
83
|
-
private _password?: string;
|
|
84
|
-
private _database?: string;
|
|
85
|
-
private _connectString?: string;
|
|
86
|
-
private _timezone?: string;
|
|
87
|
-
private _options?: any;
|
|
88
|
-
private _locale?: string;
|
|
89
|
-
private _schema: SteedosSchema;
|
|
90
|
-
private _objects: Dictionary<SteedosObjectType> = {};
|
|
91
|
-
private _cacheObjects?: Array<SteedosObjectType> = [];
|
|
92
|
-
public get cacheObjects(): any {
|
|
93
|
-
return this._cacheObjects;
|
|
94
|
-
}
|
|
95
|
-
public set cacheObjects(value: any) {
|
|
96
|
-
this._cacheObjects = value;
|
|
97
|
-
}
|
|
98
|
-
private _service?: any;
|
|
99
|
-
public get service(): any {
|
|
100
|
-
return this._service;
|
|
101
|
-
}
|
|
102
|
-
public set service(value: any) {
|
|
103
|
-
this._service = value;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
private _objectsConfig: Dictionary<SteedosObjectTypeConfig> = {};
|
|
107
|
-
private _objectsRolesPermission: Dictionary<Dictionary<SteedosObjectPermissionType>> = {};
|
|
108
|
-
private _objectsSpaceRolesPermission: Dictionary<Dictionary<Dictionary<SteedosObjectPermissionType>>> = {};
|
|
109
|
-
private _driver: SteedosDatabaseDriverType | string | SteedosDriver;
|
|
110
|
-
private _logging: boolean | Array<any>;
|
|
111
|
-
private _config: SteedosDataSourceTypeConfig;
|
|
112
|
-
private _enable_space: boolean;
|
|
113
|
-
public get enable_space(): boolean {
|
|
114
|
-
return this._enable_space;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
public get config(): SteedosDataSourceTypeConfig {
|
|
118
|
-
return this._config;
|
|
119
|
-
}
|
|
120
|
-
public set config(value: SteedosDataSourceTypeConfig) {
|
|
121
|
-
this._config = value;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
public get driver(): SteedosDatabaseDriverType | string | SteedosDriver {
|
|
125
|
-
return this._driver;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
async getObjects(useCache = true) {
|
|
129
|
-
// if(!this.schema.metadataRegister){
|
|
130
|
-
// return this._objects
|
|
131
|
-
// }
|
|
132
|
-
// return await this.schema.metadataRegister.getObjectsConfig(this.name);
|
|
133
|
-
if(useCache === false){
|
|
134
|
-
await this.flushCacheObjects();
|
|
135
|
-
}
|
|
136
|
-
return this.getCacheObjects();
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
getCacheObjects() {
|
|
140
|
-
return this.cacheObjects;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
async flushCacheObjects() {
|
|
144
|
-
this.cacheObjects = await this.schema.metadataRegister.getObjectsConfig(this.name);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
getLocalObjects() {
|
|
148
|
-
return this._objects
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
setLocalObject(objectApiName, object){
|
|
152
|
-
this._objects[objectApiName] = object;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
getObject(objectApiName: string){
|
|
156
|
-
const localObject = this.getLocalObject(objectApiName);
|
|
157
|
-
if(localObject){
|
|
158
|
-
return localObject;
|
|
159
|
-
}
|
|
160
|
-
return getObjectDispatcher(objectApiName)
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
getLocalObject(objectApiName: string) {
|
|
164
|
-
return this._objects[objectApiName]
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
getObjectsConfig() {
|
|
168
|
-
return this._objectsConfig;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
getObjectConfig(objectName) {
|
|
172
|
-
return this._objectsConfig[objectName];
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
async setObject(objectApiName: string, objectConfig: SteedosObjectTypeConfig) {
|
|
176
|
-
const serviceName = getObjectServiceName(objectApiName)
|
|
177
|
-
let object = new SteedosObjectType(objectApiName, this, objectConfig)
|
|
178
|
-
|
|
179
|
-
this._objectsConfig[objectApiName] = objectConfig;
|
|
180
|
-
|
|
181
|
-
const findIndex = _.findIndex(this.cacheObjects, (item: any) => { return item?.metadata?.name === objectApiName });
|
|
182
|
-
|
|
183
|
-
if (findIndex != -1) {
|
|
184
|
-
this.cacheObjects[findIndex] = Object.assign({ service: { name: serviceName } }, { metadata: objectConfig });
|
|
185
|
-
} else {
|
|
186
|
-
this.cacheObjects.push(Object.assign({ service: { name: serviceName } }, { metadata: objectConfig }));
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
this._objects[objectApiName] = object;
|
|
190
|
-
await createObjectService(this._schema.metadataBroker, serviceName, objectConfig)
|
|
191
|
-
return object;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
removeObject(object_name: string){
|
|
195
|
-
delete this._objectsConfig[object_name];
|
|
196
|
-
delete this._objects[object_name];
|
|
197
|
-
this.schema.removeObjectMap(object_name);
|
|
198
|
-
this.schema.metadataRegister.removeObject(object_name)
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
initDriver() {
|
|
202
|
-
let driverConfig: SteedosDriverConfig = {
|
|
203
|
-
url: this._url,
|
|
204
|
-
host: this._host,
|
|
205
|
-
port: this._port,
|
|
206
|
-
username: this._username,
|
|
207
|
-
password: this._password,
|
|
208
|
-
database: this._database,
|
|
209
|
-
connectString: this._connectString,
|
|
210
|
-
timezone: this._timezone,
|
|
211
|
-
options: this._options,
|
|
212
|
-
logging: this._logging,
|
|
213
|
-
locale: this._locale
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
if (_.isString(this.config.driver)) {
|
|
217
|
-
switch (this.config.driver) {
|
|
218
|
-
case SteedosDatabaseDriverType.Mongo:
|
|
219
|
-
this._adapter = new SteedosMongoDriver(driverConfig);
|
|
220
|
-
break;
|
|
221
|
-
case SteedosDatabaseDriverType.MeteorMongo:
|
|
222
|
-
this._adapter = new SteedosMeteorMongoDriver(driverConfig);
|
|
223
|
-
break;
|
|
224
|
-
case SteedosDatabaseDriverType.Sqlite:
|
|
225
|
-
this._adapter = new SteedosSqlite3Driver(driverConfig);
|
|
226
|
-
break;
|
|
227
|
-
case SteedosDatabaseDriverType.SqlServer:
|
|
228
|
-
this._adapter = new SteedosSqlServerDriver(driverConfig);
|
|
229
|
-
break;
|
|
230
|
-
case SteedosDatabaseDriverType.Postgres:
|
|
231
|
-
this._adapter = new SteedosPostgresDriver(driverConfig);
|
|
232
|
-
break;
|
|
233
|
-
case SteedosDatabaseDriverType.Oracle:
|
|
234
|
-
this._adapter = new SteedosOracleDriver(driverConfig);
|
|
235
|
-
break;
|
|
236
|
-
case SteedosDatabaseDriverType.MySql:
|
|
237
|
-
this._adapter = new SteedosMySqlDriver(driverConfig);
|
|
238
|
-
break;
|
|
239
|
-
default:
|
|
240
|
-
throw new Error(`the driver ${this.config.driver} is not supported`)
|
|
241
|
-
}
|
|
242
|
-
} else {
|
|
243
|
-
this._adapter = this.config.driver
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
async initObject(objectConfig) {
|
|
248
|
-
//从本地对象配置中读取触发器配置
|
|
249
|
-
const localObjectConfig = getObjectConfig(objectConfig.name);
|
|
250
|
-
if (localObjectConfig) {
|
|
251
|
-
objectConfig.listeners = localObjectConfig.listeners;
|
|
252
|
-
objectConfig.methods = localObjectConfig.methods;
|
|
253
|
-
}
|
|
254
|
-
if (this.name === "meteor") {
|
|
255
|
-
try {
|
|
256
|
-
const _db = Creator.createCollection(objectConfig)
|
|
257
|
-
Creator.Collections[_db._name] = _db
|
|
258
|
-
} catch (error) {
|
|
259
|
-
// console.log(`error`, error) //此处无需打印日志,@steedos/core 在init Creator 时,会兼容此部分的异常逻辑。
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
await this.setObject(objectConfig.name, objectConfig);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
async initObjects() {
|
|
266
|
-
// 从缓存中加载所有本数据源对象到datasource中
|
|
267
|
-
let objects: Array<any> = this.cacheObjects;
|
|
268
|
-
let self = this;
|
|
269
|
-
for await (const object of _.values(objects)) {
|
|
270
|
-
const objectConfig = object.metadata;
|
|
271
|
-
await self.initObject(objectConfig)
|
|
272
|
-
}
|
|
273
|
-
return true;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
constructor(datasource_name: string, config: SteedosDataSourceTypeConfig, schema: SteedosSchema) {
|
|
277
|
-
this._name = datasource_name
|
|
278
|
-
this.config = config
|
|
279
|
-
this._url = config.url
|
|
280
|
-
this._host = config.host
|
|
281
|
-
this._port = config.port
|
|
282
|
-
this._username = config.username
|
|
283
|
-
this._password = config.password
|
|
284
|
-
this._database = config.database
|
|
285
|
-
this._connectString = config.connectString
|
|
286
|
-
this._timezone = config.timezone
|
|
287
|
-
this._options = config.options
|
|
288
|
-
this._schema = schema
|
|
289
|
-
this._driver = config.driver
|
|
290
|
-
this._logging = config.logging
|
|
291
|
-
this._locale = config.locale
|
|
292
|
-
// TODO 非默认数据源开启enable_space:true,功能有问题,暂时关闭
|
|
293
|
-
if(_.has(config, 'enable_space')){
|
|
294
|
-
this._enable_space = config.enable_space
|
|
295
|
-
}else{
|
|
296
|
-
if(this._driver == SteedosDatabaseDriverType.MeteorMongo || (this._driver == SteedosDatabaseDriverType.Mongo && this.name === defaultDatasourceName)){
|
|
297
|
-
this._enable_space = true
|
|
298
|
-
}else{
|
|
299
|
-
this._enable_space = false
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
this.initDriver();
|
|
304
|
-
|
|
305
|
-
if (config.getRoles && !_.isFunction(config.getRoles)) {
|
|
306
|
-
throw new Error('getRoles must be a function')
|
|
307
|
-
}
|
|
308
|
-
this._getRoles = config.getRoles
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
async loadFiles(){
|
|
312
|
-
// 不再支持从steedos-config中配置对象定义。
|
|
313
|
-
// _.each(this.config.objects, (object, object_name) => {
|
|
314
|
-
// object.name = object_name
|
|
315
|
-
// addObjectConfig(object, this._name);
|
|
316
|
-
// })
|
|
317
|
-
// 添加对象到缓存
|
|
318
|
-
for (const objectPath of this.config.objectFiles) {
|
|
319
|
-
let filePath = objectPath;
|
|
320
|
-
if(!path.isAbsolute(objectPath)){
|
|
321
|
-
filePath = path.join(process.cwd(), objectPath)
|
|
322
|
-
}
|
|
323
|
-
await addAllConfigFiles(filePath, this._name, null)
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
setObjectPermission(object_name: string, objectRolePermission: SteedosObjectPermissionTypeConfig) {
|
|
328
|
-
let objectPermissions = this._objectsRolesPermission[object_name]
|
|
329
|
-
if (!objectPermissions) {
|
|
330
|
-
this._objectsRolesPermission[object_name] = {}
|
|
331
|
-
}
|
|
332
|
-
this._objectsRolesPermission[object_name][objectRolePermission.name] = new SteedosObjectPermissionType(object_name, objectRolePermission)
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
getObjectRolesPermission(object_name: string) {
|
|
336
|
-
return this._objectsRolesPermission[object_name]
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
setObjectSpacePermission(object_name: string, spaceId: string, objectRolePermission: SteedosObjectPermissionTypeConfig) {
|
|
340
|
-
let objectPermissions = this._objectsSpaceRolesPermission[object_name]
|
|
341
|
-
if (!objectPermissions) {
|
|
342
|
-
this._objectsSpaceRolesPermission[object_name] = {}
|
|
343
|
-
}
|
|
344
|
-
let objectSpacePermissions = this._objectsSpaceRolesPermission[object_name][spaceId]
|
|
345
|
-
if (!objectSpacePermissions) {
|
|
346
|
-
this._objectsSpaceRolesPermission[object_name][spaceId] = {}
|
|
347
|
-
}
|
|
348
|
-
this._objectsSpaceRolesPermission[object_name][spaceId][objectRolePermission.name] = new SteedosObjectPermissionType(object_name, objectRolePermission)
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
getObjectSpaceRolesPermission(object_name: string, spaceId: string) {
|
|
352
|
-
if(this._objectsSpaceRolesPermission[object_name]){
|
|
353
|
-
return this._objectsSpaceRolesPermission[object_name][spaceId]
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
removeObjectSpacePermission(object_name: string, spaceId: string, objectRolePermissionName: string){
|
|
358
|
-
if(this._objectsSpaceRolesPermission[object_name] && this._objectsSpaceRolesPermission[object_name][spaceId]){
|
|
359
|
-
delete this._objectsSpaceRolesPermission[object_name][spaceId][objectRolePermissionName];
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
async getRoles(userId: SteedosIDType) {
|
|
364
|
-
if (this._getRoles) {
|
|
365
|
-
return await this._getRoles(userId)
|
|
366
|
-
} else {
|
|
367
|
-
return ['admin']
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
async find(tableName: string, query: SteedosQueryOptions, userId?: SteedosIDType) {
|
|
372
|
-
return await this._adapter.find(tableName, query, userId)
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
async aggregate(tableName: string, query: SteedosQueryOptions, externalPipeline, userId?: SteedosIDType) {
|
|
376
|
-
return await this._adapter.aggregate(tableName, query, externalPipeline, userId)
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
async findOne(tableName: string, id: SteedosIDType, query: SteedosQueryOptions, userId?: SteedosIDType) {
|
|
380
|
-
return await this._adapter.findOne(tableName, id, query, userId)
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
async insert(tableName: string, doc: Dictionary<any>, userId?: SteedosIDType) {
|
|
384
|
-
return await this._adapter.insert(tableName, doc, userId)
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
async update(tableName: string, id: SteedosIDType | SteedosQueryOptions, doc: Dictionary<any>, userId?: SteedosIDType) {
|
|
388
|
-
return await this._adapter.update(tableName, id, doc, userId)
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
async updateOne(tableName: string, id: SteedosIDType | SteedosQueryOptions, doc: Dictionary<any>, userId?: SteedosIDType) {
|
|
392
|
-
return await this._adapter.updateOne(tableName, id, doc, userId)
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
async updateMany(tableName: string, queryFilters: SteedosQueryFilters, doc: Dictionary<any>, userId?: SteedosIDType) {
|
|
396
|
-
return await this._adapter.updateMany(tableName, queryFilters, doc, userId)
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
async delete(tableName: string, id: SteedosIDType | SteedosQueryOptions, userId?: SteedosIDType) {
|
|
400
|
-
return await this._adapter.delete(tableName, id, userId)
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
formatRecord(doc: Dictionary<any>, objectConfig: SteedosObjectType) {
|
|
404
|
-
const formatRecord = this._adapter.formatRecord
|
|
405
|
-
if (typeof formatRecord === 'function') {
|
|
406
|
-
return formatRecord(doc, objectConfig)
|
|
407
|
-
}
|
|
408
|
-
return doc
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
async count(tableName: string, query: SteedosQueryOptions, userId?: SteedosIDType) {
|
|
412
|
-
return await this._adapter.count(tableName, query, userId)
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
async directFind(tableName: string, query: SteedosQueryOptions, userId?: SteedosIDType) {
|
|
416
|
-
return await this._adapter.find(tableName, query, userId)
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
async directInsert(tableName: string, doc: Dictionary<any>, userId?: SteedosIDType) {
|
|
420
|
-
return await this._adapter.directInsert(tableName, doc, userId)
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
async directUpdate(tableName: string, id: SteedosIDType | SteedosQueryOptions, doc: Dictionary<any>, userId?: SteedosIDType) {
|
|
424
|
-
return await this._adapter.directUpdate(tableName, id, doc, userId)
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
async directDelete(tableName: string, id: SteedosIDType | SteedosQueryOptions, userId?: SteedosIDType) {
|
|
428
|
-
return await this._adapter.directDelete(tableName, id, userId)
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
async directAggregate(tableName: string, query: SteedosQueryOptions, externalPipeline: any[], userId?: SteedosIDType) {
|
|
432
|
-
return await this._adapter.directAggregate(tableName, query, externalPipeline, userId)
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
async directAggregatePrefixalPipeline(tableName: string, query: SteedosQueryOptions, prefixalPipeline: any[], userId?: SteedosIDType) {
|
|
436
|
-
return await this._adapter.directAggregatePrefixalPipeline(tableName, query, prefixalPipeline, userId)
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
async _makeNewID(tableName: string){
|
|
440
|
-
return await this._adapter._makeNewID(tableName)
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
public get schema(): SteedosSchema {
|
|
444
|
-
return this._schema;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
async dropEntities() {
|
|
448
|
-
if (this._adapter.dropEntities) {
|
|
449
|
-
return await this._adapter.dropEntities();
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
registerEntities() {
|
|
454
|
-
if (this._adapter.registerEntities) {
|
|
455
|
-
return this._adapter.registerEntities(this._objects);
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
async dropTables() {
|
|
460
|
-
if (this._adapter.dropEntities) {
|
|
461
|
-
return await this._adapter.dropEntities();
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
async createTables() {
|
|
466
|
-
if (this._adapter.createTables) {
|
|
467
|
-
return await this._adapter.createTables(this._objects);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
async init() {
|
|
472
|
-
// await this.flushCacheObjects();
|
|
473
|
-
// await this.initObjects();
|
|
474
|
-
this.initObjectPermissions();
|
|
475
|
-
if (!this.service) {
|
|
476
|
-
const broker = this._schema.metadataBroker
|
|
477
|
-
this.service = await createDataSourceService(broker, this)
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
/**
|
|
482
|
-
* 初始化数据源上配置的对象权限。
|
|
483
|
-
*/
|
|
484
|
-
initObjectPermissions() {
|
|
485
|
-
_.each(this.config.objectsRolesPermission, (objectRolesPermission, object_name) => {
|
|
486
|
-
_.each(objectRolesPermission, (objectRolePermission, role_name) => {
|
|
487
|
-
objectRolePermission.name = role_name
|
|
488
|
-
this.setObjectPermission(object_name, objectRolePermission)
|
|
489
|
-
})
|
|
490
|
-
})
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
initTypeORM() {
|
|
494
|
-
const _objects = {};
|
|
495
|
-
_.map(this.cacheObjects, (item) => {
|
|
496
|
-
if(item && item.metadata){
|
|
497
|
-
_objects[item.metadata.name] = item.metadata
|
|
498
|
-
}
|
|
499
|
-
})
|
|
500
|
-
|
|
501
|
-
if (this._adapter.init) {
|
|
502
|
-
let self = this;
|
|
503
|
-
Fiber(function(){
|
|
504
|
-
let fiber = Fiber.current;
|
|
505
|
-
self._adapter.init(_objects).then(result => {
|
|
506
|
-
fiber.run();
|
|
507
|
-
}).catch(result => {
|
|
508
|
-
console.error(result)
|
|
509
|
-
fiber.run();
|
|
510
|
-
})
|
|
511
|
-
Fiber.yield();
|
|
512
|
-
}).run();
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
// 暂时保留,兼容creator bootstrap接口
|
|
517
|
-
getAppsConfig() {
|
|
518
|
-
return getAppConfigs()
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
getDashboardsConfig() {
|
|
522
|
-
return getDashboardConfigs()
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
async connect() {
|
|
526
|
-
// this.initObjects();
|
|
527
|
-
// init typeorm
|
|
528
|
-
if (this._adapter.connect)
|
|
529
|
-
await this._adapter.connect()
|
|
530
|
-
// init typeorm
|
|
531
|
-
if (this._adapter.init)
|
|
532
|
-
await this._adapter.init(this._objects)
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
async close() {
|
|
536
|
-
if (this._adapter.close)
|
|
537
|
-
this._adapter.close()
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
// 重命名库中表名
|
|
541
|
-
async renameCollection(newObjectApiName: string, oldObjectApiName: string){
|
|
542
|
-
if(this.driver === SteedosDatabaseDriverType.Mongo){
|
|
543
|
-
const adapter = this.adapter;
|
|
544
|
-
await adapter.connect();
|
|
545
|
-
const collection = (adapter as any).collection(oldObjectApiName);
|
|
546
|
-
const newCollection = (adapter as any).collection(newObjectApiName);
|
|
547
|
-
let dropTarget = false;
|
|
548
|
-
let count = await newCollection.count({});
|
|
549
|
-
if (count == 0) {
|
|
550
|
-
dropTarget = true;
|
|
551
|
-
}
|
|
552
|
-
return await collection.rename(newObjectApiName, { dropTarget: dropTarget });
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
// 校验表在库中是否已存在记录
|
|
557
|
-
async isCollectionExitsRecords(objectApiName: string) {
|
|
558
|
-
if(this.driver === SteedosDatabaseDriverType.Mongo){
|
|
559
|
-
const adapter = this.adapter;
|
|
560
|
-
await adapter.connect();
|
|
561
|
-
const collection = (adapter as any).collection(objectApiName);
|
|
562
|
-
let count = await collection.count({});
|
|
563
|
-
return !!count;
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
export function getDataSource(datasourceName: string, schema?: SteedosSchema) {
|
|
569
|
-
return (schema ? schema : getSteedosSchema()).getDataSource(datasourceName);
|
|
570
|
-
}
|