@steedos/service-package-loader 2.5.3-beta.1 → 2.5.3-beta.2
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/index.js +110 -125
- package/lib/processLoader/index.js +5 -17
- package/lib/processLoader/index.js.map +1 -1
- package/lib/processTriggerLoader/index.js +4 -5
- package/lib/processTriggerLoader/index.js.map +1 -1
- package/lib/triggerLoader/index.js +4 -17
- package/lib/triggerLoader/index.js.map +1 -1
- package/package.json +6 -5
- package/src/processLoader/index.ts +3 -15
- package/src/processTriggerLoader/index.ts +1 -9
- package/src/triggerLoader/index.ts +5 -20
package/index.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
const objectql = require('@steedos/objectql');
|
|
4
|
+
const Future = require('fibers/future');
|
|
5
|
+
const core = require('@steedos/core');
|
|
3
6
|
const triggerLoader = require('./lib').triggerLoader;
|
|
4
7
|
const processLoader = require('./lib').processLoader;
|
|
5
8
|
const processTriggerLoader = require('./lib').processTriggerLoader;
|
|
6
9
|
const triggerYmlLoader = require('./lib').triggerYmlLoader;
|
|
7
10
|
const path = require('path');
|
|
8
11
|
const _ = require('lodash');
|
|
12
|
+
const express = require('express');
|
|
9
13
|
const fs = require("fs");
|
|
10
14
|
const metaDataCore = require('@steedos/metadata-core');
|
|
11
|
-
const { registerMetadataConfigs, loadStandardMetadata, loadRouters } = require('@steedos/metadata-registrar');
|
|
12
15
|
const loadFlowFile = new metaDataCore.LoadFlowFile();
|
|
13
16
|
|
|
14
17
|
/**
|
|
@@ -64,47 +67,7 @@ module.exports = {
|
|
|
64
67
|
* Methods
|
|
65
68
|
*/
|
|
66
69
|
methods: {
|
|
67
|
-
checkPackageMetadataFiles: async function (packagePath) {
|
|
68
70
|
|
|
69
|
-
if(this.core){
|
|
70
|
-
return ;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
let publicPath = path.join(packagePath, 'public');
|
|
74
|
-
if (this.settings.packageInfo.loadPublicFolder && fs.existsSync(publicPath)) {
|
|
75
|
-
this.broker.logger.warn(`The public folder has been deprecated. ${publicPath}`);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// 扫描软件包中的元数据, 如果有 .client.js 文件, 则输出警告信息
|
|
79
|
-
const filePatten = [
|
|
80
|
-
path.join(packagePath, "**", "*.client.js"),
|
|
81
|
-
"!" + path.join(packagePath, "node_modules"),
|
|
82
|
-
]
|
|
83
|
-
const matchedPaths = metaDataCore.syncMatchFiles(filePatten);
|
|
84
|
-
for await (const filePath of matchedPaths) {
|
|
85
|
-
this.broker.logger.warn(`The client.js file has been deprecated. ${filePath}`);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// 扫描软件包中的元数据, 如果有 .object.js 文件, 则输出警告信息
|
|
89
|
-
const filePatten2 = [
|
|
90
|
-
path.join(packagePath, "**", "*.object.js"),
|
|
91
|
-
"!" + path.join(packagePath, "node_modules"),
|
|
92
|
-
]
|
|
93
|
-
const matchedPaths2 = metaDataCore.syncMatchFiles(filePatten2);
|
|
94
|
-
for await (const filePath of matchedPaths2) {
|
|
95
|
-
this.broker.logger.warn(`The object.js file has been deprecated. ${filePath}`);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// 扫描软件包中的元数据, 如果有 .router.js 文件, 则输出警告信息
|
|
99
|
-
const filePatten3 = [
|
|
100
|
-
path.join(packagePath, "**", "*.router.js"),
|
|
101
|
-
"!" + path.join(packagePath, "node_modules"),
|
|
102
|
-
]
|
|
103
|
-
const matchedPaths3 = metaDataCore.syncMatchFiles(filePatten3);
|
|
104
|
-
for await (const filePath of matchedPaths3) {
|
|
105
|
-
this.broker.logger.warn(`The router.js file has been deprecated. ${filePath}`);
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
71
|
sendPackageFlowToDb: async function(packagePath, name) {
|
|
109
72
|
const flows = loadFlowFile.load(path.join(packagePath, '**'));
|
|
110
73
|
for (const apiName in flows) {
|
|
@@ -120,7 +83,63 @@ module.exports = {
|
|
|
120
83
|
},
|
|
121
84
|
|
|
122
85
|
importFlow: async function(flow, name) {
|
|
123
|
-
|
|
86
|
+
await Future.task(() => {
|
|
87
|
+
try {
|
|
88
|
+
try {
|
|
89
|
+
if(!db){
|
|
90
|
+
return
|
|
91
|
+
}
|
|
92
|
+
if(!steedosImport){
|
|
93
|
+
return
|
|
94
|
+
}
|
|
95
|
+
} catch (error) {
|
|
96
|
+
return ;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if(db && db.flows && steedosImport){
|
|
100
|
+
const steedosConfig = objectql.getSteedosConfig();
|
|
101
|
+
let space;
|
|
102
|
+
if(steedosConfig && steedosConfig.tenant && steedosConfig.tenant._id){
|
|
103
|
+
space = db.spaces.findOne(steedosConfig.tenant._id)
|
|
104
|
+
}
|
|
105
|
+
if(!space){
|
|
106
|
+
space = db.spaces.findOne()
|
|
107
|
+
}
|
|
108
|
+
if(!space){
|
|
109
|
+
this.logger.debug(`import flow ${flow.name} fail. not find space in db`);
|
|
110
|
+
return ;
|
|
111
|
+
}
|
|
112
|
+
if(!flow.api_name){
|
|
113
|
+
this.logger.warn(`not find api_name in file`);
|
|
114
|
+
return ;
|
|
115
|
+
}
|
|
116
|
+
const dbFlow = db.flows.findOne({api_name: flow.api_name});
|
|
117
|
+
if(!dbFlow){
|
|
118
|
+
if(flow && flow.current){
|
|
119
|
+
if(!_.has(flow.current,'fields')){
|
|
120
|
+
flow.current.fields = [];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
this.logger.info(`insert flow ${flow.api_name} from ${name}`);
|
|
124
|
+
|
|
125
|
+
let company_id = null;
|
|
126
|
+
if(flow.company_id){
|
|
127
|
+
let count = Creator.getCollection("company").find({ _id: flow.company_id, space: space._id }).count();
|
|
128
|
+
if(count > 0){
|
|
129
|
+
company_id = flow.company_id
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return steedosImport.workflow(space.owner, space._id, flow, flow.state == 'enabled' ? true : false, company_id);
|
|
134
|
+
}
|
|
135
|
+
this.logger.debug(`not import flow. find flow `, dbFlow._id)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
} catch (error) {
|
|
139
|
+
this.logger.error(error)
|
|
140
|
+
}
|
|
141
|
+
}).promise();
|
|
142
|
+
|
|
124
143
|
},
|
|
125
144
|
loadDataOnServiceStarted: async function(){
|
|
126
145
|
let packageInfo = this.settings.packageInfo;
|
|
@@ -137,23 +156,43 @@ module.exports = {
|
|
|
137
156
|
},
|
|
138
157
|
loadPackageMetadataFiles: async function (packagePath, name, datasourceName) {
|
|
139
158
|
this.broker.logger.debug(`Loading package from ${packagePath}`)
|
|
140
|
-
packagePath = path.join(packagePath, '**');
|
|
141
159
|
if (!datasourceName) {
|
|
142
160
|
datasourceName = 'default';
|
|
143
161
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
162
|
+
objectql.getSteedosSchema(this.broker);
|
|
163
|
+
packagePath = path.join(packagePath, '**');
|
|
164
|
+
const datasource = objectql.getDataSource(datasourceName);
|
|
165
|
+
if(datasource){
|
|
166
|
+
await datasource.init();
|
|
147
167
|
}
|
|
148
|
-
await
|
|
168
|
+
await objectql.loadStandardMetadata(name, datasourceName);
|
|
169
|
+
await objectql.addAllConfigFiles(packagePath, datasourceName, name);
|
|
149
170
|
await triggerLoader.load(this.broker, packagePath, name);
|
|
150
171
|
await processTriggerLoader.load(this.broker, packagePath, name);
|
|
151
172
|
await triggerYmlLoader.load(this.broker, packagePath, name);
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
173
|
+
core.loadClientScripts();
|
|
174
|
+
let routersData = objectql.loadRouters(packagePath);
|
|
175
|
+
let oldRoutersInfo = await this.broker.call(`@steedos/service-packages.getPackageRoutersInfo`, {packageName: name})
|
|
176
|
+
let routersInfo = _.flattenDeep(_.map(routersData, 'infoList'));
|
|
177
|
+
if(oldRoutersInfo){
|
|
178
|
+
_.each(oldRoutersInfo.metadata, (info)=>{
|
|
179
|
+
const _info = _.find(routersInfo, (item)=>{
|
|
180
|
+
return item.path == info.path && JSON.stringify(item.methods) == JSON.stringify(info.methods) && item.md5 == info.md5
|
|
181
|
+
})
|
|
182
|
+
if(!_info){
|
|
183
|
+
core.removeRouter(info.path, info.methods)
|
|
184
|
+
}
|
|
185
|
+
})
|
|
156
186
|
}
|
|
187
|
+
const _routers = [];
|
|
188
|
+
routersData.forEach(element => {
|
|
189
|
+
// if(element.router.default === require('@steedos/router').staticRouter()){
|
|
190
|
+
// objectql.broker.broker.logger.warn(`router error, packagePath: ${packagePath} `);
|
|
191
|
+
// }
|
|
192
|
+
_routers.push(element)
|
|
193
|
+
});
|
|
194
|
+
core.loadRouters(_routers);
|
|
195
|
+
await this.broker.call(`@steedos/service-packages.setPackageRoutersInfo`, {packageName: name, data: routersInfo});
|
|
157
196
|
await this.broker.emit(`translations.object.change`, {});
|
|
158
197
|
return;
|
|
159
198
|
},
|
|
@@ -165,8 +204,7 @@ module.exports = {
|
|
|
165
204
|
const matchedPaths = metaDataCore.syncMatchFiles(filePatten);
|
|
166
205
|
for await (const serviceFilePath of matchedPaths) {
|
|
167
206
|
try {
|
|
168
|
-
|
|
169
|
-
const service = this.broker.loadService(serviceFilePath);
|
|
207
|
+
const service = objectql.loadService(this.broker, serviceFilePath);
|
|
170
208
|
this.packageServices.push(service);
|
|
171
209
|
if (!this.broker.started) {
|
|
172
210
|
this.broker._restartService(service)
|
|
@@ -190,24 +228,19 @@ module.exports = {
|
|
|
190
228
|
return
|
|
191
229
|
}
|
|
192
230
|
|
|
231
|
+
this.settings.loadedPackagePublicFiles = true;
|
|
193
232
|
try {
|
|
194
|
-
const
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
let routerPath = "";
|
|
199
|
-
if (__meteor_runtime_config__.ROOT_URL_PATH_PREFIX) {
|
|
200
|
-
routerPath = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX;
|
|
201
|
-
}
|
|
202
|
-
const cacheTime = 86400000 * 1; // one day
|
|
203
|
-
router.use(routerPath, express.static(publicPath, { maxAge: cacheTime }));
|
|
204
|
-
// WebApp.connectHandlers.use(router);
|
|
205
|
-
} catch (error) {
|
|
206
|
-
console.error(error)
|
|
207
|
-
this.settings.loadedPackagePublicFiles = false;
|
|
233
|
+
const router = require('@steedos/router').staticRouter();
|
|
234
|
+
let routerPath = "";
|
|
235
|
+
if (__meteor_runtime_config__.ROOT_URL_PATH_PREFIX) {
|
|
236
|
+
routerPath = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX;
|
|
208
237
|
}
|
|
238
|
+
const cacheTime = 86400000 * 1; // one day
|
|
239
|
+
router.use(routerPath, express.static(publicPath, { maxAge: cacheTime }));
|
|
240
|
+
// WebApp.connectHandlers.use(router);
|
|
209
241
|
} catch (error) {
|
|
210
|
-
|
|
242
|
+
console.error(error)
|
|
243
|
+
this.settings.loadedPackagePublicFiles = false;
|
|
211
244
|
}
|
|
212
245
|
}
|
|
213
246
|
},
|
|
@@ -219,9 +252,6 @@ module.exports = {
|
|
|
219
252
|
return await this.broker.destroyService(this);
|
|
220
253
|
},
|
|
221
254
|
async onStarted(){
|
|
222
|
-
|
|
223
|
-
this.checkPackageMetadataFiles(this.settings.packageInfo.path)
|
|
224
|
-
|
|
225
255
|
if(this.beforeStart){
|
|
226
256
|
try {
|
|
227
257
|
await this.beforeStart()
|
|
@@ -248,7 +278,7 @@ module.exports = {
|
|
|
248
278
|
await this.loadPackageMetadataFiles(_path, this.name, datasource);
|
|
249
279
|
if(isPackage !== false){
|
|
250
280
|
try {
|
|
251
|
-
const _packageInfo =
|
|
281
|
+
const _packageInfo = objectql.loadJSONFile(path.join(_path, 'package.json'));
|
|
252
282
|
await this.broker.call(`@steedos/service-packages.online`, {serviceInfo: {name: this.name, nodeID: this.broker.nodeID, instanceID: this.broker.instanceID, path: _path, version: _packageInfo.version, description: _packageInfo.description}})
|
|
253
283
|
} catch (error) {
|
|
254
284
|
|
|
@@ -267,35 +297,6 @@ module.exports = {
|
|
|
267
297
|
this.broker.logger.error(`[${this.name}]: ${error.message}`);
|
|
268
298
|
}
|
|
269
299
|
}
|
|
270
|
-
},
|
|
271
|
-
async loadPackageRouters(packagePath, name){
|
|
272
|
-
let routersData = loadRouters(packagePath);
|
|
273
|
-
let oldRoutersInfo = await this.broker.call(`@steedos/service-packages.getPackageRoutersInfo`, {packageName: name})
|
|
274
|
-
let routersInfo = _.flattenDeep(_.map(routersData, 'infoList'));
|
|
275
|
-
if(oldRoutersInfo){
|
|
276
|
-
_.each(oldRoutersInfo.metadata, (info)=>{
|
|
277
|
-
const _info = _.find(routersInfo, (item)=>{
|
|
278
|
-
return item.path == info.path && JSON.stringify(item.methods) == JSON.stringify(info.methods) && item.md5 == info.md5
|
|
279
|
-
})
|
|
280
|
-
if(!_info){
|
|
281
|
-
this.core.removeRouter(info.path, info.methods)
|
|
282
|
-
}
|
|
283
|
-
})
|
|
284
|
-
}
|
|
285
|
-
const _routers = [];
|
|
286
|
-
routersData.forEach(element => {
|
|
287
|
-
_routers.push(element)
|
|
288
|
-
});
|
|
289
|
-
this.core.loadRouters(_routers);
|
|
290
|
-
return routersInfo
|
|
291
|
-
},
|
|
292
|
-
async initDataSource(packagePath, datasourceName){
|
|
293
|
-
this.objectql.getSteedosSchema(this.broker);
|
|
294
|
-
packagePath = path.join(packagePath, '**');
|
|
295
|
-
const datasource = this.objectql.getDataSource(datasourceName);
|
|
296
|
-
if(datasource){
|
|
297
|
-
await datasource.init();
|
|
298
|
-
}
|
|
299
300
|
}
|
|
300
301
|
},
|
|
301
302
|
|
|
@@ -303,23 +304,8 @@ module.exports = {
|
|
|
303
304
|
* Service created lifecycle event handler
|
|
304
305
|
*/
|
|
305
306
|
created() {
|
|
306
|
-
if(!global.broker){
|
|
307
|
-
global.broker = this.broker;
|
|
308
|
-
}
|
|
309
307
|
this.packageServices = []; //此属性不能放到settings下,否则会导致mo clone settings 时 内存溢出。
|
|
310
308
|
this.logger.debug('service package loader created!!!');
|
|
311
|
-
|
|
312
|
-
try {
|
|
313
|
-
this.core = require('@steedos/core');
|
|
314
|
-
} catch (e) {
|
|
315
|
-
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
try {
|
|
319
|
-
this.objectql = require('@steedos/objectql');
|
|
320
|
-
} catch (e) {
|
|
321
|
-
|
|
322
|
-
}
|
|
323
309
|
},
|
|
324
310
|
|
|
325
311
|
merged(schema) {
|
|
@@ -358,16 +344,15 @@ module.exports = {
|
|
|
358
344
|
}
|
|
359
345
|
};
|
|
360
346
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
})
|
|
367
|
-
}
|
|
368
|
-
await this.core.deletePackageClientScripts(this.name);
|
|
369
|
-
await this.core.loadClientScripts();
|
|
347
|
+
let oldRoutersInfo = await this.broker.call(`@steedos/service-packages.getPackageRoutersInfo`, {packageName: this.name})
|
|
348
|
+
if(oldRoutersInfo){
|
|
349
|
+
_.each(oldRoutersInfo.metadata, (info)=>{
|
|
350
|
+
core.removeRouter(info.path, info.methods)
|
|
351
|
+
})
|
|
370
352
|
}
|
|
353
|
+
|
|
354
|
+
objectql.deletePackageClientScripts(this.name);
|
|
355
|
+
core.loadClientScripts();
|
|
371
356
|
this.broker.call(`@steedos/service-packages.offline`, {serviceInfo: {name: this.name, nodeID: this.broker.nodeID, instanceID: this.broker.instanceID}})
|
|
372
357
|
await this.broker.call(`metadata.refreshServiceMetadatas`, { offlinePackageServices: [{
|
|
373
358
|
name: this.name,
|
|
@@ -4,18 +4,9 @@ exports.sendPackageProcessToDb = exports.load = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const _ = require("underscore");
|
|
6
6
|
const path = require("path");
|
|
7
|
+
const objectql_1 = require("@steedos/objectql");
|
|
7
8
|
const metadata_core_1 = require("@steedos/metadata-core");
|
|
8
|
-
const metadata_registrar_1 = require("@steedos/metadata-registrar");
|
|
9
9
|
const loadProcessFile = new metadata_core_1.LoadProcessFile();
|
|
10
|
-
function getObject(objectName) {
|
|
11
|
-
try {
|
|
12
|
-
const objectql = require('@steedos/objectql');
|
|
13
|
-
return objectql.getObject(objectName);
|
|
14
|
-
}
|
|
15
|
-
catch (error) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
10
|
function load(broker, packagePath, packageServiceName) {
|
|
20
11
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
12
|
let filePath = path.join(packagePath, "**");
|
|
@@ -36,7 +27,7 @@ function load(broker, packagePath, packageServiceName) {
|
|
|
36
27
|
}));
|
|
37
28
|
}
|
|
38
29
|
if (data.length > 0) {
|
|
39
|
-
yield
|
|
30
|
+
yield objectql_1.registerProcess.mregister(broker, packageServiceName, data);
|
|
40
31
|
}
|
|
41
32
|
});
|
|
42
33
|
}
|
|
@@ -48,12 +39,9 @@ function sendPackageProcessToDb(packagePath) {
|
|
|
48
39
|
if (_.isEmpty(processes)) {
|
|
49
40
|
return;
|
|
50
41
|
}
|
|
51
|
-
const processObj = getObject('process');
|
|
52
|
-
const processVersionsObj = getObject('process_versions');
|
|
53
|
-
const spaceObj = getObject('spaces');
|
|
54
|
-
if (!processObj || !processVersionsObj || !spaceObj) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
42
|
+
const processObj = (0, objectql_1.getObject)('process');
|
|
43
|
+
const processVersionsObj = (0, objectql_1.getObject)('process_versions');
|
|
44
|
+
const spaceObj = (0, objectql_1.getObject)('spaces');
|
|
57
45
|
const spaceDoc = (yield spaceObj.find({}))[0];
|
|
58
46
|
if (!spaceDoc) {
|
|
59
47
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processLoader/index.ts"],"names":[],"mappings":";;;;AAOA,gCAAgC;AAChC,6BAA6B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processLoader/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,15 +4,14 @@ exports.load = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const _ = require("underscore");
|
|
6
6
|
const path = require("path");
|
|
7
|
-
const
|
|
8
|
-
const metadata_registrar_1 = require("@steedos/metadata-registrar");
|
|
7
|
+
const objectql_1 = require("@steedos/objectql");
|
|
9
8
|
const ENUM_WHEN = ['beforeDraftInsert', 'afterDraftInsert', 'beforeDraftSubmit', 'afterDraftSubmit', 'beforeStepSubmit', 'afterStepSubmit', 'cacluateNextStepUsers',
|
|
10
9
|
'beforeCancel', 'afterCancel', 'beforeTerminate', 'afterTerminate', 'beforeEnd', 'afterEnd'];
|
|
11
10
|
const LISTENTO_ALL_FLOWS = 'LISTENTO_ALL_FLOWS';
|
|
12
11
|
function load(broker, packagePath, packageServiceName) {
|
|
13
12
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
14
13
|
let filePath = path.join(packagePath, "**");
|
|
15
|
-
let wTriggers = (0,
|
|
14
|
+
let wTriggers = (0, objectql_1.loadProcessTriggers)(filePath);
|
|
16
15
|
if (_.isEmpty(wTriggers)) {
|
|
17
16
|
return;
|
|
18
17
|
}
|
|
@@ -23,14 +22,14 @@ function load(broker, packagePath, packageServiceName) {
|
|
|
23
22
|
if (!handler) {
|
|
24
23
|
continue;
|
|
25
24
|
}
|
|
26
|
-
let name = wt.name || (0,
|
|
25
|
+
let name = wt.name || (0, objectql_1.getMD5)((0, objectql_1.JSONStringify)(wt));
|
|
27
26
|
let config = {
|
|
28
27
|
name: name,
|
|
29
28
|
"listenTo": wt.listenTo == '*' ? LISTENTO_ALL_FLOWS : wt.listenTo,
|
|
30
29
|
"when": when,
|
|
31
30
|
"handler": handler.toString()
|
|
32
31
|
};
|
|
33
|
-
yield
|
|
32
|
+
yield objectql_1.registerProcessTrigger.register(broker, packageServiceName, config);
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processTriggerLoader/index.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processTriggerLoader/index.ts"],"names":[],"mappings":";;;;AAAA,gCAAgC;AAChC,6BAA6B;AAC7B,gDAAuG;AAGvG,MAAM,SAAS,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,uBAAuB;IAC/J,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACjG,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEhD,SAAsB,IAAI,CAAC,MAAW,EAAE,WAAmB,EAAE,kBAA0B;;QACnF,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,SAAS,GAAG,IAAA,8BAAmB,EAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,OAAO;SACV;QACD,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;YAExB,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;gBACzB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;oBAC1B,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,CAAC,OAAO,EAAE;wBACV,SAAS;qBACZ;oBACD,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAA,iBAAM,EAAC,IAAA,wBAAa,EAAC,EAAE,CAAC,CAAC,CAAC;oBAChD,IAAI,MAAM,GAAY;wBAClB,IAAI,EAAE,IAAI;wBACV,UAAU,EAAE,EAAE,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ;wBACjE,MAAM,EAAE,IAAI;wBACZ,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE;qBAChC,CAAA;oBACD,MAAM,iCAAsB,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;iBAC7E;aAEJ;SACJ;IAEL,CAAC;CAAA;AA3BD,oBA2BC"}
|
|
@@ -4,29 +4,19 @@ exports.load = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const _ = require("underscore");
|
|
6
6
|
const path = require("path");
|
|
7
|
-
const
|
|
8
|
-
const metadata_registrar_1 = require("@steedos/metadata-registrar");
|
|
7
|
+
const objectql_1 = require("@steedos/objectql");
|
|
9
8
|
const TRIGGERKEYS = ['beforeFind', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterFind', 'afterInsert', 'afterUpdate', 'afterDelete', 'afterFindOne', 'afterCount'];
|
|
10
|
-
function getObject(objectName) {
|
|
11
|
-
try {
|
|
12
|
-
const objectql = require('@steedos/objectql');
|
|
13
|
-
return objectql.getObject(objectName);
|
|
14
|
-
}
|
|
15
|
-
catch (error) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
9
|
function load(broker, packagePath, packageServiceName) {
|
|
20
10
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
11
|
let actions = {};
|
|
22
12
|
let serviceName = `~triggers-${packageServiceName}`;
|
|
23
13
|
let filePath = path.join(packagePath, "**");
|
|
24
|
-
let objTriggers = (0,
|
|
14
|
+
let objTriggers = (0, objectql_1.loadObjectTriggers)(filePath, packageServiceName);
|
|
25
15
|
if (_.isEmpty(objTriggers)) {
|
|
26
16
|
return;
|
|
27
17
|
}
|
|
28
18
|
for (const trigger of objTriggers) {
|
|
29
|
-
const actionTriggerName = (0,
|
|
19
|
+
const actionTriggerName = (0, objectql_1.getMD5)((0, objectql_1.JSONStringify)(trigger));
|
|
30
20
|
actions[actionTriggerName] = generateActionTrigger(trigger);
|
|
31
21
|
broker.emit('trigger.loaded', {
|
|
32
22
|
objectName: trigger['listenTo']
|
|
@@ -106,10 +96,7 @@ function generateActionTrigger(trigger) {
|
|
|
106
96
|
}
|
|
107
97
|
}
|
|
108
98
|
if (when) {
|
|
109
|
-
const object = getObject(objectName);
|
|
110
|
-
if (!object) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
99
|
+
const object = (0, objectql_1.getObject)(objectName);
|
|
113
100
|
yield object.runTriggers(when, context);
|
|
114
101
|
return context;
|
|
115
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/triggerLoader/index.ts"],"names":[],"mappings":";;;;AAOA,gCAAgC;AAChC,6BAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/triggerLoader/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-package-loader",
|
|
3
|
-
"version": "2.5.3-beta.
|
|
3
|
+
"version": "2.5.3-beta.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
"author": "",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@steedos/
|
|
14
|
-
"@steedos/metadata-
|
|
15
|
-
"@steedos/
|
|
13
|
+
"@steedos/core": "2.5.3-beta.2",
|
|
14
|
+
"@steedos/metadata-core": "2.5.3-beta.2",
|
|
15
|
+
"@steedos/objectql": "2.5.3-beta.2",
|
|
16
|
+
"@steedos/router": "2.5.3-beta.2",
|
|
16
17
|
"clone": "^2.1.2",
|
|
17
18
|
"moleculer": "^0.14.25",
|
|
18
19
|
"underscore": "^1.12.0"
|
|
@@ -24,5 +25,5 @@
|
|
|
24
25
|
"publishConfig": {
|
|
25
26
|
"access": "public"
|
|
26
27
|
},
|
|
27
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "321fe88aba6ddc3380a0d71eaa2e9a18186d49f8"
|
|
28
29
|
}
|
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2022-03-30 11:49:53
|
|
4
|
-
* @LastEditors:
|
|
5
|
-
* @LastEditTime:
|
|
4
|
+
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
+
* @LastEditTime: 2022-04-19 15:36:41
|
|
6
6
|
* @Description:
|
|
7
7
|
*/
|
|
8
8
|
import * as _ from "underscore";
|
|
9
9
|
import * as path from "path";
|
|
10
|
+
import { registerProcess, getObject } from "@steedos/objectql";
|
|
10
11
|
import { Process } from "./types";
|
|
11
12
|
import { LoadProcessFile } from '@steedos/metadata-core';
|
|
12
|
-
import { registerProcess } from '@steedos/metadata-registrar';
|
|
13
13
|
const loadProcessFile = new LoadProcessFile();
|
|
14
14
|
|
|
15
|
-
function getObject(objectName: string) {
|
|
16
|
-
try {
|
|
17
|
-
const objectql = require('@steedos/objectql');
|
|
18
|
-
return objectql.getObject(objectName);
|
|
19
|
-
} catch (error) {
|
|
20
|
-
return null
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
15
|
export async function load(broker: any, packagePath: string, packageServiceName: string) {
|
|
25
16
|
let filePath = path.join(packagePath, "**");
|
|
26
17
|
let processes = loadProcessFile.load(filePath);
|
|
@@ -59,9 +50,6 @@ export async function sendPackageProcessToDb(packagePath: string) {
|
|
|
59
50
|
const processObj = getObject('process');
|
|
60
51
|
const processVersionsObj = getObject('process_versions');
|
|
61
52
|
const spaceObj = getObject('spaces');
|
|
62
|
-
if(!processObj || !processVersionsObj || !spaceObj){
|
|
63
|
-
return ;
|
|
64
|
-
}
|
|
65
53
|
const spaceDoc = (await spaceObj.find({}))[0];
|
|
66
54
|
// 如果没有工作区信息则说明为空库,不加载
|
|
67
55
|
if (!spaceDoc) {
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: baozhoutao@steedos.com
|
|
3
|
-
* @Date: 2022-05-16 11:55:06
|
|
4
|
-
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
-
* @LastEditTime: 2023-05-30 09:47:15
|
|
6
|
-
* @Description:
|
|
7
|
-
*/
|
|
8
1
|
import * as _ from "underscore";
|
|
9
2
|
import * as path from "path";
|
|
10
|
-
import { getMD5, JSONStringify } from
|
|
3
|
+
import { getMD5, JSONStringify, loadProcessTriggers, registerProcessTrigger } from "@steedos/objectql";
|
|
11
4
|
import { Trigger } from "./types";
|
|
12
|
-
import { registerProcessTrigger, loadProcessTriggers } from "@steedos/metadata-registrar";
|
|
13
5
|
|
|
14
6
|
const ENUM_WHEN = ['beforeDraftInsert', 'afterDraftInsert', 'beforeDraftSubmit', 'afterDraftSubmit', 'beforeStepSubmit', 'afterStepSubmit', 'cacluateNextStepUsers',
|
|
15
7
|
'beforeCancel', 'afterCancel', 'beforeTerminate', 'afterTerminate', 'beforeEnd', 'afterEnd'];
|
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2022-06-12 19:08:48
|
|
4
|
-
* @LastEditors:
|
|
5
|
-
* @LastEditTime: 2023-
|
|
4
|
+
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
+
* @LastEditTime: 2023-04-24 13:09:55
|
|
6
6
|
* @Description: 加载*.trigger.js文件注册为新版action trigger
|
|
7
7
|
*/
|
|
8
8
|
import * as _ from "underscore";
|
|
9
9
|
import * as path from "path";
|
|
10
|
-
import { JSONStringify,
|
|
11
|
-
import { loadObjectTriggers } from "@steedos/metadata-registrar";
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
import { getMD5, JSONStringify, TriggerActionParams, SteedosTriggerContextConfig, loadObjectTriggers, getObject } from "@steedos/objectql";
|
|
14
11
|
|
|
15
12
|
const TRIGGERKEYS = ['beforeFind', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterFind', 'afterInsert', 'afterUpdate', 'afterDelete', 'afterFindOne', 'afterCount']
|
|
16
13
|
|
|
17
|
-
function getObject(objectName: string) {
|
|
18
|
-
try {
|
|
19
|
-
const objectql = require('@steedos/objectql');
|
|
20
|
-
return objectql.getObject(objectName);
|
|
21
|
-
} catch (error) {
|
|
22
|
-
return null
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
14
|
export async function load(broker: any, packagePath: string, packageServiceName: string) {
|
|
27
15
|
let actions = {};
|
|
28
16
|
let serviceName = `~triggers-${packageServiceName}`;
|
|
@@ -98,9 +86,9 @@ function generateActionTrigger(trigger) {
|
|
|
98
86
|
isInsert, isUpdate, isDelete, isFind, isBefore, isAfter, isFindOne, isCount,
|
|
99
87
|
id, doc, previousDoc,
|
|
100
88
|
// size,
|
|
101
|
-
userId, spaceId, objectName, query, data }:
|
|
89
|
+
userId, spaceId, objectName, query, data }: TriggerActionParams = ctx.params;
|
|
102
90
|
|
|
103
|
-
const context:
|
|
91
|
+
const context: SteedosTriggerContextConfig = {
|
|
104
92
|
id,
|
|
105
93
|
userId,
|
|
106
94
|
spaceId,
|
|
@@ -141,9 +129,6 @@ function generateActionTrigger(trigger) {
|
|
|
141
129
|
|
|
142
130
|
if (when) {
|
|
143
131
|
const object = getObject(objectName);
|
|
144
|
-
if(!object){
|
|
145
|
-
return ;
|
|
146
|
-
}
|
|
147
132
|
await object.runTriggers(when, context);
|
|
148
133
|
return context;
|
|
149
134
|
}
|