@steedos/service-package-loader 2.2.54-beta.6 → 2.2.54
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 +48 -22
- package/package.json +5 -6
package/index.js
CHANGED
|
@@ -12,6 +12,7 @@ const _ = require('lodash');
|
|
|
12
12
|
const globby = require("globby");
|
|
13
13
|
const express = require('express');
|
|
14
14
|
const fs = require("fs");
|
|
15
|
+
const metaDataCore = require('@steedos/metadata-core');
|
|
15
16
|
/**
|
|
16
17
|
* @typedef {import('moleculer').Context} Context Moleculer's Context
|
|
17
18
|
*/
|
|
@@ -31,7 +32,7 @@ module.exports = {
|
|
|
31
32
|
/**
|
|
32
33
|
* Dependencies
|
|
33
34
|
*/
|
|
34
|
-
dependencies: ['metadata-server'],
|
|
35
|
+
dependencies: ['metadata-server', '~packages-project-server'],
|
|
35
36
|
|
|
36
37
|
/**
|
|
37
38
|
* Actions
|
|
@@ -45,22 +46,13 @@ module.exports = {
|
|
|
45
46
|
*/
|
|
46
47
|
events: {
|
|
47
48
|
"steedos-server.started": {
|
|
48
|
-
handler() {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
this.loadPackagePublicFiles(_path);
|
|
56
|
-
|
|
57
|
-
if(_path){
|
|
58
|
-
//此处延迟10秒加载流程文件,防止工作区初始化未完成
|
|
59
|
-
setTimeout(() => {
|
|
60
|
-
sendPackageFlowToDb(this.broker, _path)
|
|
61
|
-
processLoader.sendPackageProcessToDb(_path);
|
|
62
|
-
}, 10 * 1000)
|
|
63
|
-
}
|
|
49
|
+
async handler() {
|
|
50
|
+
await this.loadDataOnServiceStarted();
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"space.initialized": {
|
|
54
|
+
async handler() {
|
|
55
|
+
await this.loadDataOnServiceStarted();
|
|
64
56
|
}
|
|
65
57
|
}
|
|
66
58
|
},
|
|
@@ -69,6 +61,19 @@ module.exports = {
|
|
|
69
61
|
* Methods
|
|
70
62
|
*/
|
|
71
63
|
methods: {
|
|
64
|
+
loadDataOnServiceStarted: async function(){
|
|
65
|
+
let packageInfo = this.settings.packageInfo;
|
|
66
|
+
if (!packageInfo) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const { path : _path } = packageInfo;
|
|
70
|
+
|
|
71
|
+
this.loadPackagePublicFiles(_path);
|
|
72
|
+
if(_path){
|
|
73
|
+
sendPackageFlowToDb(this.broker, _path)
|
|
74
|
+
processLoader.sendPackageProcessToDb(_path);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
72
77
|
loadPackageMetadataFiles: async function (packagePath, name, datasourceName) {
|
|
73
78
|
this.broker.logger.debug(`Loading package from ${packagePath}`)
|
|
74
79
|
await Future.task(async () => {
|
|
@@ -112,7 +117,7 @@ module.exports = {
|
|
|
112
117
|
path.join(packagePath, 'main', 'default', 'services', "**", `*.service.js`),
|
|
113
118
|
"!" + path.join(packagePath, "**", "node_modules"),
|
|
114
119
|
];
|
|
115
|
-
const matchedPaths =
|
|
120
|
+
const matchedPaths = metaDataCore.syncMatchFiles(filePatten);
|
|
116
121
|
for await (const serviceFilePath of matchedPaths) {
|
|
117
122
|
try {
|
|
118
123
|
const service = objectql.loadService(this.broker, serviceFilePath);
|
|
@@ -151,6 +156,13 @@ module.exports = {
|
|
|
151
156
|
this.settings.loadedPackagePublicFiles = false;
|
|
152
157
|
}
|
|
153
158
|
}
|
|
159
|
+
},
|
|
160
|
+
async errorHandler(error) {
|
|
161
|
+
this.broker.logger.error(`[${this.name}] 启动失败: ${error.message}`);
|
|
162
|
+
await await this.broker.call(`~packages-project-server.disablePackage`, {
|
|
163
|
+
module: this.schema.packageName
|
|
164
|
+
})
|
|
165
|
+
return await this.broker.destroyService(this);
|
|
154
166
|
}
|
|
155
167
|
},
|
|
156
168
|
|
|
@@ -163,6 +175,7 @@ module.exports = {
|
|
|
163
175
|
},
|
|
164
176
|
|
|
165
177
|
merged(schema) {
|
|
178
|
+
schema.packageName = schema.name;
|
|
166
179
|
schema.name = `~packages-${schema.name}`;
|
|
167
180
|
},
|
|
168
181
|
|
|
@@ -170,6 +183,14 @@ module.exports = {
|
|
|
170
183
|
* Service started lifecycle event handler
|
|
171
184
|
*/
|
|
172
185
|
async started() {
|
|
186
|
+
if(this.beforeStart){
|
|
187
|
+
try {
|
|
188
|
+
await this.beforeStart()
|
|
189
|
+
} catch (error) {
|
|
190
|
+
return await this.errorHandler(error);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
173
194
|
console.time(`service ${this.name} started`)
|
|
174
195
|
let packageInfo = this.settings.packageInfo;
|
|
175
196
|
if (!packageInfo) {
|
|
@@ -182,8 +203,7 @@ module.exports = {
|
|
|
182
203
|
return;
|
|
183
204
|
}
|
|
184
205
|
this.broker.waitForServices("steedos-server").then(async () => {
|
|
185
|
-
|
|
186
|
-
processLoader.sendPackageProcessToDb(_path);
|
|
206
|
+
await this.loadDataOnServiceStarted()
|
|
187
207
|
});
|
|
188
208
|
|
|
189
209
|
await this.loadPackageMetadataFiles(_path, this.name, datasource);
|
|
@@ -198,10 +218,16 @@ module.exports = {
|
|
|
198
218
|
|
|
199
219
|
await this.loadPackageMetadataServices(_path);
|
|
200
220
|
|
|
201
|
-
await this.loadPackagePublicFiles(_path);
|
|
221
|
+
// await this.loadPackagePublicFiles(_path);
|
|
202
222
|
this.started = true;
|
|
203
223
|
console.timeEnd(`service ${this.name} started`)
|
|
204
|
-
|
|
224
|
+
if(this.afterStart){
|
|
225
|
+
try {
|
|
226
|
+
await this.afterStart();
|
|
227
|
+
} catch (error) {
|
|
228
|
+
this.broker.logger.error(`[${this.name}]: ${error.message}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
205
231
|
},
|
|
206
232
|
|
|
207
233
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-package-loader",
|
|
3
|
-
"version": "2.2.54
|
|
3
|
+
"version": "2.2.54",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,11 +10,10 @@
|
|
|
10
10
|
"author": "",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@steedos/core": "2.2.54
|
|
14
|
-
"@steedos/metadata-core": "2.2.54
|
|
15
|
-
"@steedos/objectql": "2.2.54
|
|
13
|
+
"@steedos/core": "2.2.54",
|
|
14
|
+
"@steedos/metadata-core": "2.2.54",
|
|
15
|
+
"@steedos/objectql": "2.2.54",
|
|
16
16
|
"clone": "^2.1.2",
|
|
17
|
-
"globby": "^11.1.0",
|
|
18
17
|
"moleculer": "^0.14.21",
|
|
19
18
|
"underscore": "^1.12.0"
|
|
20
19
|
},
|
|
@@ -25,5 +24,5 @@
|
|
|
25
24
|
"publishConfig": {
|
|
26
25
|
"access": "public"
|
|
27
26
|
},
|
|
28
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "c3c4c95a7010fd3a1af0cd41d999bff14718da1b"
|
|
29
28
|
}
|