@steedos/service-package-loader 2.5.3-beta.2 → 2.5.3-beta.20
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 +149 -117
- package/lib/processLoader/index.js +17 -5
- package/lib/processLoader/index.js.map +1 -1
- package/lib/processTriggerLoader/index.js +5 -4
- package/lib/processTriggerLoader/index.js.map +1 -1
- package/lib/triggerLoader/index.js +17 -4
- package/lib/triggerLoader/index.js.map +1 -1
- package/package.json +5 -6
- package/src/processLoader/index.ts +15 -3
- package/src/processTriggerLoader/index.ts +9 -1
- package/src/triggerLoader/index.ts +20 -5
package/index.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const objectql = require('@steedos/objectql');
|
|
4
|
-
const Future = require('fibers/future');
|
|
5
|
-
const core = require('@steedos/core');
|
|
6
3
|
const triggerLoader = require('./lib').triggerLoader;
|
|
7
4
|
const processLoader = require('./lib').processLoader;
|
|
8
5
|
const processTriggerLoader = require('./lib').processTriggerLoader;
|
|
9
6
|
const triggerYmlLoader = require('./lib').triggerYmlLoader;
|
|
10
7
|
const path = require('path');
|
|
11
8
|
const _ = require('lodash');
|
|
12
|
-
const express = require('express');
|
|
13
9
|
const fs = require("fs");
|
|
14
10
|
const metaDataCore = require('@steedos/metadata-core');
|
|
11
|
+
const { registerMetadataConfigs, loadStandardMetadata, loadRouters, canLoadMetadata } = require('@steedos/metadata-registrar');
|
|
15
12
|
const loadFlowFile = new metaDataCore.LoadFlowFile();
|
|
16
13
|
|
|
17
14
|
/**
|
|
@@ -67,8 +64,51 @@ module.exports = {
|
|
|
67
64
|
* Methods
|
|
68
65
|
*/
|
|
69
66
|
methods: {
|
|
67
|
+
checkPackageMetadataFiles: async function (packagePath) {
|
|
70
68
|
|
|
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
|
+
},
|
|
71
108
|
sendPackageFlowToDb: async function(packagePath, name) {
|
|
109
|
+
if(!canLoadMetadata('Flow')){
|
|
110
|
+
return ;
|
|
111
|
+
}
|
|
72
112
|
const flows = loadFlowFile.load(path.join(packagePath, '**'));
|
|
73
113
|
for (const apiName in flows) {
|
|
74
114
|
const flow = flows[apiName];
|
|
@@ -83,63 +123,7 @@ module.exports = {
|
|
|
83
123
|
},
|
|
84
124
|
|
|
85
125
|
importFlow: async function(flow, name) {
|
|
86
|
-
await
|
|
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
|
-
|
|
126
|
+
return await this.broker.call('steedos-server.importFlow', {flow, name});
|
|
143
127
|
},
|
|
144
128
|
loadDataOnServiceStarted: async function(){
|
|
145
129
|
let packageInfo = this.settings.packageInfo;
|
|
@@ -147,52 +131,43 @@ module.exports = {
|
|
|
147
131
|
return;
|
|
148
132
|
}
|
|
149
133
|
const { path : _path } = packageInfo;
|
|
150
|
-
|
|
151
134
|
this.loadPackagePublicFiles(_path);
|
|
152
135
|
if(_path){
|
|
153
136
|
this.sendPackageFlowToDb(_path)
|
|
154
|
-
|
|
137
|
+
if(canLoadMetadata('Process')){
|
|
138
|
+
processLoader.sendPackageProcessToDb(_path);
|
|
139
|
+
}
|
|
155
140
|
}
|
|
156
141
|
},
|
|
157
142
|
loadPackageMetadataFiles: async function (packagePath, name, datasourceName) {
|
|
158
143
|
this.broker.logger.debug(`Loading package from ${packagePath}`)
|
|
144
|
+
packagePath = path.join(packagePath, '**');
|
|
159
145
|
if (!datasourceName) {
|
|
160
146
|
datasourceName = 'default';
|
|
161
147
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if(datasource){
|
|
166
|
-
await datasource.init();
|
|
148
|
+
if(this.objectql){
|
|
149
|
+
await loadStandardMetadata(name, datasourceName);
|
|
150
|
+
await this.initDataSource(packagePath, datasourceName);
|
|
167
151
|
}
|
|
168
|
-
await
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
}
|
|
152
|
+
await registerMetadataConfigs(packagePath, datasourceName, name);
|
|
153
|
+
if(canLoadMetadata('Trigger')){
|
|
154
|
+
await triggerLoader.load(this.broker, packagePath, name);
|
|
155
|
+
}
|
|
156
|
+
if(canLoadMetadata('ProcessTrigger')){
|
|
157
|
+
await processTriggerLoader.load(this.broker, packagePath, name);
|
|
158
|
+
}
|
|
159
|
+
if(canLoadMetadata('TriggerYml')){
|
|
160
|
+
await triggerYmlLoader.load(this.broker, packagePath, name);
|
|
161
|
+
}
|
|
162
|
+
if(this.core){
|
|
163
|
+
if(canLoadMetadata('ClientJS')){
|
|
164
|
+
this.core.loadClientScripts();
|
|
165
|
+
}
|
|
166
|
+
if(canLoadMetadata('Router')){
|
|
167
|
+
const routersInfo = await this.loadPackageRouters(packagePath, name);
|
|
168
|
+
await this.broker.call(`@steedos/service-packages.setPackageRoutersInfo`, {packageName: name, data: routersInfo});
|
|
169
|
+
}
|
|
186
170
|
}
|
|
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});
|
|
196
171
|
await this.broker.emit(`translations.object.change`, {});
|
|
197
172
|
return;
|
|
198
173
|
},
|
|
@@ -204,7 +179,8 @@ module.exports = {
|
|
|
204
179
|
const matchedPaths = metaDataCore.syncMatchFiles(filePatten);
|
|
205
180
|
for await (const serviceFilePath of matchedPaths) {
|
|
206
181
|
try {
|
|
207
|
-
|
|
182
|
+
metaDataCore.clearRequireCache(serviceFilePath);
|
|
183
|
+
const service = this.broker.loadService(serviceFilePath);
|
|
208
184
|
this.packageServices.push(service);
|
|
209
185
|
if (!this.broker.started) {
|
|
210
186
|
this.broker._restartService(service)
|
|
@@ -216,6 +192,9 @@ module.exports = {
|
|
|
216
192
|
},
|
|
217
193
|
loadPackagePublicFiles: {
|
|
218
194
|
handler(packagePath) {
|
|
195
|
+
if(!canLoadMetadata('PublicFolder')){
|
|
196
|
+
return ;
|
|
197
|
+
}
|
|
219
198
|
if (!this.settings.packageInfo.loadPublicFolder) {
|
|
220
199
|
return;
|
|
221
200
|
}
|
|
@@ -227,20 +206,25 @@ module.exports = {
|
|
|
227
206
|
} catch (error) {
|
|
228
207
|
return
|
|
229
208
|
}
|
|
230
|
-
|
|
231
|
-
this.settings.loadedPackagePublicFiles = true;
|
|
232
209
|
try {
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
210
|
+
const express = require('express');
|
|
211
|
+
this.settings.loadedPackagePublicFiles = true;
|
|
212
|
+
try {
|
|
213
|
+
const router = require('@steedos/router').staticRouter();
|
|
214
|
+
let routerPath = "";
|
|
215
|
+
if (__meteor_runtime_config__.ROOT_URL_PATH_PREFIX) {
|
|
216
|
+
routerPath = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX;
|
|
217
|
+
}
|
|
218
|
+
const cacheTime = 86400000 * 1; // one day
|
|
219
|
+
// console.log(`static router`, routerPath, publicPath)
|
|
220
|
+
router.use(routerPath, express.static(publicPath, { maxAge: cacheTime }));
|
|
221
|
+
// WebApp.connectHandlers.use(router);
|
|
222
|
+
} catch (error) {
|
|
223
|
+
console.error(error)
|
|
224
|
+
this.settings.loadedPackagePublicFiles = false;
|
|
237
225
|
}
|
|
238
|
-
const cacheTime = 86400000 * 1; // one day
|
|
239
|
-
router.use(routerPath, express.static(publicPath, { maxAge: cacheTime }));
|
|
240
|
-
// WebApp.connectHandlers.use(router);
|
|
241
226
|
} catch (error) {
|
|
242
|
-
|
|
243
|
-
this.settings.loadedPackagePublicFiles = false;
|
|
227
|
+
|
|
244
228
|
}
|
|
245
229
|
}
|
|
246
230
|
},
|
|
@@ -252,6 +236,9 @@ module.exports = {
|
|
|
252
236
|
return await this.broker.destroyService(this);
|
|
253
237
|
},
|
|
254
238
|
async onStarted(){
|
|
239
|
+
|
|
240
|
+
this.checkPackageMetadataFiles(this.settings.packageInfo.path)
|
|
241
|
+
|
|
255
242
|
if(this.beforeStart){
|
|
256
243
|
try {
|
|
257
244
|
await this.beforeStart()
|
|
@@ -278,13 +265,13 @@ module.exports = {
|
|
|
278
265
|
await this.loadPackageMetadataFiles(_path, this.name, datasource);
|
|
279
266
|
if(isPackage !== false){
|
|
280
267
|
try {
|
|
281
|
-
const _packageInfo =
|
|
268
|
+
const _packageInfo = metaDataCore.loadJSONFile(path.join(_path, 'package.json'));
|
|
282
269
|
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}})
|
|
283
270
|
} catch (error) {
|
|
284
271
|
|
|
285
272
|
}
|
|
286
273
|
}
|
|
287
|
-
|
|
274
|
+
|
|
288
275
|
await this.loadPackageMetadataServices(_path);
|
|
289
276
|
|
|
290
277
|
// await this.loadPackagePublicFiles(_path);
|
|
@@ -297,6 +284,35 @@ module.exports = {
|
|
|
297
284
|
this.broker.logger.error(`[${this.name}]: ${error.message}`);
|
|
298
285
|
}
|
|
299
286
|
}
|
|
287
|
+
},
|
|
288
|
+
async loadPackageRouters(packagePath, name){
|
|
289
|
+
let routersData = loadRouters(packagePath);
|
|
290
|
+
let oldRoutersInfo = await this.broker.call(`@steedos/service-packages.getPackageRoutersInfo`, {packageName: name})
|
|
291
|
+
let routersInfo = _.flattenDeep(_.map(routersData, 'infoList'));
|
|
292
|
+
if(oldRoutersInfo){
|
|
293
|
+
_.each(oldRoutersInfo.metadata, (info)=>{
|
|
294
|
+
const _info = _.find(routersInfo, (item)=>{
|
|
295
|
+
return item.path == info.path && JSON.stringify(item.methods) == JSON.stringify(info.methods) && item.md5 == info.md5
|
|
296
|
+
})
|
|
297
|
+
if(!_info){
|
|
298
|
+
this.core.removeRouter(info.path, info.methods)
|
|
299
|
+
}
|
|
300
|
+
})
|
|
301
|
+
}
|
|
302
|
+
const _routers = [];
|
|
303
|
+
routersData.forEach(element => {
|
|
304
|
+
_routers.push(element)
|
|
305
|
+
});
|
|
306
|
+
this.core.loadRouters(_routers);
|
|
307
|
+
return routersInfo
|
|
308
|
+
},
|
|
309
|
+
async initDataSource(packagePath, datasourceName){
|
|
310
|
+
this.objectql.getSteedosSchema(this.broker);
|
|
311
|
+
packagePath = path.join(packagePath, '**');
|
|
312
|
+
const datasource = this.objectql.getDataSource(datasourceName);
|
|
313
|
+
if(datasource){
|
|
314
|
+
await datasource.init();
|
|
315
|
+
}
|
|
300
316
|
}
|
|
301
317
|
},
|
|
302
318
|
|
|
@@ -304,8 +320,23 @@ module.exports = {
|
|
|
304
320
|
* Service created lifecycle event handler
|
|
305
321
|
*/
|
|
306
322
|
created() {
|
|
323
|
+
if(!global.broker){
|
|
324
|
+
global.broker = this.broker;
|
|
325
|
+
}
|
|
307
326
|
this.packageServices = []; //此属性不能放到settings下,否则会导致mo clone settings 时 内存溢出。
|
|
308
327
|
this.logger.debug('service package loader created!!!');
|
|
328
|
+
|
|
329
|
+
try {
|
|
330
|
+
this.core = require('@steedos/core');
|
|
331
|
+
} catch (e) {
|
|
332
|
+
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
try {
|
|
336
|
+
this.objectql = require('@steedos/objectql');
|
|
337
|
+
} catch (e) {
|
|
338
|
+
|
|
339
|
+
}
|
|
309
340
|
},
|
|
310
341
|
|
|
311
342
|
merged(schema) {
|
|
@@ -344,15 +375,16 @@ module.exports = {
|
|
|
344
375
|
}
|
|
345
376
|
};
|
|
346
377
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
378
|
+
if(this.core){
|
|
379
|
+
let oldRoutersInfo = await this.broker.call(`@steedos/service-packages.getPackageRoutersInfo`, {packageName: this.name})
|
|
380
|
+
if(oldRoutersInfo){
|
|
381
|
+
_.each(oldRoutersInfo.metadata, (info)=>{
|
|
382
|
+
this.core.removeRouter(info.path, info.methods)
|
|
383
|
+
})
|
|
384
|
+
}
|
|
385
|
+
await this.objectql.deletePackageClientScripts(this.name);
|
|
386
|
+
await this.core.loadClientScripts();
|
|
352
387
|
}
|
|
353
|
-
|
|
354
|
-
objectql.deletePackageClientScripts(this.name);
|
|
355
|
-
core.loadClientScripts();
|
|
356
388
|
this.broker.call(`@steedos/service-packages.offline`, {serviceInfo: {name: this.name, nodeID: this.broker.nodeID, instanceID: this.broker.instanceID}})
|
|
357
389
|
await this.broker.call(`metadata.refreshServiceMetadatas`, { offlinePackageServices: [{
|
|
358
390
|
name: this.name,
|
|
@@ -4,9 +4,18 @@ 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");
|
|
8
7
|
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
|
+
}
|
|
10
19
|
function load(broker, packagePath, packageServiceName) {
|
|
11
20
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
21
|
let filePath = path.join(packagePath, "**");
|
|
@@ -27,7 +36,7 @@ function load(broker, packagePath, packageServiceName) {
|
|
|
27
36
|
}));
|
|
28
37
|
}
|
|
29
38
|
if (data.length > 0) {
|
|
30
|
-
yield
|
|
39
|
+
yield metadata_registrar_1.registerProcess.mregister(broker, packageServiceName, data);
|
|
31
40
|
}
|
|
32
41
|
});
|
|
33
42
|
}
|
|
@@ -39,9 +48,12 @@ function sendPackageProcessToDb(packagePath) {
|
|
|
39
48
|
if (_.isEmpty(processes)) {
|
|
40
49
|
return;
|
|
41
50
|
}
|
|
42
|
-
const processObj =
|
|
43
|
-
const processVersionsObj =
|
|
44
|
-
const spaceObj =
|
|
51
|
+
const processObj = getObject('process');
|
|
52
|
+
const processVersionsObj = getObject('process_versions');
|
|
53
|
+
const spaceObj = getObject('spaces');
|
|
54
|
+
if (!processObj || !processVersionsObj || !spaceObj) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
45
57
|
const spaceDoc = (yield spaceObj.find({}))[0];
|
|
46
58
|
if (!spaceDoc) {
|
|
47
59
|
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,14 +4,15 @@ exports.load = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const _ = require("underscore");
|
|
6
6
|
const path = require("path");
|
|
7
|
-
const
|
|
7
|
+
const metadata_core_1 = require("@steedos/metadata-core");
|
|
8
|
+
const metadata_registrar_1 = require("@steedos/metadata-registrar");
|
|
8
9
|
const ENUM_WHEN = ['beforeDraftInsert', 'afterDraftInsert', 'beforeDraftSubmit', 'afterDraftSubmit', 'beforeStepSubmit', 'afterStepSubmit', 'cacluateNextStepUsers',
|
|
9
10
|
'beforeCancel', 'afterCancel', 'beforeTerminate', 'afterTerminate', 'beforeEnd', 'afterEnd'];
|
|
10
11
|
const LISTENTO_ALL_FLOWS = 'LISTENTO_ALL_FLOWS';
|
|
11
12
|
function load(broker, packagePath, packageServiceName) {
|
|
12
13
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
14
|
let filePath = path.join(packagePath, "**");
|
|
14
|
-
let wTriggers = (0,
|
|
15
|
+
let wTriggers = (0, metadata_registrar_1.loadProcessTriggers)(filePath);
|
|
15
16
|
if (_.isEmpty(wTriggers)) {
|
|
16
17
|
return;
|
|
17
18
|
}
|
|
@@ -22,14 +23,14 @@ function load(broker, packagePath, packageServiceName) {
|
|
|
22
23
|
if (!handler) {
|
|
23
24
|
continue;
|
|
24
25
|
}
|
|
25
|
-
let name = wt.name || (0,
|
|
26
|
+
let name = wt.name || (0, metadata_core_1.getMD5)((0, metadata_core_1.JSONStringify)(wt));
|
|
26
27
|
let config = {
|
|
27
28
|
name: name,
|
|
28
29
|
"listenTo": wt.listenTo == '*' ? LISTENTO_ALL_FLOWS : wt.listenTo,
|
|
29
30
|
"when": when,
|
|
30
31
|
"handler": handler.toString()
|
|
31
32
|
};
|
|
32
|
-
yield
|
|
33
|
+
yield metadata_registrar_1.registerProcessTrigger.register(broker, packageServiceName, config);
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -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":";;;;AAOA,gCAAgC;AAChC,6BAA6B;AAC7B,0DAA+D;AAE/D,oEAA0F;AAE1F,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,wCAAmB,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,sBAAM,EAAC,IAAA,6BAAa,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,2CAAsB,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;iBAC7E;aAEJ;SACJ;IAEL,CAAC;CAAA;AA3BD,oBA2BC"}
|
|
@@ -4,19 +4,29 @@ exports.load = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const _ = require("underscore");
|
|
6
6
|
const path = require("path");
|
|
7
|
-
const
|
|
7
|
+
const metadata_core_1 = require("@steedos/metadata-core");
|
|
8
|
+
const metadata_registrar_1 = require("@steedos/metadata-registrar");
|
|
8
9
|
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
|
+
}
|
|
9
19
|
function load(broker, packagePath, packageServiceName) {
|
|
10
20
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
21
|
let actions = {};
|
|
12
22
|
let serviceName = `~triggers-${packageServiceName}`;
|
|
13
23
|
let filePath = path.join(packagePath, "**");
|
|
14
|
-
let objTriggers = (0,
|
|
24
|
+
let objTriggers = (0, metadata_registrar_1.loadObjectTriggers)(filePath, packageServiceName);
|
|
15
25
|
if (_.isEmpty(objTriggers)) {
|
|
16
26
|
return;
|
|
17
27
|
}
|
|
18
28
|
for (const trigger of objTriggers) {
|
|
19
|
-
const actionTriggerName = (0,
|
|
29
|
+
const actionTriggerName = (0, metadata_core_1.getMD5)((0, metadata_core_1.JSONStringify)(trigger));
|
|
20
30
|
actions[actionTriggerName] = generateActionTrigger(trigger);
|
|
21
31
|
broker.emit('trigger.loaded', {
|
|
22
32
|
objectName: trigger['listenTo']
|
|
@@ -96,7 +106,10 @@ function generateActionTrigger(trigger) {
|
|
|
96
106
|
}
|
|
97
107
|
}
|
|
98
108
|
if (when) {
|
|
99
|
-
const object =
|
|
109
|
+
const object = getObject(objectName);
|
|
110
|
+
if (!object) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
100
113
|
yield object.runTriggers(when, context);
|
|
101
114
|
return context;
|
|
102
115
|
}
|
|
@@ -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.20",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
"author": "",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@steedos/core": "2.5.3-beta.
|
|
14
|
-
"@steedos/metadata-
|
|
15
|
-
"@steedos/
|
|
16
|
-
"@steedos/router": "2.5.3-beta.2",
|
|
13
|
+
"@steedos/metadata-core": "2.5.3-beta.20",
|
|
14
|
+
"@steedos/metadata-registrar": "2.5.3-beta.20",
|
|
15
|
+
"@steedos/router": "2.5.3-beta.20",
|
|
17
16
|
"clone": "^2.1.2",
|
|
18
17
|
"moleculer": "^0.14.25",
|
|
19
18
|
"underscore": "^1.12.0"
|
|
@@ -25,5 +24,5 @@
|
|
|
25
24
|
"publishConfig": {
|
|
26
25
|
"access": "public"
|
|
27
26
|
},
|
|
28
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "32606d2d07b6e53a4d6c8ba079e6356f5a2dbb75"
|
|
29
28
|
}
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2022-03-30 11:49:53
|
|
4
|
-
* @LastEditors:
|
|
5
|
-
* @LastEditTime:
|
|
4
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
+
* @LastEditTime: 2023-05-30 09:33:01
|
|
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";
|
|
11
10
|
import { Process } from "./types";
|
|
12
11
|
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
|
+
|
|
15
24
|
export async function load(broker: any, packagePath: string, packageServiceName: string) {
|
|
16
25
|
let filePath = path.join(packagePath, "**");
|
|
17
26
|
let processes = loadProcessFile.load(filePath);
|
|
@@ -50,6 +59,9 @@ export async function sendPackageProcessToDb(packagePath: string) {
|
|
|
50
59
|
const processObj = getObject('process');
|
|
51
60
|
const processVersionsObj = getObject('process_versions');
|
|
52
61
|
const spaceObj = getObject('spaces');
|
|
62
|
+
if(!processObj || !processVersionsObj || !spaceObj){
|
|
63
|
+
return ;
|
|
64
|
+
}
|
|
53
65
|
const spaceDoc = (await spaceObj.find({}))[0];
|
|
54
66
|
// 如果没有工作区信息则说明为空库,不加载
|
|
55
67
|
if (!spaceDoc) {
|
|
@@ -1,7 +1,15 @@
|
|
|
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
|
+
*/
|
|
1
8
|
import * as _ from "underscore";
|
|
2
9
|
import * as path from "path";
|
|
3
|
-
import { getMD5, JSONStringify
|
|
10
|
+
import { getMD5, JSONStringify } from '@steedos/metadata-core';
|
|
4
11
|
import { Trigger } from "./types";
|
|
12
|
+
import { registerProcessTrigger, loadProcessTriggers } from "@steedos/metadata-registrar";
|
|
5
13
|
|
|
6
14
|
const ENUM_WHEN = ['beforeDraftInsert', 'afterDraftInsert', 'beforeDraftSubmit', 'afterDraftSubmit', 'beforeStepSubmit', 'afterStepSubmit', 'cacluateNextStepUsers',
|
|
7
15
|
'beforeCancel', 'afterCancel', 'beforeTerminate', 'afterTerminate', 'beforeEnd', 'afterEnd'];
|
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2022-06-12 19:08:48
|
|
4
|
-
* @LastEditors:
|
|
5
|
-
* @LastEditTime: 2023-
|
|
4
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
+
* @LastEditTime: 2023-05-30 09:52:23
|
|
6
6
|
* @Description: 加载*.trigger.js文件注册为新版action trigger
|
|
7
7
|
*/
|
|
8
8
|
import * as _ from "underscore";
|
|
9
9
|
import * as path from "path";
|
|
10
|
-
import {
|
|
10
|
+
import { JSONStringify, getMD5 } from "@steedos/metadata-core";
|
|
11
|
+
import { loadObjectTriggers } from "@steedos/metadata-registrar";
|
|
12
|
+
|
|
13
|
+
|
|
11
14
|
|
|
12
15
|
const TRIGGERKEYS = ['beforeFind', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterFind', 'afterInsert', 'afterUpdate', 'afterDelete', 'afterFindOne', 'afterCount']
|
|
13
16
|
|
|
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
|
+
|
|
14
26
|
export async function load(broker: any, packagePath: string, packageServiceName: string) {
|
|
15
27
|
let actions = {};
|
|
16
28
|
let serviceName = `~triggers-${packageServiceName}`;
|
|
@@ -86,9 +98,9 @@ function generateActionTrigger(trigger) {
|
|
|
86
98
|
isInsert, isUpdate, isDelete, isFind, isBefore, isAfter, isFindOne, isCount,
|
|
87
99
|
id, doc, previousDoc,
|
|
88
100
|
// size,
|
|
89
|
-
userId, spaceId, objectName, query, data }:
|
|
101
|
+
userId, spaceId, objectName, query, data }: any = ctx.params;
|
|
90
102
|
|
|
91
|
-
const context:
|
|
103
|
+
const context: any = {
|
|
92
104
|
id,
|
|
93
105
|
userId,
|
|
94
106
|
spaceId,
|
|
@@ -129,6 +141,9 @@ function generateActionTrigger(trigger) {
|
|
|
129
141
|
|
|
130
142
|
if (when) {
|
|
131
143
|
const object = getObject(objectName);
|
|
144
|
+
if(!object){
|
|
145
|
+
return ;
|
|
146
|
+
}
|
|
132
147
|
await object.runTriggers(when, context);
|
|
133
148
|
return context;
|
|
134
149
|
}
|