@steedos/metadata-registrar 3.0.13-beta.9 → 3.0.13
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/config-register/actions.js +43 -73
- package/lib/config-register/actions.js.map +1 -1
- package/lib/config-register/app.js +3 -4
- package/lib/config-register/app.js.map +1 -1
- package/lib/config-register/button.js +10 -26
- package/lib/config-register/button.js.map +1 -1
- package/lib/config-register/chart.js +3 -4
- package/lib/config-register/chart.js.map +1 -1
- package/lib/config-register/client_script.js +8 -9
- package/lib/config-register/client_script.js.map +1 -1
- package/lib/config-register/core.js +33 -34
- package/lib/config-register/core.js.map +1 -1
- package/lib/config-register/dashboard.js +3 -4
- package/lib/config-register/dashboard.js.map +1 -1
- package/lib/config-register/field.js +14 -30
- package/lib/config-register/field.js.map +1 -1
- package/lib/config-register/index.js +15 -16
- package/lib/config-register/index.js.map +1 -1
- package/lib/config-register/layout.js +14 -32
- package/lib/config-register/layout.js.map +1 -1
- package/lib/config-register/listview.js +11 -27
- package/lib/config-register/listview.js.map +1 -1
- package/lib/config-register/object_translations.js +10 -11
- package/lib/config-register/object_translations.js.map +1 -1
- package/lib/config-register/package.js +170 -250
- package/lib/config-register/package.js.map +1 -1
- package/lib/config-register/page.js +3 -4
- package/lib/config-register/page.js.map +1 -1
- package/lib/config-register/permission.js +21 -49
- package/lib/config-register/permission.js.map +1 -1
- package/lib/config-register/permissionset.js +33 -46
- package/lib/config-register/permissionset.js.map +1 -1
- package/lib/config-register/preload_data.js +102 -186
- package/lib/config-register/preload_data.js.map +1 -1
- package/lib/config-register/profile.js +36 -49
- package/lib/config-register/profile.js.map +1 -1
- package/lib/config-register/query.js +3 -4
- package/lib/config-register/query.js.map +1 -1
- package/lib/config-register/question.js +3 -4
- package/lib/config-register/question.js.map +1 -1
- package/lib/config-register/restrictionRules.js +3 -4
- package/lib/config-register/restrictionRules.js.map +1 -1
- package/lib/config-register/shareRules.js +3 -4
- package/lib/config-register/shareRules.js.map +1 -1
- package/lib/config-register/tab.js +4 -5
- package/lib/config-register/tab.js.map +1 -1
- package/lib/config-register/tabs.js +6 -7
- package/lib/config-register/tabs.js.map +1 -1
- package/lib/config-register/translations.js +13 -14
- package/lib/config-register/translations.js.map +1 -1
- package/lib/config-register/validation_rule.js +16 -21
- package/lib/config-register/validation_rule.js.map +1 -1
- package/lib/config-register/workflow.js +96 -131
- package/lib/config-register/workflow.js.map +1 -1
- package/lib/index.js +408 -522
- package/lib/index.js.map +1 -1
- package/lib/metadata-register/_base.js +52 -64
- package/lib/metadata-register/_base.js.map +1 -1
- package/lib/metadata-register/app.js +21 -30
- package/lib/metadata-register/app.js.map +1 -1
- package/lib/metadata-register/index.js +74 -125
- package/lib/metadata-register/index.js.map +1 -1
- package/lib/metadata-register/layout.js +25 -36
- package/lib/metadata-register/layout.js.map +1 -1
- package/lib/metadata-register/object.js +59 -72
- package/lib/metadata-register/object.js.map +1 -1
- package/lib/metadata-register/permissionset.js +18 -25
- package/lib/metadata-register/permissionset.js.map +1 -1
- package/lib/metadata-register/profile.js +18 -25
- package/lib/metadata-register/profile.js.map +1 -1
- package/lib/metadata-register/tabs.js +25 -36
- package/lib/metadata-register/tabs.js.map +1 -1
- package/lib/utils/convert.js +4 -4
- package/lib/utils/convert.js.map +1 -1
- package/package.json +4 -4
package/lib/index.js
CHANGED
|
@@ -59,69 +59,74 @@ tslib_1.__exportStar(require("./metadata-register/dashboard"), exports);
|
|
|
59
59
|
tslib_1.__exportStar(require("./metadata-register/print"), exports);
|
|
60
60
|
let savePackageServicesTimeoutID = null;
|
|
61
61
|
const useScan = true;
|
|
62
|
-
function redisScanKeys(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
keys.push(resultKeys[i]);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
stream.on("end", function () {
|
|
81
|
-
resolve(keys);
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
let nodes = redisClient.nodes("master");
|
|
86
|
-
let allPromises = [];
|
|
87
|
-
for (let index = 0; index < nodes.length; index++) {
|
|
88
|
-
const node = nodes[index];
|
|
89
|
-
allPromises.push(new Promise((res, reject) => {
|
|
90
|
-
var keys = [];
|
|
91
|
-
node
|
|
92
|
-
.scanStream({
|
|
93
|
-
match: match,
|
|
94
|
-
count: count,
|
|
95
|
-
})
|
|
96
|
-
.on("data", (resultKeys) => {
|
|
97
|
-
for (var i = 0; i < resultKeys.length; i++) {
|
|
98
|
-
keys.push(resultKeys[i]);
|
|
99
|
-
}
|
|
100
|
-
})
|
|
101
|
-
.on("end", () => {
|
|
102
|
-
res(keys);
|
|
103
|
-
});
|
|
104
|
-
}));
|
|
62
|
+
async function redisScanKeys(redisClient, match, count = 10000) {
|
|
63
|
+
if (!useScan) {
|
|
64
|
+
return await redisClient.keys(match);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return await new Promise((resolve, reject) => {
|
|
68
|
+
if (_.isFunction(redisClient.scanStream)) {
|
|
69
|
+
var stream = redisClient.scanStream({
|
|
70
|
+
match: match,
|
|
71
|
+
count: count,
|
|
72
|
+
});
|
|
73
|
+
var keys = [];
|
|
74
|
+
stream.on("data", function (resultKeys) {
|
|
75
|
+
for (var i = 0; i < resultKeys.length; i++) {
|
|
76
|
+
keys.push(resultKeys[i]);
|
|
105
77
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
78
|
+
});
|
|
79
|
+
stream.on("end", function () {
|
|
80
|
+
resolve(keys);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
let nodes = redisClient.nodes("master");
|
|
85
|
+
let allPromises = [];
|
|
86
|
+
for (let index = 0; index < nodes.length; index++) {
|
|
87
|
+
const node = nodes[index];
|
|
88
|
+
allPromises.push(new Promise((res, reject) => {
|
|
89
|
+
var keys = [];
|
|
90
|
+
node
|
|
91
|
+
.scanStream({
|
|
92
|
+
match: match,
|
|
93
|
+
count: count,
|
|
94
|
+
})
|
|
95
|
+
.on("data", (resultKeys) => {
|
|
96
|
+
for (var i = 0; i < resultKeys.length; i++) {
|
|
97
|
+
keys.push(resultKeys[i]);
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
.on("end", () => {
|
|
101
|
+
res(keys);
|
|
102
|
+
});
|
|
103
|
+
}));
|
|
113
104
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
105
|
+
Promise.all(allPromises).then((values) => {
|
|
106
|
+
let joinedKeys = [];
|
|
107
|
+
for (const keys of values) {
|
|
108
|
+
joinedKeys = joinedKeys.concat(keys);
|
|
109
|
+
}
|
|
110
|
+
resolve(joinedKeys);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
117
115
|
}
|
|
118
116
|
function transformMetadata(params, meta) {
|
|
119
|
-
return
|
|
117
|
+
return {
|
|
118
|
+
...meta.caller,
|
|
119
|
+
metadata: params.data,
|
|
120
|
+
timestamp: new Date().getTime(),
|
|
121
|
+
};
|
|
120
122
|
}
|
|
121
123
|
function transformMetadatas(params, meta) {
|
|
122
124
|
const data = {};
|
|
123
125
|
(0, lodash_1.map)(params.data, (value, key) => {
|
|
124
|
-
data[key] =
|
|
126
|
+
data[key] = {
|
|
127
|
+
...meta.caller,
|
|
128
|
+
metadata: value,
|
|
129
|
+
};
|
|
125
130
|
});
|
|
126
131
|
return data;
|
|
127
132
|
}
|
|
@@ -131,550 +136,431 @@ function getKey(key, keyPrefix) {
|
|
|
131
136
|
function getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName) {
|
|
132
137
|
return `$${nodeID}.${SERVICE_METADATA_PREFIX}.${serviceName}.${metadataType}.${metadataApiName}`;
|
|
133
138
|
}
|
|
134
|
-
function addServiceMetadata(broker, params, meta) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
139
|
+
async function addServiceMetadata(broker, params, meta) {
|
|
140
|
+
const { nodeID } = meta.caller || { nodeID: undefined };
|
|
141
|
+
if (!nodeID) {
|
|
142
|
+
console.log(`addServiceMetadata meta`, meta);
|
|
143
|
+
}
|
|
144
|
+
const { metadataType, metadataApiName, metadataServiceName } = meta || {
|
|
145
|
+
metadataType: undefined,
|
|
146
|
+
metadataApiName: undefined,
|
|
147
|
+
metadataServiceName: undefined,
|
|
148
|
+
};
|
|
149
|
+
if (!metadataServiceName) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const key = getServiceMetadataCacherKey(nodeID, metadataServiceName, metadataType, metadataApiName);
|
|
153
|
+
await broker.cacher.set(key, {
|
|
154
|
+
nodeIds: [nodeID],
|
|
155
|
+
metadataType,
|
|
156
|
+
metadataApiName,
|
|
157
|
+
metadataServiceName,
|
|
158
|
+
metadata: params.data,
|
|
159
|
+
timestamp: new Date().getTime(),
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
async function maddServiceMetadata(broker, params, meta) {
|
|
163
|
+
const { nodeID } = meta.caller || { nodeID: undefined };
|
|
164
|
+
if (!nodeID) {
|
|
165
|
+
console.log(`addServiceMetadata meta`, meta);
|
|
166
|
+
}
|
|
167
|
+
const { metadataType, metadataServiceName } = meta || {
|
|
168
|
+
metadataType: undefined,
|
|
169
|
+
metadataServiceName: undefined,
|
|
170
|
+
};
|
|
171
|
+
const { data } = params;
|
|
172
|
+
if (!metadataServiceName || !data) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const mdata = {};
|
|
176
|
+
(0, lodash_1.map)(data, (value, metadataApiName) => {
|
|
177
|
+
mdata[getServiceMetadataCacherKey(nodeID, metadataServiceName, metadataType, metadataApiName)] = {
|
|
150
178
|
nodeIds: [nodeID],
|
|
151
179
|
metadataType,
|
|
152
180
|
metadataApiName,
|
|
153
181
|
metadataServiceName,
|
|
154
|
-
metadata:
|
|
155
|
-
timestamp: new Date().getTime(),
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
function maddServiceMetadata(broker, params, meta) {
|
|
160
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
161
|
-
const { nodeID } = meta.caller || { nodeID: undefined };
|
|
162
|
-
if (!nodeID) {
|
|
163
|
-
console.log(`addServiceMetadata meta`, meta);
|
|
164
|
-
}
|
|
165
|
-
const { metadataType, metadataServiceName } = meta || {
|
|
166
|
-
metadataType: undefined,
|
|
167
|
-
metadataServiceName: undefined,
|
|
182
|
+
metadata: value,
|
|
168
183
|
};
|
|
169
|
-
const { data } = params;
|
|
170
|
-
if (!metadataServiceName || !data) {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
const mdata = {};
|
|
174
|
-
(0, lodash_1.map)(data, (value, metadataApiName) => {
|
|
175
|
-
mdata[getServiceMetadataCacherKey(nodeID, metadataServiceName, metadataType, metadataApiName)] = {
|
|
176
|
-
nodeIds: [nodeID],
|
|
177
|
-
metadataType,
|
|
178
|
-
metadataApiName,
|
|
179
|
-
metadataServiceName,
|
|
180
|
-
metadata: value,
|
|
181
|
-
};
|
|
182
|
-
});
|
|
183
|
-
yield mset(broker, mdata);
|
|
184
184
|
});
|
|
185
|
+
await mset(broker, mdata);
|
|
185
186
|
}
|
|
186
|
-
function mget(broker, keys) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
187
|
+
async function mget(broker, keys) {
|
|
188
|
+
if (!keys || keys.length == 0) {
|
|
189
|
+
return [];
|
|
190
|
+
}
|
|
191
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
192
|
+
const values = await broker.cacher.client.mget(...(0, lodash_1.map)(keys, (key) => {
|
|
193
|
+
if (key && !key.startsWith(keyPrefix)) {
|
|
194
|
+
return `${keyPrefix}${key}`;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
return key;
|
|
191
198
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
199
|
+
}));
|
|
200
|
+
const results = [];
|
|
201
|
+
_.map(values, (item) => {
|
|
202
|
+
try {
|
|
203
|
+
if (item) {
|
|
204
|
+
results.push(JSON.parse(item));
|
|
196
205
|
}
|
|
197
206
|
else {
|
|
198
|
-
return key;
|
|
199
|
-
}
|
|
200
|
-
}));
|
|
201
|
-
const results = [];
|
|
202
|
-
_.map(values, (item) => {
|
|
203
|
-
try {
|
|
204
|
-
if (item) {
|
|
205
|
-
results.push(JSON.parse(item));
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
results.push(item);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
catch (error) {
|
|
212
207
|
results.push(item);
|
|
213
208
|
}
|
|
214
|
-
});
|
|
215
|
-
return results;
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
function mset(broker, data) {
|
|
219
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
220
|
-
var _a;
|
|
221
|
-
if (_.isEmpty(data)) {
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
const keyPrefix = ((_a = broker.cacher) === null || _a === void 0 ? void 0 : _a.prefix) || "";
|
|
225
|
-
const mdata = {};
|
|
226
|
-
_.map(data, (v, k) => {
|
|
227
|
-
mdata[`${keyPrefix}${k}`] = JSON.stringify(v);
|
|
228
|
-
});
|
|
229
|
-
return yield broker.cacher.client.mset(mdata);
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
function query(broker, queryKey) {
|
|
233
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
234
|
-
var _a;
|
|
235
|
-
try {
|
|
236
|
-
const keyPrefix = ((_a = broker.cacher) === null || _a === void 0 ? void 0 : _a.prefix) || "";
|
|
237
|
-
const keys = yield redisScanKeys(broker.cacher.client, `${keyPrefix}${queryKey}`);
|
|
238
|
-
const values = _.compact(yield mget(broker, keys));
|
|
239
|
-
return values;
|
|
240
209
|
}
|
|
241
210
|
catch (error) {
|
|
211
|
+
results.push(item);
|
|
242
212
|
}
|
|
243
|
-
return [];
|
|
244
213
|
});
|
|
214
|
+
return results;
|
|
215
|
+
}
|
|
216
|
+
async function mset(broker, data) {
|
|
217
|
+
if (_.isEmpty(data)) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
221
|
+
const mdata = {};
|
|
222
|
+
_.map(data, (v, k) => {
|
|
223
|
+
mdata[`${keyPrefix}${k}`] = JSON.stringify(v);
|
|
224
|
+
});
|
|
225
|
+
return await broker.cacher.client.mset(mdata);
|
|
226
|
+
}
|
|
227
|
+
async function query(broker, queryKey) {
|
|
228
|
+
try {
|
|
229
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
230
|
+
const keys = await redisScanKeys(broker.cacher.client, `${keyPrefix}${queryKey}`);
|
|
231
|
+
const values = _.compact(await mget(broker, keys));
|
|
232
|
+
return values;
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
}
|
|
236
|
+
return [];
|
|
245
237
|
}
|
|
246
238
|
function getPackageServiceCacherKey(nodeID, serviceName) {
|
|
247
239
|
return `$${nodeID}.${PACKAGE_SERVICES_KEY}.${serviceName}`;
|
|
248
240
|
}
|
|
249
|
-
function setPackageServices(broker, packageServices) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
try {
|
|
254
|
-
for (_a = true, packageServices_1 = tslib_1.__asyncValues(packageServices); packageServices_1_1 = yield packageServices_1.next(), _b = packageServices_1_1.done, !_b; _a = true) {
|
|
255
|
-
_d = packageServices_1_1.value;
|
|
256
|
-
_a = false;
|
|
257
|
-
const packageService = _d;
|
|
258
|
-
broker.cacher.set(getPackageServiceCacherKey(packageService.nodeID, packageService.name), { service: packageService });
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
262
|
-
finally {
|
|
263
|
-
try {
|
|
264
|
-
if (!_a && !_b && (_c = packageServices_1.return)) yield _c.call(packageServices_1);
|
|
265
|
-
}
|
|
266
|
-
finally { if (e_1) throw e_1.error; }
|
|
267
|
-
}
|
|
268
|
-
});
|
|
241
|
+
async function setPackageServices(broker, packageServices) {
|
|
242
|
+
for await (const packageService of packageServices) {
|
|
243
|
+
broker.cacher.set(getPackageServiceCacherKey(packageService.nodeID, packageService.name), { service: packageService });
|
|
244
|
+
}
|
|
269
245
|
}
|
|
270
|
-
function clearPackageServices(broker, packageServices) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
const packageService = _d;
|
|
279
|
-
let nodeID = null;
|
|
280
|
-
let name = null;
|
|
281
|
-
if (_.isString(packageService)) {
|
|
282
|
-
let foo = packageService.split(".");
|
|
283
|
-
nodeID = foo.splice(0, foo.length - 1).join(".");
|
|
284
|
-
name = foo.join(".");
|
|
285
|
-
}
|
|
286
|
-
else if (_.isObject(packageService)) {
|
|
287
|
-
nodeID = packageService.nodeID;
|
|
288
|
-
name = packageService.name;
|
|
289
|
-
}
|
|
290
|
-
yield broker.cacher.del(getPackageServiceCacherKey(nodeID, name));
|
|
291
|
-
}
|
|
246
|
+
async function clearPackageServices(broker, packageServices) {
|
|
247
|
+
for await (const packageService of packageServices) {
|
|
248
|
+
let nodeID = null;
|
|
249
|
+
let name = null;
|
|
250
|
+
if (_.isString(packageService)) {
|
|
251
|
+
let foo = packageService.split(".");
|
|
252
|
+
nodeID = foo.splice(0, foo.length - 1).join(".");
|
|
253
|
+
name = foo.join(".");
|
|
292
254
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
if (!_a && !_b && (_c = packageServices_2.return)) yield _c.call(packageServices_2);
|
|
297
|
-
}
|
|
298
|
-
finally { if (e_2) throw e_2.error; }
|
|
255
|
+
else if (_.isObject(packageService)) {
|
|
256
|
+
nodeID = packageService.nodeID;
|
|
257
|
+
name = packageService.name;
|
|
299
258
|
}
|
|
300
|
-
|
|
259
|
+
await broker.cacher.del(getPackageServiceCacherKey(nodeID, name));
|
|
260
|
+
}
|
|
301
261
|
}
|
|
302
|
-
function getLastPackageServices(broker) {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
}
|
|
310
|
-
});
|
|
311
|
-
return services;
|
|
262
|
+
async function getLastPackageServices(broker) {
|
|
263
|
+
const packageServices = await query(broker, getPackageServiceCacherKey("*", "*"));
|
|
264
|
+
const services = [];
|
|
265
|
+
packageServices.forEach((element) => {
|
|
266
|
+
if (element) {
|
|
267
|
+
services.push(element.service);
|
|
268
|
+
}
|
|
312
269
|
});
|
|
270
|
+
return services;
|
|
313
271
|
}
|
|
314
|
-
function getPackageServices(broker) {
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
});
|
|
324
|
-
return packageServices;
|
|
272
|
+
async function getPackageServices(broker) {
|
|
273
|
+
const packageServices = [];
|
|
274
|
+
const services = broker.registry.getServiceList({ withActions: true });
|
|
275
|
+
_.each(services, (serviceItem) => {
|
|
276
|
+
const { name, nodeID } = serviceItem;
|
|
277
|
+
if (name.startsWith(PACKAGE_SERVICE_PREFIX)) {
|
|
278
|
+
packageServices.push(Object.assign({}, serviceItem, { apiName: `${nodeID}.${name}` }));
|
|
279
|
+
}
|
|
325
280
|
});
|
|
281
|
+
return packageServices;
|
|
326
282
|
}
|
|
327
|
-
function clearPackageServiceMetadatas(broker, nodeID, packageServiceName) {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
return clearMetadatas;
|
|
333
|
-
});
|
|
283
|
+
async function clearPackageServiceMetadatas(broker, nodeID, packageServiceName) {
|
|
284
|
+
const key = getServiceMetadataCacherKey(nodeID, packageServiceName, "*", "*");
|
|
285
|
+
const clearMetadatas = await query(broker, key);
|
|
286
|
+
await broker.cacher.clean(key);
|
|
287
|
+
return clearMetadatas;
|
|
334
288
|
}
|
|
335
|
-
function clearPackageServicesMetadatas(broker, offlinePackageServices) {
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
let
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
const packageService = _d;
|
|
345
|
-
let nodeID = null;
|
|
346
|
-
let name = null;
|
|
347
|
-
if (_.isString(packageService)) {
|
|
348
|
-
let foo = packageService.split(".");
|
|
349
|
-
nodeID = foo.splice(0, foo.length - 1).join(".");
|
|
350
|
-
name = foo.join(".");
|
|
351
|
-
}
|
|
352
|
-
else if (_.isObject(packageService)) {
|
|
353
|
-
nodeID = packageService.nodeID;
|
|
354
|
-
name = packageService.name;
|
|
355
|
-
}
|
|
356
|
-
const clearPackageMetadatas = yield clearPackageServiceMetadatas(broker, nodeID, name);
|
|
357
|
-
clearMetadatas = clearMetadatas.concat(clearPackageMetadatas);
|
|
358
|
-
}
|
|
289
|
+
async function clearPackageServicesMetadatas(broker, offlinePackageServices) {
|
|
290
|
+
let clearMetadatas = [];
|
|
291
|
+
for await (const packageService of offlinePackageServices) {
|
|
292
|
+
let nodeID = null;
|
|
293
|
+
let name = null;
|
|
294
|
+
if (_.isString(packageService)) {
|
|
295
|
+
let foo = packageService.split(".");
|
|
296
|
+
nodeID = foo.splice(0, foo.length - 1).join(".");
|
|
297
|
+
name = foo.join(".");
|
|
359
298
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
if (!_a && !_b && (_c = offlinePackageServices_1.return)) yield _c.call(offlinePackageServices_1);
|
|
364
|
-
}
|
|
365
|
-
finally { if (e_3) throw e_3.error; }
|
|
299
|
+
else if (_.isObject(packageService)) {
|
|
300
|
+
nodeID = packageService.nodeID;
|
|
301
|
+
name = packageService.name;
|
|
366
302
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
303
|
+
const clearPackageMetadatas = await clearPackageServiceMetadatas(broker, nodeID, name);
|
|
304
|
+
clearMetadatas = clearMetadatas.concat(clearPackageMetadatas);
|
|
305
|
+
}
|
|
306
|
+
_.each(_.groupBy(clearMetadatas, "metadataType"), function (data, metadataType) {
|
|
307
|
+
broker.emit(`${SERVICE_METADATA_PREFIX}.${metadataType}.clear`, {
|
|
308
|
+
metadataType,
|
|
309
|
+
metadataApiNames: _.pluck(data, "metadataApiName"),
|
|
310
|
+
isClear: true,
|
|
373
311
|
});
|
|
374
312
|
});
|
|
375
313
|
}
|
|
376
|
-
function getMetadataServices(broker) {
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
386
|
-
return values;
|
|
387
|
-
});
|
|
314
|
+
async function getMetadataServices(broker) {
|
|
315
|
+
const queryKey = `${METADATA_SERVICES_PREFIX}.*`;
|
|
316
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
317
|
+
const keys = await redisScanKeys(broker.cacher.client, `${keyPrefix}${queryKey}`);
|
|
318
|
+
const values = [];
|
|
319
|
+
for (const key of keys) {
|
|
320
|
+
values.push(await broker.cacher.get(getKey(key, keyPrefix)));
|
|
321
|
+
}
|
|
322
|
+
return values;
|
|
388
323
|
}
|
|
389
|
-
function lrange(
|
|
390
|
-
return
|
|
391
|
-
return yield broker.cacher.client.lrange(key, start, end);
|
|
392
|
-
});
|
|
324
|
+
async function lrange(broker, key, start = 0, end = -1) {
|
|
325
|
+
return await broker.cacher.client.lrange(key, start, end);
|
|
393
326
|
}
|
|
394
|
-
function started(broker) {
|
|
395
|
-
return
|
|
396
|
-
return yield broker.cacher.set(`${METADATA_SERVICES_PREFIX}.${broker.nodeID}`, {});
|
|
397
|
-
});
|
|
327
|
+
async function started(broker) {
|
|
328
|
+
return await broker.cacher.set(`${METADATA_SERVICES_PREFIX}.${broker.nodeID}`, {});
|
|
398
329
|
}
|
|
399
|
-
function stopped(broker) {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
}
|
|
406
|
-
});
|
|
330
|
+
async function stopped(broker) {
|
|
331
|
+
await broker.cacher.del(`${METADATA_SERVICES_PREFIX}.${broker.nodeID}`);
|
|
332
|
+
const services = await getMetadataServices(broker);
|
|
333
|
+
if (!services || services.length === 0) {
|
|
334
|
+
await broker.cacher.clean(`**`);
|
|
335
|
+
}
|
|
407
336
|
}
|
|
408
337
|
exports.Register = {
|
|
409
338
|
clearPackageServices,
|
|
410
339
|
clearPackageServicesMetadatas,
|
|
411
|
-
get(broker, key) {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
catch (error) { }
|
|
417
|
-
});
|
|
418
|
-
},
|
|
419
|
-
mget(broker, keys) {
|
|
420
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
421
|
-
try {
|
|
422
|
-
return yield mget(broker, keys);
|
|
423
|
-
}
|
|
424
|
-
catch (error) { }
|
|
425
|
-
});
|
|
340
|
+
async get(broker, key) {
|
|
341
|
+
try {
|
|
342
|
+
return await broker.cacher.get(key);
|
|
343
|
+
}
|
|
344
|
+
catch (error) { }
|
|
426
345
|
},
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
return
|
|
430
|
-
}
|
|
346
|
+
async mget(broker, keys) {
|
|
347
|
+
try {
|
|
348
|
+
return await mget(broker, keys);
|
|
349
|
+
}
|
|
350
|
+
catch (error) { }
|
|
431
351
|
},
|
|
432
|
-
|
|
433
|
-
return
|
|
434
|
-
const queryAll = [];
|
|
435
|
-
for (const key of keys) {
|
|
436
|
-
queryAll.push(query(broker, key));
|
|
437
|
-
}
|
|
438
|
-
return yield Promise.all(queryAll);
|
|
439
|
-
});
|
|
352
|
+
async filter(broker, key) {
|
|
353
|
+
return await query(broker, key);
|
|
440
354
|
},
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
}
|
|
355
|
+
async mfilter(broker, keys) {
|
|
356
|
+
const queryAll = [];
|
|
357
|
+
for (const key of keys) {
|
|
358
|
+
queryAll.push(query(broker, key));
|
|
359
|
+
}
|
|
360
|
+
return await Promise.all(queryAll);
|
|
446
361
|
},
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
});
|
|
362
|
+
async add(broker, params, meta) {
|
|
363
|
+
const { key } = params;
|
|
364
|
+
return await broker.cacher.set(key, transformMetadata(params, meta));
|
|
451
365
|
},
|
|
452
|
-
|
|
453
|
-
return
|
|
454
|
-
return yield addServiceMetadata(broker, params, meta);
|
|
455
|
-
});
|
|
366
|
+
async madd(broker, params, meta) {
|
|
367
|
+
return await mset(broker, transformMetadatas(params, meta));
|
|
456
368
|
},
|
|
457
|
-
|
|
458
|
-
return
|
|
459
|
-
return yield maddServiceMetadata(broker, params, meta);
|
|
460
|
-
});
|
|
369
|
+
async addServiceMetadata(broker, params, meta) {
|
|
370
|
+
return await addServiceMetadata(broker, params, meta);
|
|
461
371
|
},
|
|
462
|
-
|
|
463
|
-
return
|
|
464
|
-
var _a;
|
|
465
|
-
const keyPrefix = ((_a = broker.cacher) === null || _a === void 0 ? void 0 : _a.prefix) || "";
|
|
466
|
-
const keys = yield redisScanKeys(broker.cacher.client, `${keyPrefix}${key}`);
|
|
467
|
-
for (const _key of keys) {
|
|
468
|
-
yield broker.cacher.del(getKey(_key, keyPrefix));
|
|
469
|
-
}
|
|
470
|
-
});
|
|
372
|
+
async maddServiceMetadata(broker, params, meta) {
|
|
373
|
+
return await maddServiceMetadata(broker, params, meta);
|
|
471
374
|
},
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
broker.logger.info(error.message);
|
|
479
|
-
}
|
|
480
|
-
return true;
|
|
481
|
-
});
|
|
375
|
+
async fuzzyDelete(broker, key) {
|
|
376
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
377
|
+
const keys = await redisScanKeys(broker.cacher.client, `${keyPrefix}${key}`);
|
|
378
|
+
for (const _key of keys) {
|
|
379
|
+
await broker.cacher.del(getKey(_key, keyPrefix));
|
|
380
|
+
}
|
|
482
381
|
},
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
throw new Error("serviceName is null");
|
|
492
|
-
}
|
|
493
|
-
if (!metadataType) {
|
|
494
|
-
throw new Error("metadataType is null");
|
|
495
|
-
}
|
|
496
|
-
if (!metadataApiName) {
|
|
497
|
-
throw new Error("metadataApiName is null");
|
|
498
|
-
}
|
|
499
|
-
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
500
|
-
yield broker.cacher.del(key);
|
|
501
|
-
}
|
|
502
|
-
catch (error) {
|
|
503
|
-
broker.logger.info(error.message);
|
|
504
|
-
}
|
|
505
|
-
return true;
|
|
506
|
-
});
|
|
382
|
+
async delete(broker, key) {
|
|
383
|
+
try {
|
|
384
|
+
await broker.cacher.del(key);
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
broker.logger.info(error.message);
|
|
388
|
+
}
|
|
389
|
+
return true;
|
|
507
390
|
},
|
|
508
|
-
|
|
509
|
-
|
|
391
|
+
async deleteServiceMetadata(broker, params) {
|
|
392
|
+
try {
|
|
510
393
|
let { nodeID, serviceName, metadataType, metadataApiName } = params;
|
|
511
394
|
if (!nodeID) {
|
|
512
|
-
nodeID
|
|
395
|
+
throw new Error("nodeID is null");
|
|
513
396
|
}
|
|
514
397
|
if (!serviceName) {
|
|
515
|
-
serviceName
|
|
398
|
+
throw new Error("serviceName is null");
|
|
516
399
|
}
|
|
517
400
|
if (!metadataType) {
|
|
518
|
-
metadataType
|
|
401
|
+
throw new Error("metadataType is null");
|
|
519
402
|
}
|
|
520
403
|
if (!metadataApiName) {
|
|
521
|
-
metadataApiName
|
|
404
|
+
throw new Error("metadataApiName is null");
|
|
522
405
|
}
|
|
523
406
|
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
});
|
|
407
|
+
await broker.cacher.del(key);
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
broker.logger.info(error.message);
|
|
411
|
+
}
|
|
412
|
+
return true;
|
|
531
413
|
},
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
414
|
+
async getServiceMetadatas(broker, params) {
|
|
415
|
+
let { nodeID, serviceName, metadataType, metadataApiName } = params;
|
|
416
|
+
if (!nodeID) {
|
|
417
|
+
nodeID = "*";
|
|
418
|
+
}
|
|
419
|
+
if (!serviceName) {
|
|
420
|
+
serviceName = "*";
|
|
421
|
+
}
|
|
422
|
+
if (!metadataType) {
|
|
423
|
+
metadataType = "*";
|
|
424
|
+
}
|
|
425
|
+
if (!metadataApiName) {
|
|
426
|
+
metadataApiName = "*";
|
|
427
|
+
}
|
|
428
|
+
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
429
|
+
const result = await query(broker, key);
|
|
430
|
+
return result
|
|
431
|
+
? (0, lodash_1.filter)(result, (item) => {
|
|
432
|
+
return item && item.metadataType === metadataType;
|
|
433
|
+
})
|
|
434
|
+
: result;
|
|
542
435
|
},
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
return yield broker.cacher.del(key);
|
|
552
|
-
});
|
|
436
|
+
async getServiceMetadata(broker, params, meta) {
|
|
437
|
+
let { serviceName, metadataType, metadataApiName } = params;
|
|
438
|
+
const { nodeID } = meta.caller || { nodeID: undefined };
|
|
439
|
+
if (!nodeID) {
|
|
440
|
+
console.log(`getServiceMetadata meta`, meta);
|
|
441
|
+
}
|
|
442
|
+
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
443
|
+
return await broker.cacher.get(key);
|
|
553
444
|
},
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
445
|
+
async removeServiceMetadata(broker, params, meta) {
|
|
446
|
+
let { serviceName, metadataType, metadataApiName } = params;
|
|
447
|
+
const { nodeID } = meta.caller || { nodeID: undefined };
|
|
448
|
+
if (!nodeID) {
|
|
449
|
+
console.log(`getServiceMetadata meta`, meta);
|
|
450
|
+
}
|
|
451
|
+
const key = getServiceMetadataCacherKey(nodeID, serviceName, metadataType, metadataApiName);
|
|
452
|
+
return await broker.cacher.del(key);
|
|
453
|
+
},
|
|
454
|
+
async refreshServiceMetadatas(broker, params) {
|
|
455
|
+
const { offlinePackageServices: _offlinePackageServices } = params || {
|
|
456
|
+
offlinePackageServices: undefined,
|
|
457
|
+
};
|
|
458
|
+
const offlinePackageServicesListString = [];
|
|
459
|
+
if (_offlinePackageServices && _offlinePackageServices.length > 0) {
|
|
460
|
+
_.each(_offlinePackageServices, (item) => {
|
|
461
|
+
if (!item) {
|
|
462
|
+
throw new Error("offlinePackageInfo is null");
|
|
463
|
+
}
|
|
464
|
+
if (_.isString(item)) {
|
|
465
|
+
throw new Error("offlinePackageInfo cannot be string");
|
|
466
|
+
}
|
|
467
|
+
if (_.isObject(item)) {
|
|
468
|
+
const { nodeID, name } = item;
|
|
469
|
+
if (!_.isString(nodeID)) {
|
|
470
|
+
throw new Error("offlinePackageInfo.nodeID must be string");
|
|
567
471
|
}
|
|
568
|
-
if (_.
|
|
569
|
-
|
|
570
|
-
if (!_.isString(nodeID)) {
|
|
571
|
-
throw new Error("offlinePackageInfo.nodeID must be string");
|
|
572
|
-
}
|
|
573
|
-
if (!_.isString(name)) {
|
|
574
|
-
throw new Error("offlinePackageInfo.name must be string");
|
|
575
|
-
}
|
|
576
|
-
offlinePackageServicesListString.push(`${nodeID}.${name}`);
|
|
472
|
+
if (!_.isString(name)) {
|
|
473
|
+
throw new Error("offlinePackageInfo.name must be string");
|
|
577
474
|
}
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
offlinePackageServicesName: _offlinePackageServices,
|
|
581
|
-
});
|
|
582
|
-
}
|
|
583
|
-
let packageServices = yield getPackageServices(broker);
|
|
584
|
-
const packageServicesName = _.pluck(packageServices, "apiName");
|
|
585
|
-
const lastPackageServices = yield getLastPackageServices(broker);
|
|
586
|
-
const lastPackageServicesNames = _.pluck(lastPackageServices, "apiName");
|
|
587
|
-
let offlinePackageServicesName = _.difference(lastPackageServicesNames, packageServicesName);
|
|
588
|
-
let timeoutOfflinePackageServices = _.filter(lastPackageServices, (lastPackageService) => {
|
|
589
|
-
return (lastPackageService &&
|
|
590
|
-
_.include(offlinePackageServicesName, lastPackageService.apiName));
|
|
475
|
+
offlinePackageServicesListString.push(`${nodeID}.${name}`);
|
|
476
|
+
}
|
|
591
477
|
});
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
const onlinePackageServicesName = _.difference(lastPackageServices, offlinePackageServicesListString);
|
|
595
|
-
packageServices = _.filter(packageServices, (packageService) => {
|
|
596
|
-
return (packageService &&
|
|
597
|
-
_.include(onlinePackageServicesName, packageService.apiName));
|
|
598
|
-
});
|
|
599
|
-
}
|
|
600
|
-
if (savePackageServicesTimeoutID) {
|
|
601
|
-
clearTimeout(savePackageServicesTimeoutID);
|
|
602
|
-
savePackageServicesTimeoutID = null;
|
|
603
|
-
}
|
|
604
|
-
if (!savePackageServicesTimeoutID) {
|
|
605
|
-
savePackageServicesTimeoutID = setTimeout(() => {
|
|
606
|
-
setPackageServices(broker, packageServices);
|
|
607
|
-
}, 30 * 1000);
|
|
608
|
-
}
|
|
609
|
-
});
|
|
610
|
-
},
|
|
611
|
-
lpush(broker, params) {
|
|
612
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
613
|
-
var _a;
|
|
614
|
-
const keyPrefix = ((_a = broker.cacher) === null || _a === void 0 ? void 0 : _a.prefix) || "";
|
|
615
|
-
const key = params.key;
|
|
616
|
-
const data = params.data;
|
|
617
|
-
if (!_.isArray(data)) {
|
|
618
|
-
throw new Error("data must be an array.");
|
|
619
|
-
}
|
|
620
|
-
const _data = [];
|
|
621
|
-
_.each(data, (item) => {
|
|
622
|
-
_data.push(JSON.stringify(item));
|
|
478
|
+
await broker.call("metadata.clearPackageServices", {
|
|
479
|
+
offlinePackageServicesName: _offlinePackageServices,
|
|
623
480
|
});
|
|
624
|
-
|
|
481
|
+
}
|
|
482
|
+
let packageServices = await getPackageServices(broker);
|
|
483
|
+
const packageServicesName = _.pluck(packageServices, "apiName");
|
|
484
|
+
const lastPackageServices = await getLastPackageServices(broker);
|
|
485
|
+
const lastPackageServicesNames = _.pluck(lastPackageServices, "apiName");
|
|
486
|
+
let offlinePackageServicesName = _.difference(lastPackageServicesNames, packageServicesName);
|
|
487
|
+
let timeoutOfflinePackageServices = _.filter(lastPackageServices, (lastPackageService) => {
|
|
488
|
+
return (lastPackageService &&
|
|
489
|
+
_.include(offlinePackageServicesName, lastPackageService.apiName));
|
|
625
490
|
});
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
const data = params.data;
|
|
633
|
-
if (!_.isArray(data)) {
|
|
634
|
-
throw new Error("data must be an array.");
|
|
635
|
-
}
|
|
636
|
-
const _data = [];
|
|
637
|
-
_.each(data, (item) => {
|
|
638
|
-
_data.push(JSON.stringify(item));
|
|
491
|
+
if (_offlinePackageServices && _offlinePackageServices.length > 0) {
|
|
492
|
+
timeoutOfflinePackageServices = timeoutOfflinePackageServices.concat(_offlinePackageServices);
|
|
493
|
+
const onlinePackageServicesName = _.difference(lastPackageServices, offlinePackageServicesListString);
|
|
494
|
+
packageServices = _.filter(packageServices, (packageService) => {
|
|
495
|
+
return (packageService &&
|
|
496
|
+
_.include(onlinePackageServicesName, packageService.apiName));
|
|
639
497
|
});
|
|
640
|
-
|
|
498
|
+
}
|
|
499
|
+
if (savePackageServicesTimeoutID) {
|
|
500
|
+
clearTimeout(savePackageServicesTimeoutID);
|
|
501
|
+
savePackageServicesTimeoutID = null;
|
|
502
|
+
}
|
|
503
|
+
if (!savePackageServicesTimeoutID) {
|
|
504
|
+
savePackageServicesTimeoutID = setTimeout(() => {
|
|
505
|
+
setPackageServices(broker, packageServices);
|
|
506
|
+
}, 30 * 1000);
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
async lpush(broker, params) {
|
|
510
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
511
|
+
const key = params.key;
|
|
512
|
+
const data = params.data;
|
|
513
|
+
if (!_.isArray(data)) {
|
|
514
|
+
throw new Error("data must be an array.");
|
|
515
|
+
}
|
|
516
|
+
const _data = [];
|
|
517
|
+
_.each(data, (item) => {
|
|
518
|
+
_data.push(JSON.stringify(item));
|
|
641
519
|
});
|
|
520
|
+
return await broker.cacher.client.lpush(`${keyPrefix}${key}`, ..._data);
|
|
642
521
|
},
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
522
|
+
async rpush(broker, params) {
|
|
523
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
524
|
+
const key = params.key;
|
|
525
|
+
const data = params.data;
|
|
526
|
+
if (!_.isArray(data)) {
|
|
527
|
+
throw new Error("data must be an array.");
|
|
528
|
+
}
|
|
529
|
+
const _data = [];
|
|
530
|
+
_.each(data, (item) => {
|
|
531
|
+
_data.push(JSON.stringify(item));
|
|
649
532
|
});
|
|
533
|
+
return await broker.cacher.client.rpush(`${keyPrefix}${key}`, ..._data);
|
|
650
534
|
},
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
535
|
+
async lrange(broker, params) {
|
|
536
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
537
|
+
const { key, start = 0, end = -1 } = params.key;
|
|
538
|
+
return await lrange(broker, `${keyPrefix}${key}`, start, end);
|
|
539
|
+
},
|
|
540
|
+
async filterList(broker, params) {
|
|
541
|
+
const keyPrefix = broker.cacher?.prefix || "";
|
|
542
|
+
const { key } = params;
|
|
543
|
+
const keys = await redisScanKeys(broker.cacher.client, `${keyPrefix}${key}`);
|
|
544
|
+
if (!keys || keys.length == 0) {
|
|
545
|
+
return [];
|
|
546
|
+
}
|
|
547
|
+
const results = [];
|
|
548
|
+
for (const itemKey of keys) {
|
|
549
|
+
try {
|
|
550
|
+
if (itemKey) {
|
|
551
|
+
const itemList = await lrange(broker, itemKey);
|
|
552
|
+
if (itemList && _.isArray(itemList)) {
|
|
553
|
+
_.each(itemList, (item) => {
|
|
554
|
+
results.push(JSON.parse(item));
|
|
555
|
+
});
|
|
670
556
|
}
|
|
671
557
|
}
|
|
672
|
-
catch (error) {
|
|
673
|
-
console.error(`error`, error);
|
|
674
|
-
}
|
|
675
558
|
}
|
|
676
|
-
|
|
677
|
-
|
|
559
|
+
catch (error) {
|
|
560
|
+
console.error(`error`, error);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
return results;
|
|
678
564
|
},
|
|
679
565
|
};
|
|
680
566
|
//# sourceMappingURL=index.js.map
|