@steedos/service-metadata-triggers 2.5.0-beta.1 → 2.5.0-beta.11
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/triggers.service.js
CHANGED
|
@@ -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 objectql_1 = require("@steedos/objectql");
|
|
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 (!objectql_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,gDAAgD;AAEhD,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,uBAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gDAC3B,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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-metadata-triggers",
|
|
3
|
-
"version": "2.5.0-beta.
|
|
3
|
+
"version": "2.5.0-beta.11",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/triggers.service.js",
|
|
6
6
|
"scripts": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"author": "",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
|
+
"@steedos/objectql": "2.5.0-beta.11",
|
|
22
23
|
"dotenv-flow": "^3.1.0",
|
|
23
24
|
"ioredis": "^4.22.0",
|
|
24
25
|
"lodash": "^4.17.21",
|
|
@@ -33,5 +34,5 @@
|
|
|
33
34
|
"publishConfig": {
|
|
34
35
|
"access": "public"
|
|
35
36
|
},
|
|
36
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "72a894aab5a9d4e277d0464decda0ba39f2f50bb"
|
|
37
38
|
}
|
package/src/triggers.service.ts
CHANGED
|
@@ -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-11 13:44:55
|
|
6
|
+
* @Description:
|
|
7
|
+
*/
|
|
8
|
+
"use strict";
|
|
9
|
+
import { METADATA_TYPE } from './actionsHandler';
|
|
10
|
+
import _ = require('lodash');
|
|
11
|
+
import { _TRIGGERKEYS } from "@steedos/objectql"
|
|
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
|
+
};
|