@steedos/service-package-loader 2.1.89 → 2.1.92
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 +32 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/processTriggerLoader/index.d.ts +1 -0
- package/lib/processTriggerLoader/index.js +39 -0
- package/lib/processTriggerLoader/index.js.map +1 -0
- package/lib/processTriggerLoader/types/index.d.ts +1 -0
- package/lib/processTriggerLoader/types/index.js +5 -0
- package/lib/processTriggerLoader/types/index.js.map +1 -0
- package/lib/processTriggerLoader/types/trigger.d.ts +6 -0
- package/lib/processTriggerLoader/types/trigger.js +3 -0
- package/lib/processTriggerLoader/types/trigger.js.map +1 -0
- package/package.json +4 -4
- package/src/index.ts +2 -1
- package/src/processTriggerLoader/index.ts +37 -0
- package/src/processTriggerLoader/types/index.ts +1 -0
- package/src/processTriggerLoader/types/trigger.ts +6 -0
package/index.js
CHANGED
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
const objectql = require('@steedos/objectql');
|
|
4
4
|
const core = require('@steedos/core');
|
|
5
5
|
const triggerLoader = require('./lib').triggerLoader;
|
|
6
|
+
const processTriggerLoader = require('./lib').processTriggerLoader;
|
|
6
7
|
const sendPackageFlowToDb = require('./lib/loadPackageFlow').sendPackageFlowToDb;
|
|
7
8
|
const path = require('path');
|
|
8
9
|
const Future = require('fibers/future');
|
|
9
10
|
const _ = require('lodash');
|
|
11
|
+
const globby = require("globby");
|
|
10
12
|
/**
|
|
11
13
|
* @typedef {import('moleculer').Context} Context Moleculer's Context
|
|
12
14
|
*/
|
|
@@ -71,6 +73,7 @@ module.exports = {
|
|
|
71
73
|
await objectql.loadStandardMetadata(name, datasourceName);
|
|
72
74
|
await objectql.addAllConfigFiles(packagePath, datasourceName, name);
|
|
73
75
|
await triggerLoader.load(this.broker, packagePath, name);
|
|
76
|
+
await processTriggerLoader.load(this.broker, packagePath, name);
|
|
74
77
|
core.loadClientScripts();
|
|
75
78
|
let routersData = objectql.loadRouters(packagePath);
|
|
76
79
|
let oldRoutersInfo = await this.broker.call(`@steedos/service-packages.getPackageRoutersInfo`, {packageName: name})
|
|
@@ -93,6 +96,24 @@ module.exports = {
|
|
|
93
96
|
await this.broker.call(`@steedos/service-packages.setPackageRoutersInfo`, {packageName: name, data: routersInfo})
|
|
94
97
|
return;
|
|
95
98
|
}).promise();
|
|
99
|
+
},
|
|
100
|
+
loadPackageMetadataServices: async function (packagePath) {
|
|
101
|
+
const filePatten = [
|
|
102
|
+
path.join(packagePath, 'main', 'default', 'services', `*.service.js`),
|
|
103
|
+
"!" + path.join(packagePath, "**", "node_modules"),
|
|
104
|
+
];
|
|
105
|
+
const matchedPaths = globby.sync(filePatten);
|
|
106
|
+
for await (const serviceFilePath of matchedPaths) {
|
|
107
|
+
try {
|
|
108
|
+
const service = this.broker.loadService(serviceFilePath);
|
|
109
|
+
this.packageServices.push(service);
|
|
110
|
+
if (!this.broker.started) {
|
|
111
|
+
this.broker._restartService(service)
|
|
112
|
+
}
|
|
113
|
+
} catch (error) {
|
|
114
|
+
this.logger.error(error)
|
|
115
|
+
}
|
|
116
|
+
}
|
|
96
117
|
}
|
|
97
118
|
},
|
|
98
119
|
|
|
@@ -100,6 +121,7 @@ module.exports = {
|
|
|
100
121
|
* Service created lifecycle event handler
|
|
101
122
|
*/
|
|
102
123
|
created() {
|
|
124
|
+
this.packageServices = []; //此属性不能放到settings下,否则会导致mo clone settings 时 内存溢出。
|
|
103
125
|
this.logger.debug('service package loader created!!!');
|
|
104
126
|
},
|
|
105
127
|
|
|
@@ -135,6 +157,9 @@ module.exports = {
|
|
|
135
157
|
|
|
136
158
|
}
|
|
137
159
|
}
|
|
160
|
+
|
|
161
|
+
await this.loadPackageMetadataServices(_path);
|
|
162
|
+
|
|
138
163
|
console.timeEnd(`service ${this.name} started`)
|
|
139
164
|
// console.log(`service ${this.name} started`);
|
|
140
165
|
},
|
|
@@ -143,6 +168,13 @@ module.exports = {
|
|
|
143
168
|
* Service stopped lifecycle event handler
|
|
144
169
|
*/
|
|
145
170
|
async stopped() {
|
|
171
|
+
for await (const packageService of this.packageServices) {
|
|
172
|
+
try {
|
|
173
|
+
await this.broker.destroyService(packageService);
|
|
174
|
+
} catch (error) {
|
|
175
|
+
this.logger.errorr(error);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
146
178
|
this.broker.call(`@steedos/service-packages.offline`, {serviceInfo: {name: this.name, nodeID: this.broker.nodeID, instanceID: this.broker.instanceID}})
|
|
147
179
|
await this.broker.call(`metadata.refreshServiceMetadatas`, { offlinePackageServices: [`${this.broker.nodeID}.${this.name}`] });
|
|
148
180
|
console.log(`service ${this.name} stopped`);
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.triggerLoader = void 0;
|
|
3
|
+
exports.processTriggerLoader = exports.triggerLoader = void 0;
|
|
4
4
|
exports.triggerLoader = require("./triggerLoader");
|
|
5
|
+
exports.processTriggerLoader = require("./processTriggerLoader");
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAAgD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,iEAA8D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function load(broker: any, packagePath: string, packageServiceName: string): Promise<void>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.load = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const _ = require("underscore");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const objectql_1 = require("@steedos/objectql");
|
|
8
|
+
const ENUM_WHEN = ['beforeDraftInsert', 'afterDraftInsert', 'beforeDraftSubmit', 'afterDraftSubmit', 'beforeStepSubmit', 'afterStepSubmit', 'cacluateNextStepUsers',
|
|
9
|
+
'beforeCancel', 'afterCancel', 'beforeTerminate', 'afterTerminate', 'beforeEnd', 'afterEnd'];
|
|
10
|
+
const LISTENTO_ALL_FLOWS = 'LISTENTO_ALL_FLOWS';
|
|
11
|
+
function load(broker, packagePath, packageServiceName) {
|
|
12
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
13
|
+
let filePath = path.join(packagePath, "**");
|
|
14
|
+
let wTriggers = (0, objectql_1.loadProcessTriggers)(filePath);
|
|
15
|
+
if (_.isEmpty(wTriggers)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
for (const wt of wTriggers) {
|
|
19
|
+
if (_.isString(wt.listenTo)) {
|
|
20
|
+
for (const when of ENUM_WHEN) {
|
|
21
|
+
let handler = wt[when];
|
|
22
|
+
if (!handler) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
let name = wt.name || (0, objectql_1.getMD5)((0, objectql_1.JSONStringify)(wt));
|
|
26
|
+
let config = {
|
|
27
|
+
name: name,
|
|
28
|
+
"listenTo": wt.listenTo == '*' ? LISTENTO_ALL_FLOWS : wt.listenTo,
|
|
29
|
+
"when": when,
|
|
30
|
+
"handler": handler.toString()
|
|
31
|
+
};
|
|
32
|
+
yield objectql_1.registerProcessTrigger.register(broker, packageServiceName, config);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
exports.load = load;
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './trigger';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/processTriggerLoader/types/index.ts"],"names":[],"mappings":";;;AAAA,yDAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../../src/processTriggerLoader/types/trigger.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-package-loader",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.92",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"author": "",
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@steedos/core": "2.1.
|
|
15
|
-
"@steedos/objectql": "2.1.
|
|
14
|
+
"@steedos/core": "2.1.92",
|
|
15
|
+
"@steedos/objectql": "2.1.92",
|
|
16
16
|
"clone": "^2.1.2",
|
|
17
17
|
"globby": "^11.0.2",
|
|
18
18
|
"moleculer": "^0.14.12",
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "b4f200efd338673eabbcccc0cc23f0f9c662eee2"
|
|
36
36
|
}
|
package/src/index.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * as triggerLoader from "./triggerLoader"
|
|
1
|
+
export * as triggerLoader from "./triggerLoader"
|
|
2
|
+
export * as processTriggerLoader from "./processTriggerLoader"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as _ from "underscore";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { getMD5, JSONStringify, loadProcessTriggers, registerProcessTrigger } from "@steedos/objectql";
|
|
4
|
+
import { Trigger } from "./types";
|
|
5
|
+
|
|
6
|
+
const ENUM_WHEN = ['beforeDraftInsert', 'afterDraftInsert', 'beforeDraftSubmit', 'afterDraftSubmit', 'beforeStepSubmit', 'afterStepSubmit', 'cacluateNextStepUsers',
|
|
7
|
+
'beforeCancel', 'afterCancel', 'beforeTerminate', 'afterTerminate', 'beforeEnd', 'afterEnd'];
|
|
8
|
+
const LISTENTO_ALL_FLOWS = 'LISTENTO_ALL_FLOWS';
|
|
9
|
+
|
|
10
|
+
export async function load(broker: any, packagePath: string, packageServiceName: string) {
|
|
11
|
+
let filePath = path.join(packagePath, "**");
|
|
12
|
+
let wTriggers = loadProcessTriggers(filePath);
|
|
13
|
+
if (_.isEmpty(wTriggers)) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
for (const wt of wTriggers) {
|
|
17
|
+
|
|
18
|
+
if (_.isString(wt.listenTo)) {
|
|
19
|
+
for (const when of ENUM_WHEN) {
|
|
20
|
+
let handler = wt[when];
|
|
21
|
+
if (!handler) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
let name = wt.name || getMD5(JSONStringify(wt));
|
|
25
|
+
let config: Trigger = {
|
|
26
|
+
name: name,
|
|
27
|
+
"listenTo": wt.listenTo == '*' ? LISTENTO_ALL_FLOWS : wt.listenTo,
|
|
28
|
+
"when": when,
|
|
29
|
+
"handler": handler.toString()
|
|
30
|
+
}
|
|
31
|
+
await registerProcessTrigger.register(broker, packageServiceName, config);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './trigger';
|