@steedos/service-metadata-triggers 2.5.0-beta.8 → 2.5.0
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/constants.d.ts +1 -0
- package/lib/constants.js +5 -0
- package/lib/constants.js.map +1 -0
- package/lib/triggers.service.js +0 -53
- package/lib/triggers.service.js.map +1 -1
- package/lib/triggers2.service.d.ts +1 -0
- package/lib/triggers2.service.js +84 -0
- package/lib/triggers2.service.js.map +1 -0
- package/package.json +3 -4
- package/src/constants.ts +9 -0
- package/src/triggers.service.ts +0 -68
- package/src/triggers2.service.ts +132 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TRIGGERKEYS: string[];
|
package/lib/constants.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TRIGGERKEYS = void 0;
|
|
4
|
+
exports.TRIGGERKEYS = ['beforeFind', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterFind', 'afterInsert', 'afterUpdate', 'afterDelete', 'afterFindOne', 'afterCount'];
|
|
5
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAQa,QAAA,WAAW,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA"}
|
package/lib/triggers.service.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const actionsHandler_1 = require("./actionsHandler");
|
|
5
|
-
const _ = require("lodash");
|
|
6
|
-
const objectql_1 = require("@steedos/objectql");
|
|
7
5
|
module.exports = {
|
|
8
6
|
name: "triggers",
|
|
9
7
|
namespace: "steedos",
|
|
@@ -129,57 +127,6 @@ module.exports = {
|
|
|
129
127
|
});
|
|
130
128
|
}
|
|
131
129
|
},
|
|
132
|
-
"$packages.changed": {
|
|
133
|
-
handler(ctx) {
|
|
134
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
const { broker } = ctx;
|
|
136
|
-
const logger = this.logger;
|
|
137
|
-
const services = broker.registry.getServiceList({ skipInternal: true, withActions: true });
|
|
138
|
-
for (const service of services) {
|
|
139
|
-
const { name: serviceName, actions } = service;
|
|
140
|
-
for (const key in actions) {
|
|
141
|
-
if (Object.prototype.hasOwnProperty.call(actions, key)) {
|
|
142
|
-
const action = actions[key];
|
|
143
|
-
if (action.trigger) {
|
|
144
|
-
const { trigger, rawName, name } = action;
|
|
145
|
-
const { listenTo: objectName, when } = trigger;
|
|
146
|
-
if (objectName && when && _.isArray(when)) {
|
|
147
|
-
for (const w of when) {
|
|
148
|
-
if (!objectql_1._TRIGGERKEYS.includes(w)) {
|
|
149
|
-
logger.warn(`trigger when '${w}' is not supported.`);
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
const data = {
|
|
153
|
-
name: name,
|
|
154
|
-
listenTo: objectName,
|
|
155
|
-
when: w,
|
|
156
|
-
action: rawName
|
|
157
|
-
};
|
|
158
|
-
const meta = {
|
|
159
|
-
metadataServiceName: serviceName,
|
|
160
|
-
caller: {
|
|
161
|
-
nodeID: broker.nodeID + '',
|
|
162
|
-
service: {
|
|
163
|
-
name: serviceName
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
yield actionsHandler_1.ActionHandlers.add({
|
|
168
|
-
broker: ctx.broker,
|
|
169
|
-
params: {
|
|
170
|
-
data: data
|
|
171
|
-
},
|
|
172
|
-
meta: meta
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
130
|
},
|
|
184
131
|
methods: {},
|
|
185
132
|
created() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggers.service.js","sourceRoot":"","sources":["../src/triggers.service.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AACb,qDAAiE;
|
|
1
|
+
{"version":3,"file":"triggers.service.js","sourceRoot":"","sources":["../src/triggers.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const actionsHandler_1 = require("./actionsHandler");
|
|
5
|
+
const _ = require("lodash");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
module.exports = {
|
|
8
|
+
name: "triggers",
|
|
9
|
+
namespace: "steedos",
|
|
10
|
+
settings: {},
|
|
11
|
+
metadata: {
|
|
12
|
+
triggers: []
|
|
13
|
+
},
|
|
14
|
+
dependencies: ['metadata'],
|
|
15
|
+
actions: {
|
|
16
|
+
getAll: {
|
|
17
|
+
handler(ctx) {
|
|
18
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
return this.metadata.triggers;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
events: {
|
|
25
|
+
"$services.changed": {
|
|
26
|
+
handler(ctx) {
|
|
27
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const { broker } = ctx;
|
|
29
|
+
const logger = this.logger;
|
|
30
|
+
const triggers = [];
|
|
31
|
+
const services = broker.registry.getServiceList({ skipInternal: true, withActions: true });
|
|
32
|
+
for (const service of services) {
|
|
33
|
+
const { name: serviceName, actions } = service;
|
|
34
|
+
for (const key in actions) {
|
|
35
|
+
if (Object.prototype.hasOwnProperty.call(actions, key)) {
|
|
36
|
+
const action = actions[key];
|
|
37
|
+
if (action.trigger) {
|
|
38
|
+
const { trigger, rawName, name } = action;
|
|
39
|
+
const { listenTo, when } = trigger;
|
|
40
|
+
if (listenTo && when && _.isArray(when)) {
|
|
41
|
+
for (const w of when) {
|
|
42
|
+
if (!constants_1.TRIGGERKEYS.includes(w)) {
|
|
43
|
+
logger.warn(`trigger when '${w}' is not supported.`);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
triggers.push({
|
|
47
|
+
"nodeID": broker.nodeID + '',
|
|
48
|
+
"service": {
|
|
49
|
+
"name": serviceName
|
|
50
|
+
},
|
|
51
|
+
"metadata": {
|
|
52
|
+
"name": name,
|
|
53
|
+
"listenTo": listenTo,
|
|
54
|
+
"when": w,
|
|
55
|
+
"action": rawName
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
this.metadata.triggers = triggers;
|
|
65
|
+
broker.emit(`${actionsHandler_1.METADATA_TYPE}.change`, {});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
methods: {},
|
|
71
|
+
created() {
|
|
72
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
started() {
|
|
76
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
stopped() {
|
|
80
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=triggers2.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggers2.service.js","sourceRoot":"","sources":["../src/triggers2.service.ts"],"names":[],"mappings":"AAOA,YAAY,CAAC;;;AACb,qDAAiD;AACjD,4BAA6B;AAC7B,2CAA0C;AAE1C,MAAM,CAAC,OAAO,GAAG;IACb,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,SAAS;IAIpB,QAAQ,EAAE,EAET;IAED,QAAQ,EAAE;QACN,QAAQ,EAAE,EAAE;KACf;IAKD,YAAY,EAAE,CAAC,UAAU,CAAC;IAK1B,OAAO,EAAE;QAEL,MAAM,EAAE;YACE,OAAO,CAAC,GAAG;;oBACb,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAClC,CAAC;aAAA;SACJ;KAEJ;IAED,MAAM,EAAE;QAIJ,mBAAmB,EAAE;YACX,OAAO,CAAC,GAAG;;oBACb,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;oBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;oBAC1B,MAAM,QAAQ,GAAG,EAAE,CAAA;oBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;oBAC1F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;wBAC5B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;wBAW9C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;4BACvB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;gCACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gCAC5B,IAAI,MAAM,CAAC,OAAO,EAAE;oCAChB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;oCACzC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;oCAClC,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wCACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;4CAClB,IAAI,CAAC,uBAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gDAC1B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;gDACpD,SAAQ;6CACX;4CACD,QAAQ,CAAC,IAAI,CAAC;gDACV,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,EAAE;gDAC5B,SAAS,EAAE;oDACP,MAAM,EAAE,WAAW;iDACtB;gDACD,UAAU,EAAE;oDACR,MAAM,EAAE,IAAI;oDACZ,UAAU,EAAE,QAAQ;oDACpB,MAAM,EAAE,CAAC;oDACT,QAAQ,EAAE,OAAO;iDACpB;6CACJ,CAAC,CAAA;yCACL;qCAEJ;iCAEJ;6BACJ;yBACJ;qBACJ;oBACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAA;oBACjC,MAAM,CAAC,IAAI,CAAC,GAAG,8BAAa,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC/C,CAAC;aAAA;SACJ;KACJ;IAKD,OAAO,EAAE,EAER;IAKK,OAAO;;QAEb,CAAC;KAAA;IAKK,OAAO;;QAEb,CAAC;KAAA;IAKK,OAAO;;QAEb,CAAC;KAAA;CACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-metadata-triggers",
|
|
3
|
-
"version": "2.5.0
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "",
|
|
5
|
-
"main": "lib/
|
|
5
|
+
"main": "lib/triggers2.service.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "moleculer-runner --repl --hot lib/services/**/*.service.js",
|
|
8
8
|
"start": "yarn build && moleculer-runner --repl --hot lib/triggers.service.js",
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
"author": "",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@steedos/objectql": "2.5.0-beta.8",
|
|
23
22
|
"dotenv-flow": "^3.1.0",
|
|
24
23
|
"ioredis": "^4.22.0",
|
|
25
24
|
"lodash": "^4.17.21",
|
|
@@ -34,5 +33,5 @@
|
|
|
34
33
|
"publishConfig": {
|
|
35
34
|
"access": "public"
|
|
36
35
|
},
|
|
37
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "c4b366d1366ab52eb53da1a3ff4a80b16fd73cc0"
|
|
38
37
|
}
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: sunhaolin@hotoa.com
|
|
3
|
+
* @Date: 2023-04-21 11:24:37
|
|
4
|
+
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
+
* @LastEditTime: 2023-04-21 11:25:17
|
|
6
|
+
* @Description:
|
|
7
|
+
*/
|
|
8
|
+
// 触发器类型
|
|
9
|
+
export const TRIGGERKEYS = ['beforeFind', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterFind', 'afterInsert', 'afterUpdate', 'afterDelete', 'afterFindOne', 'afterCount']
|
package/src/triggers.service.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { ActionHandlers, METADATA_TYPE } from './actionsHandler';
|
|
3
|
-
import _ = require('lodash');
|
|
4
|
-
import { _TRIGGERKEYS } from "@steedos/objectql"
|
|
5
3
|
|
|
6
4
|
module.exports = {
|
|
7
5
|
name: "triggers",
|
|
@@ -191,72 +189,6 @@ module.exports = {
|
|
|
191
189
|
return await ActionHandlers.refresh(ctx);
|
|
192
190
|
}
|
|
193
191
|
},
|
|
194
|
-
/**
|
|
195
|
-
* 监听 $services.changed 事件,扫描services下的actions,对于其中定义的trigger参数进行解析,注入到trigger注册中心。
|
|
196
|
-
*/
|
|
197
|
-
"$packages.changed": {
|
|
198
|
-
async handler(ctx) {
|
|
199
|
-
const { broker } = ctx
|
|
200
|
-
const logger = this.logger
|
|
201
|
-
const services = broker.registry.getServiceList({ skipInternal: true, withActions: true })
|
|
202
|
-
for (const service of services) {
|
|
203
|
-
const { name: serviceName, actions } = service
|
|
204
|
-
/**
|
|
205
|
-
actions 结构
|
|
206
|
-
{
|
|
207
|
-
'test.triggerSpaceUsers': {
|
|
208
|
-
trigger: { listenTo: 'test__c', when: [Array] },
|
|
209
|
-
rawName: 'triggerSpaceUsers',
|
|
210
|
-
name: 'test.triggerSpaceUsers'
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
*/
|
|
214
|
-
for (const key in actions) {
|
|
215
|
-
if (Object.prototype.hasOwnProperty.call(actions, key)) {
|
|
216
|
-
const action = actions[key];
|
|
217
|
-
if (action.trigger) {
|
|
218
|
-
const { trigger, rawName, name } = action
|
|
219
|
-
const { listenTo: objectName, when } = trigger
|
|
220
|
-
if (objectName && when && _.isArray(when)) {
|
|
221
|
-
for (const w of when) {
|
|
222
|
-
if (!_TRIGGERKEYS.includes(w)) {
|
|
223
|
-
logger.warn(`trigger when '${w}' is not supported.`)
|
|
224
|
-
continue
|
|
225
|
-
}
|
|
226
|
-
const data = {
|
|
227
|
-
name: name,
|
|
228
|
-
listenTo: objectName,
|
|
229
|
-
when: w,
|
|
230
|
-
action: rawName
|
|
231
|
-
};
|
|
232
|
-
const meta = {
|
|
233
|
-
metadataServiceName: serviceName,
|
|
234
|
-
caller: {
|
|
235
|
-
nodeID: broker.nodeID + '',
|
|
236
|
-
service: {
|
|
237
|
-
name: serviceName
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
};
|
|
241
|
-
await ActionHandlers.add({
|
|
242
|
-
broker: ctx.broker,
|
|
243
|
-
params: {
|
|
244
|
-
data: data
|
|
245
|
-
},
|
|
246
|
-
meta: meta
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
},
|
|
260
192
|
},
|
|
261
193
|
|
|
262
194
|
/**
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: sunhaolin@hotoa.com
|
|
3
|
+
* @Date: 2023-04-11 11:50:53
|
|
4
|
+
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
+
* @LastEditTime: 2023-04-20 10:08:46
|
|
6
|
+
* @Description:
|
|
7
|
+
*/
|
|
8
|
+
"use strict";
|
|
9
|
+
import { METADATA_TYPE } from './actionsHandler';
|
|
10
|
+
import _ = require('lodash');
|
|
11
|
+
import { TRIGGERKEYS } from "./constants";
|
|
12
|
+
|
|
13
|
+
module.exports = {
|
|
14
|
+
name: "triggers",
|
|
15
|
+
namespace: "steedos",
|
|
16
|
+
/**
|
|
17
|
+
* Settings
|
|
18
|
+
*/
|
|
19
|
+
settings: {
|
|
20
|
+
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
metadata: {
|
|
24
|
+
triggers: []
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Dependencies
|
|
29
|
+
*/
|
|
30
|
+
dependencies: ['metadata'],
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Actions
|
|
34
|
+
*/
|
|
35
|
+
actions: {
|
|
36
|
+
|
|
37
|
+
getAll: {
|
|
38
|
+
async handler(ctx) {
|
|
39
|
+
return this.metadata.triggers;
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
events: {
|
|
46
|
+
/**
|
|
47
|
+
* 监听 $services.changed 事件,扫描services下的actions,对于其中定义的trigger参数进行解析,统一给this.metadata赋值。
|
|
48
|
+
*/
|
|
49
|
+
"$services.changed": {
|
|
50
|
+
async handler(ctx) {
|
|
51
|
+
const { broker } = ctx
|
|
52
|
+
const logger = this.logger
|
|
53
|
+
const triggers = []
|
|
54
|
+
const services = broker.registry.getServiceList({ skipInternal: true, withActions: true })
|
|
55
|
+
for (const service of services) {
|
|
56
|
+
const { name: serviceName, actions } = service
|
|
57
|
+
/**
|
|
58
|
+
actions 结构
|
|
59
|
+
{
|
|
60
|
+
'test.triggerSpaceUsers': {
|
|
61
|
+
trigger: { listenTo: 'test__c', when: [Array] },
|
|
62
|
+
rawName: 'triggerSpaceUsers',
|
|
63
|
+
name: 'test.triggerSpaceUsers'
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
*/
|
|
67
|
+
for (const key in actions) {
|
|
68
|
+
if (Object.prototype.hasOwnProperty.call(actions, key)) {
|
|
69
|
+
const action = actions[key];
|
|
70
|
+
if (action.trigger) {
|
|
71
|
+
const { trigger, rawName, name } = action
|
|
72
|
+
const { listenTo, when } = trigger
|
|
73
|
+
if (listenTo && when && _.isArray(when)) {
|
|
74
|
+
for (const w of when) {
|
|
75
|
+
if (!TRIGGERKEYS.includes(w)) {
|
|
76
|
+
logger.warn(`trigger when '${w}' is not supported.`)
|
|
77
|
+
continue
|
|
78
|
+
}
|
|
79
|
+
triggers.push({
|
|
80
|
+
"nodeID": broker.nodeID + '',
|
|
81
|
+
"service": {
|
|
82
|
+
"name": serviceName
|
|
83
|
+
},
|
|
84
|
+
"metadata": {
|
|
85
|
+
"name": name,
|
|
86
|
+
"listenTo": listenTo,
|
|
87
|
+
"when": w,
|
|
88
|
+
"action": rawName
|
|
89
|
+
}
|
|
90
|
+
})
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
this.metadata.triggers = triggers
|
|
100
|
+
broker.emit(`${METADATA_TYPE}.change`, {});
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Methods
|
|
107
|
+
*/
|
|
108
|
+
methods: {
|
|
109
|
+
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Service created lifecycle event handler
|
|
114
|
+
*/
|
|
115
|
+
async created() {
|
|
116
|
+
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Service started lifecycle event handler
|
|
121
|
+
*/
|
|
122
|
+
async started() {
|
|
123
|
+
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Service stopped lifecycle event handler
|
|
128
|
+
*/
|
|
129
|
+
async stopped() {
|
|
130
|
+
|
|
131
|
+
}
|
|
132
|
+
};
|