@steedos/service-cachers-manager 2.7.0-beta.8 → 2.7.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.
Files changed (40) hide show
  1. package/lib/index.d.ts +1 -0
  2. package/lib/index.js +5 -0
  3. package/lib/index.js.map +1 -0
  4. package/lib/metadata-cachers/action_field_updates.d.ts +4 -0
  5. package/lib/metadata-cachers/action_field_updates.js +14 -0
  6. package/lib/metadata-cachers/action_field_updates.js.map +1 -0
  7. package/lib/metadata-cachers/base.d.ts +18 -0
  8. package/lib/metadata-cachers/base.js +71 -0
  9. package/lib/metadata-cachers/base.js.map +1 -0
  10. package/lib/metadata-cachers/index.d.ts +6 -0
  11. package/lib/metadata-cachers/index.js +16 -0
  12. package/lib/metadata-cachers/index.js.map +1 -0
  13. package/lib/metadata-cachers/object_validation_rules.d.ts +4 -0
  14. package/lib/metadata-cachers/object_validation_rules.js +14 -0
  15. package/lib/metadata-cachers/object_validation_rules.js.map +1 -0
  16. package/lib/metadata-cachers/settings.d.ts +4 -0
  17. package/lib/metadata-cachers/settings.js +14 -0
  18. package/lib/metadata-cachers/settings.js.map +1 -0
  19. package/lib/metadata-cachers/workflow_notifications.d.ts +4 -0
  20. package/lib/metadata-cachers/workflow_notifications.js +14 -0
  21. package/lib/metadata-cachers/workflow_notifications.js.map +1 -0
  22. package/lib/metadata-cachers/workflow_outbound_messages.d.ts +4 -0
  23. package/lib/metadata-cachers/workflow_outbound_messages.js +14 -0
  24. package/lib/metadata-cachers/workflow_outbound_messages.js.map +1 -0
  25. package/lib/metadata-cachers/workflow_rule.d.ts +4 -0
  26. package/lib/metadata-cachers/workflow_rule.js +14 -0
  27. package/lib/metadata-cachers/workflow_rule.js.map +1 -0
  28. package/metadata-cachers.service.js +98 -0
  29. package/package.json +8 -4
  30. package/package.service.js +12 -3
  31. package/src/index.ts +1 -0
  32. package/src/metadata-cachers/action_field_updates.ts +15 -0
  33. package/src/metadata-cachers/base.ts +88 -0
  34. package/src/metadata-cachers/index.ts +13 -0
  35. package/src/metadata-cachers/object_validation_rules.ts +15 -0
  36. package/src/metadata-cachers/settings.ts +7 -0
  37. package/src/metadata-cachers/workflow_notifications.ts +17 -0
  38. package/src/metadata-cachers/workflow_outbound_messages.ts +15 -0
  39. package/src/metadata-cachers/workflow_rule.ts +10 -0
  40. package/tsconfig.json +34 -0
package/lib/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './metadata-cachers/index';
package/lib/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./metadata-cachers/index"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC"}
@@ -0,0 +1,4 @@
1
+ import { MetadataCacherBase } from './base';
2
+ export declare class ActionFieldUpdateCacher extends MetadataCacherBase {
3
+ constructor();
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActionFieldUpdateCacher = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var base_1 = require("./base");
6
+ var ActionFieldUpdateCacher = (function (_super) {
7
+ tslib_1.__extends(ActionFieldUpdateCacher, _super);
8
+ function ActionFieldUpdateCacher() {
9
+ return _super.call(this, 'action_field_updates', true) || this;
10
+ }
11
+ return ActionFieldUpdateCacher;
12
+ }(base_1.MetadataCacherBase));
13
+ exports.ActionFieldUpdateCacher = ActionFieldUpdateCacher;
14
+ //# sourceMappingURL=action_field_updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action_field_updates.js","sourceRoot":"","sources":["../../src/metadata-cachers/action_field_updates.ts"],"names":[],"mappings":";;;;AAQA,+BAA2C;AAE3C;IAA6C,mDAAkB;IAC3D;eACI,kBAAM,sBAAsB,EAAE,IAAI,CAAC;IACvC,CAAC;IACL,8BAAC;AAAD,CAAC,AAJD,CAA6C,yBAAkB,GAI9D;AAJY,0DAAuB"}
@@ -0,0 +1,18 @@
1
+ export declare class MetadataCacherBase {
2
+ supportSpace: boolean;
3
+ cacher: any;
4
+ metadataName: any;
5
+ collectionName: any;
6
+ observeHandle: any;
7
+ cacherName: any;
8
+ observeQuery: any;
9
+ constructor(collectionName: any, supportSpace: any, observeQuery?: {});
10
+ onAdded(doc: any): void;
11
+ onChanged(newDoc: any, oldDoc: any): void;
12
+ onRemoved(doc: any): void;
13
+ set(_id: any, value: any): any;
14
+ delete(_id: any): any;
15
+ get(_id: any): any;
16
+ find(filters: any, spaceId?: any): any;
17
+ destroy(): void;
18
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetadataCacherBase = void 0;
4
+ var cachers = require('@steedos/cachers');
5
+ var metadataDriver = require('@steedos/utils').metadataDriver;
6
+ var MetadataCacherBase = (function () {
7
+ function MetadataCacherBase(collectionName, supportSpace, observeQuery) {
8
+ if (observeQuery === void 0) { observeQuery = {}; }
9
+ var _this = this;
10
+ this.supportSpace = true;
11
+ this.collectionName = collectionName;
12
+ this.supportSpace = supportSpace;
13
+ this.cacherName = "metadata.".concat(collectionName);
14
+ this.cacher = cachers.getCacher(this.cacherName);
15
+ this.observeQuery = observeQuery;
16
+ try {
17
+ this.observeHandle = Creator.getCollection(collectionName).find(observeQuery).observe({
18
+ added: function (doc) {
19
+ _this.onAdded(doc);
20
+ },
21
+ changed: function (doc, oldDoc) {
22
+ _this.onChanged(doc, oldDoc);
23
+ },
24
+ removed: function (doc) {
25
+ _this.onRemoved(doc);
26
+ }
27
+ });
28
+ }
29
+ catch (error) {
30
+ console.error("".concat(collectionName, " observeHandle error"), error);
31
+ }
32
+ }
33
+ MetadataCacherBase.prototype.onAdded = function (doc) {
34
+ this.set(doc._id, doc);
35
+ };
36
+ MetadataCacherBase.prototype.onChanged = function (newDoc, oldDoc) {
37
+ this.set(newDoc._id, newDoc);
38
+ };
39
+ MetadataCacherBase.prototype.onRemoved = function (doc) {
40
+ this.delete(doc._id);
41
+ };
42
+ MetadataCacherBase.prototype.set = function (_id, value) {
43
+ if (!_id) {
44
+ throw new Error('key is null');
45
+ }
46
+ return this.cacher.set(_id, value);
47
+ };
48
+ MetadataCacherBase.prototype.delete = function (_id) {
49
+ return this.cacher.delete(_id);
50
+ };
51
+ MetadataCacherBase.prototype.get = function (_id) {
52
+ return this.cacher.get(_id);
53
+ };
54
+ MetadataCacherBase.prototype.find = function (filters, spaceId) {
55
+ var records = this.cacher.values();
56
+ if (this.supportSpace) {
57
+ filters = [filters, ['space', '=', spaceId]];
58
+ return metadataDriver.find(records, { filters: filters }, spaceId);
59
+ }
60
+ return metadataDriver.find(records, { filters: filters });
61
+ };
62
+ MetadataCacherBase.prototype.destroy = function () {
63
+ if (this.observeHandle) {
64
+ this.observeHandle.stop();
65
+ this.cacher.clearCacher(this.cacherName);
66
+ }
67
+ };
68
+ return MetadataCacherBase;
69
+ }());
70
+ exports.MetadataCacherBase = MetadataCacherBase;
71
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/metadata-cachers/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { ActionFieldUpdateCacher } from './action_field_updates';
2
+ export { WorkflowNotificationCacher } from './workflow_notifications';
3
+ export { WorkflowOutboundMessageCacher } from './workflow_outbound_messages';
4
+ export { WorkflowRuleCacher } from './workflow_rule';
5
+ export { ObjectValidationRulesCacher } from './object_validation_rules';
6
+ export { SettingsCacher } from './settings';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettingsCacher = exports.ObjectValidationRulesCacher = exports.WorkflowRuleCacher = exports.WorkflowOutboundMessageCacher = exports.WorkflowNotificationCacher = exports.ActionFieldUpdateCacher = void 0;
4
+ var action_field_updates_1 = require("./action_field_updates");
5
+ Object.defineProperty(exports, "ActionFieldUpdateCacher", { enumerable: true, get: function () { return action_field_updates_1.ActionFieldUpdateCacher; } });
6
+ var workflow_notifications_1 = require("./workflow_notifications");
7
+ Object.defineProperty(exports, "WorkflowNotificationCacher", { enumerable: true, get: function () { return workflow_notifications_1.WorkflowNotificationCacher; } });
8
+ var workflow_outbound_messages_1 = require("./workflow_outbound_messages");
9
+ Object.defineProperty(exports, "WorkflowOutboundMessageCacher", { enumerable: true, get: function () { return workflow_outbound_messages_1.WorkflowOutboundMessageCacher; } });
10
+ var workflow_rule_1 = require("./workflow_rule");
11
+ Object.defineProperty(exports, "WorkflowRuleCacher", { enumerable: true, get: function () { return workflow_rule_1.WorkflowRuleCacher; } });
12
+ var object_validation_rules_1 = require("./object_validation_rules");
13
+ Object.defineProperty(exports, "ObjectValidationRulesCacher", { enumerable: true, get: function () { return object_validation_rules_1.ObjectValidationRulesCacher; } });
14
+ var settings_1 = require("./settings");
15
+ Object.defineProperty(exports, "SettingsCacher", { enumerable: true, get: function () { return settings_1.SettingsCacher; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata-cachers/index.ts"],"names":[],"mappings":";;;AAOA,+DAAgE;AAAvD,+HAAA,uBAAuB,OAAA;AAChC,mEAAsE;AAA7D,oIAAA,0BAA0B,OAAA;AACnC,2EAA4E;AAAnE,2IAAA,6BAA6B,OAAA;AACtC,iDAAqD;AAA5C,mHAAA,kBAAkB,OAAA;AAC3B,qEAAuE;AAA9D,sIAAA,2BAA2B,OAAA;AACpC,uCAA2C;AAAlC,0GAAA,cAAc,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { MetadataCacherBase } from './base';
2
+ export declare class ObjectValidationRulesCacher extends MetadataCacherBase {
3
+ constructor();
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectValidationRulesCacher = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var base_1 = require("./base");
6
+ var ObjectValidationRulesCacher = (function (_super) {
7
+ tslib_1.__extends(ObjectValidationRulesCacher, _super);
8
+ function ObjectValidationRulesCacher() {
9
+ return _super.call(this, 'object_validation_rules', true) || this;
10
+ }
11
+ return ObjectValidationRulesCacher;
12
+ }(base_1.MetadataCacherBase));
13
+ exports.ObjectValidationRulesCacher = ObjectValidationRulesCacher;
14
+ //# sourceMappingURL=object_validation_rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object_validation_rules.js","sourceRoot":"","sources":["../../src/metadata-cachers/object_validation_rules.ts"],"names":[],"mappings":";;;;AAQA,+BAA2C;AAE3C;IAAiD,uDAAkB;IAC/D;eACI,kBAAM,yBAAyB,EAAE,IAAI,CAAC;IAC1C,CAAC;IACL,kCAAC;AAAD,CAAC,AAJD,CAAiD,yBAAkB,GAIlE;AAJY,kEAA2B"}
@@ -0,0 +1,4 @@
1
+ import { MetadataCacherBase } from './base';
2
+ export declare class SettingsCacher extends MetadataCacherBase {
3
+ constructor();
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettingsCacher = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var base_1 = require("./base");
6
+ var SettingsCacher = (function (_super) {
7
+ tslib_1.__extends(SettingsCacher, _super);
8
+ function SettingsCacher() {
9
+ return _super.call(this, 'settings', true, { type: 'space', key: { $exists: true } }) || this;
10
+ }
11
+ return SettingsCacher;
12
+ }(base_1.MetadataCacherBase));
13
+ exports.SettingsCacher = SettingsCacher;
14
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/metadata-cachers/settings.ts"],"names":[],"mappings":";;;;AAAA,+BAA2C;AAE3C;IAAoC,0CAAkB;IAClD;eACI,kBAAM,UAAU,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAC,CAAC;IAClE,CAAC;IACL,qBAAC;AAAD,CAAC,AAJD,CAAoC,yBAAkB,GAIrD;AAJY,wCAAc"}
@@ -0,0 +1,4 @@
1
+ import { MetadataCacherBase } from './base';
2
+ export declare class WorkflowNotificationCacher extends MetadataCacherBase {
3
+ constructor();
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowNotificationCacher = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var base_1 = require("./base");
6
+ var WorkflowNotificationCacher = (function (_super) {
7
+ tslib_1.__extends(WorkflowNotificationCacher, _super);
8
+ function WorkflowNotificationCacher() {
9
+ return _super.call(this, 'workflow_notifications', true) || this;
10
+ }
11
+ return WorkflowNotificationCacher;
12
+ }(base_1.MetadataCacherBase));
13
+ exports.WorkflowNotificationCacher = WorkflowNotificationCacher;
14
+ //# sourceMappingURL=workflow_notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_notifications.js","sourceRoot":"","sources":["../../src/metadata-cachers/workflow_notifications.ts"],"names":[],"mappings":";;;;AAUA,+BAA2C;AAE3C;IAAgD,sDAAkB;IAC9D;eACI,kBAAM,wBAAwB,EAAE,IAAI,CAAC;IACzC,CAAC;IACL,iCAAC;AAAD,CAAC,AAJD,CAAgD,yBAAkB,GAIjE;AAJY,gEAA0B"}
@@ -0,0 +1,4 @@
1
+ import { MetadataCacherBase } from './base';
2
+ export declare class WorkflowOutboundMessageCacher extends MetadataCacherBase {
3
+ constructor();
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowOutboundMessageCacher = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var base_1 = require("./base");
6
+ var WorkflowOutboundMessageCacher = (function (_super) {
7
+ tslib_1.__extends(WorkflowOutboundMessageCacher, _super);
8
+ function WorkflowOutboundMessageCacher() {
9
+ return _super.call(this, 'workflow_outbound_messages', true) || this;
10
+ }
11
+ return WorkflowOutboundMessageCacher;
12
+ }(base_1.MetadataCacherBase));
13
+ exports.WorkflowOutboundMessageCacher = WorkflowOutboundMessageCacher;
14
+ //# sourceMappingURL=workflow_outbound_messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_outbound_messages.js","sourceRoot":"","sources":["../../src/metadata-cachers/workflow_outbound_messages.ts"],"names":[],"mappings":";;;;AAQA,+BAA2C;AAE3C;IAAmD,yDAAkB;IACjE;eACI,kBAAM,4BAA4B,EAAE,IAAI,CAAC;IAC7C,CAAC;IACL,oCAAC;AAAD,CAAC,AAJD,CAAmD,yBAAkB,GAIpE;AAJY,sEAA6B"}
@@ -0,0 +1,4 @@
1
+ import { MetadataCacherBase } from './base';
2
+ export declare class WorkflowRuleCacher extends MetadataCacherBase {
3
+ constructor();
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowRuleCacher = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var base_1 = require("./base");
6
+ var WorkflowRuleCacher = (function (_super) {
7
+ tslib_1.__extends(WorkflowRuleCacher, _super);
8
+ function WorkflowRuleCacher() {
9
+ return _super.call(this, 'workflow_rule', true) || this;
10
+ }
11
+ return WorkflowRuleCacher;
12
+ }(base_1.MetadataCacherBase));
13
+ exports.WorkflowRuleCacher = WorkflowRuleCacher;
14
+ //# sourceMappingURL=workflow_rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_rule.js","sourceRoot":"","sources":["../../src/metadata-cachers/workflow_rule.ts"],"names":[],"mappings":";;;;AAGA,+BAA2C;AAE3C;IAAwC,8CAAkB;IACtD;eACI,kBAAM,eAAe,EAAE,IAAI,CAAC;IAChC,CAAC;IACL,yBAAC;AAAD,CAAC,AAJD,CAAwC,yBAAkB,GAIzD;AAJY,gDAAkB"}
@@ -0,0 +1,98 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2024-03-22 14:37:50
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2024-04-12 15:17:00
6
+ * @Description: 由于 collection observe 在 steedos-server.started 事件中被触发报错需要 Fiber ,添加Fiber 后, 不报错,但是无法订阅到数据. 所以单写服务处理此问题.
7
+ *
8
+ */
9
+
10
+ "use strict";
11
+ const _ = require('lodash')
12
+ const register = require('@steedos/metadata-registrar');
13
+ const { ActionFieldUpdateCacher, WorkflowOutboundMessageCacher, WorkflowNotificationCacher, WorkflowRuleCacher, ObjectValidationRulesCacher, SettingsCacher } = require('./lib/index')
14
+ /**
15
+ * @typedef {import('moleculer').Context} Context Moleculer's Context
16
+ * 软件包服务启动后也需要抛出事件。
17
+ */
18
+ module.exports = {
19
+ name: "metadata-cachers-service",
20
+ namespace: "steedos",
21
+ /**
22
+ * Dependencies
23
+ */
24
+ dependencies: ['steedos-server'],
25
+
26
+ events: {
27
+ '$packages.changed': function(){
28
+ this.loadMetadataWorkflows();
29
+ this.loadMetadataValidationRule()
30
+ }
31
+ },
32
+
33
+ actions:{
34
+ find: function(ctx){
35
+ const { metadataName, filters, spaceId } = ctx.params;
36
+ const res = this[`${_.camelCase(metadataName)}Cacher`].find(filters, spaceId);
37
+ return res;
38
+ },
39
+ get: function(ctx){
40
+ const { _id } = ctx.params;
41
+ return this[`${_.camelCase(metadataName)}Cacher`].get(_id)
42
+ }
43
+ },
44
+
45
+ methods: {
46
+ loadMetadataWorkflows: async function(){
47
+ const res = await broker.call(`workflow.getAll`);
48
+ _.each(res, (wf)=>{
49
+ _.each(wf.metadata.rules, (item)=>{
50
+ this.workflowRuleCacher.set(item._id || item.name, item)
51
+ });
52
+
53
+ _.each(wf.metadata.fieldUpdates, (item)=>{
54
+ this.actionFieldUpdatesCacher.set(item._id || item.name, item)
55
+ });
56
+
57
+ _.each(wf.metadata.notifications, (item)=>{
58
+ this.workflowNotificationsCacher.set(item._id || item.name, item)
59
+ });
60
+
61
+ _.each(wf.metadata.outboundMessages, (item)=>{
62
+ this.workflowOutboundMessagesCacher.set(item._id || item.name, item)
63
+ });
64
+ })
65
+ },
66
+ loadMetadataValidationRule: async function(){
67
+ let res = await register.getAllObjectValidationRules();
68
+ _.each(res, (item)=>{
69
+ this.objectValidationRulesCacher.set(item._id, item)
70
+ })
71
+ }
72
+ },
73
+
74
+ async started() {
75
+ this.actionFieldUpdatesCacher = new ActionFieldUpdateCacher()
76
+
77
+ this.workflowOutboundMessagesCacher = new WorkflowOutboundMessageCacher();
78
+
79
+ this.workflowNotificationsCacher = new WorkflowNotificationCacher();
80
+
81
+ this.workflowRuleCacher = new WorkflowRuleCacher();
82
+
83
+ this.objectValidationRulesCacher = new ObjectValidationRulesCacher()
84
+
85
+ this.settingsCacher = new SettingsCacher();
86
+
87
+ await this.loadMetadataWorkflows()
88
+ },
89
+
90
+ async stopped(){
91
+ this.actionFieldUpdatesCacher?.destroy();
92
+ this.workflowOutboundMessagesCacher?.destroy();
93
+ this.workflowNotificationsCacher?.destroy();
94
+ this.workflowRuleCacher?.destroy();
95
+ this.objectValidationRulesCacher?.destroy();
96
+ this.settingsCacher?.destroy();
97
+ }
98
+ };
package/package.json CHANGED
@@ -1,15 +1,19 @@
1
1
  {
2
2
  "name": "@steedos/service-cachers-manager",
3
- "version": "2.7.0-beta.8",
3
+ "version": "2.7.0",
4
4
  "main": "package.service.js",
5
5
  "license": "MIT",
6
6
  "private": false,
7
+ "scripts": {
8
+ "build": "rm -rf ./lib && tsc"
9
+ },
7
10
  "dependencies": {
8
- "@steedos/cachers": "2.7.0-beta.8",
9
- "@steedos/metadata-registrar": "2.7.0-beta.8"
11
+ "@steedos/cachers": "2.7.0",
12
+ "@steedos/metadata-registrar": "2.7.0",
13
+ "@steedos/utils": "2.7.0"
10
14
  },
11
15
  "publishConfig": {
12
16
  "access": "public"
13
17
  },
14
- "gitHead": "e243f8a2b992421c933e38677b8437ca474469bd"
18
+ "gitHead": "2f1586ea4f8af5b93753878e96f1f48adbef31a7"
15
19
  }
@@ -2,7 +2,7 @@
2
2
  * @Author: baozhoutao@steedos.com
3
3
  * @Date: 2022-03-28 09:35:35
4
4
  * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2024-01-23 16:47:39
5
+ * @LastEditTime: 2024-03-22 14:40:23
6
6
  * @Description: 维护内存缓存
7
7
  */
8
8
  "use strict";
@@ -186,9 +186,9 @@ module.exports = {
186
186
  }
187
187
  },
188
188
  "steedos-server.started": {
189
- async handler(ctx) {
189
+ handler(ctx) {
190
190
  // 初始化缓存
191
- await this.loadProfiles();
191
+ this.loadProfiles();
192
192
  }
193
193
  },
194
194
  "@permission_set.*": {
@@ -266,5 +266,14 @@ module.exports = {
266
266
  core.loadObjectTranslations();
267
267
  this.loadActionTriggers(this.broker);
268
268
  this.loadTriggers(this.broker);
269
+
270
+ this.broker.createService(require("./metadata-cachers.service"));
269
271
  },
272
+
273
+ async stopped(){
274
+ this.actionFieldUpdateCacher?.destroy();
275
+ this.workflowOutboundMessageCacher?.destroy();
276
+ this.workflowNotificationCacher?.destroy();
277
+ this.workflowRuleCacher?.destroy();
278
+ }
270
279
  };
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './metadata-cachers/index';
@@ -0,0 +1,15 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2024-03-22 11:18:23
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2024-03-22 11:32:28
6
+ * @Description:
7
+ */
8
+
9
+ import { MetadataCacherBase } from './base'
10
+
11
+ export class ActionFieldUpdateCacher extends MetadataCacherBase{
12
+ constructor(){
13
+ super('action_field_updates', true);
14
+ }
15
+ }
@@ -0,0 +1,88 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2024-03-22 09:49:22
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2024-04-15 16:39:05
6
+ * @Description:
7
+ */
8
+ const cachers = require('@steedos/cachers');
9
+ const { metadataDriver } = require('@steedos/utils')
10
+
11
+ declare var Creator;
12
+
13
+ export class MetadataCacherBase {
14
+ supportSpace = true;
15
+ cacher;
16
+ metadataName;
17
+ collectionName;
18
+ observeHandle;
19
+ cacherName;
20
+ observeQuery;
21
+
22
+ constructor(collectionName, supportSpace, observeQuery = {}) {
23
+ this.collectionName = collectionName;
24
+ this.supportSpace = supportSpace;
25
+ this.cacherName = `metadata.${collectionName}`
26
+ this.cacher = cachers.getCacher(this.cacherName);
27
+ this.observeQuery = observeQuery;
28
+
29
+ try {
30
+ this.observeHandle = Creator.getCollection(collectionName).find(observeQuery).observe({
31
+ added: (doc)=>{
32
+ this.onAdded(doc)
33
+ },
34
+ changed: (doc, oldDoc)=>{
35
+ this.onChanged(doc, oldDoc)
36
+ },
37
+ removed: (doc)=>{
38
+ this.onRemoved(doc)
39
+ }
40
+ });
41
+ } catch (error) {
42
+ console.error(`${collectionName} observeHandle error`, error);
43
+ }
44
+ }
45
+ onAdded(doc){
46
+ this.set(doc._id, doc);
47
+ }
48
+
49
+ onChanged(newDoc, oldDoc) {
50
+ this.set(newDoc._id, newDoc);
51
+ }
52
+
53
+ onRemoved(doc) {
54
+ this.delete(doc._id);
55
+ }
56
+
57
+ set(_id, value) {
58
+ if(!_id){
59
+ throw new Error('key is null')
60
+ }
61
+ return this.cacher.set(_id, value);
62
+ }
63
+
64
+ delete(_id) {
65
+ return this.cacher.delete(_id);
66
+ }
67
+
68
+ get(_id) {
69
+ return this.cacher.get(_id);
70
+ }
71
+
72
+ find(filters, spaceId?) {
73
+ const records = this.cacher.values();
74
+ if (this.supportSpace) {
75
+ filters = [filters, ['space', '=', spaceId]]
76
+ return metadataDriver.find(records, {filters}, spaceId);
77
+ }
78
+ return metadataDriver.find(records, {filters});
79
+ }
80
+
81
+ // 销毁
82
+ destroy() {
83
+ if (this.observeHandle) {
84
+ this.observeHandle.stop();
85
+ this.cacher.clearCacher(this.cacherName);
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,13 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2024-03-22 11:23:14
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2024-04-12 15:15:45
6
+ * @Description:
7
+ */
8
+ export { ActionFieldUpdateCacher } from './action_field_updates'
9
+ export { WorkflowNotificationCacher } from './workflow_notifications';
10
+ export { WorkflowOutboundMessageCacher } from './workflow_outbound_messages'
11
+ export { WorkflowRuleCacher } from './workflow_rule';
12
+ export { ObjectValidationRulesCacher } from './object_validation_rules'
13
+ export { SettingsCacher } from './settings'
@@ -0,0 +1,15 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2024-03-22 11:18:23
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2024-03-29 13:34:04
6
+ * @Description:
7
+ */
8
+
9
+ import { MetadataCacherBase } from './base'
10
+
11
+ export class ObjectValidationRulesCacher extends MetadataCacherBase{
12
+ constructor(){
13
+ super('object_validation_rules', true);
14
+ }
15
+ }
@@ -0,0 +1,7 @@
1
+ import { MetadataCacherBase } from './base'
2
+
3
+ export class SettingsCacher extends MetadataCacherBase{
4
+ constructor(){
5
+ super('settings', true, {type: 'space', key: {$exists: true}});
6
+ }
7
+ }
@@ -0,0 +1,17 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2024-03-22 11:18:42
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2024-03-22 11:32:30
6
+ * @Description:
7
+ */
8
+
9
+
10
+
11
+ import { MetadataCacherBase } from './base'
12
+
13
+ export class WorkflowNotificationCacher extends MetadataCacherBase{
14
+ constructor(){
15
+ super('workflow_notifications', true);
16
+ }
17
+ }
@@ -0,0 +1,15 @@
1
+ /*
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2024-03-22 11:18:42
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2024-03-22 11:21:04
6
+ * @Description:
7
+ */
8
+
9
+ import { MetadataCacherBase } from './base'
10
+
11
+ export class WorkflowOutboundMessageCacher extends MetadataCacherBase{
12
+ constructor(){
13
+ super('workflow_outbound_messages', true);
14
+ }
15
+ }
@@ -0,0 +1,10 @@
1
+
2
+
3
+
4
+ import { MetadataCacherBase } from './base'
5
+
6
+ export class WorkflowRuleCacher extends MetadataCacherBase{
7
+ constructor(){
8
+ super('workflow_rule', true);
9
+ }
10
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "./lib",
4
+ "target": "es5",
5
+ "module": "commonjs",
6
+ "moduleResolution": "node",
7
+ "importHelpers": true,
8
+ "emitDecoratorMetadata": true,
9
+ "experimentalDecorators": true,
10
+ "sourceMap": true,
11
+ "noImplicitAny": false,
12
+ "declaration": true,
13
+ "noFallthroughCasesInSwitch": true,
14
+ //"noImplicitReturns": true,
15
+ "stripInternal": true,
16
+ "pretty": true,
17
+ "strictNullChecks": false,
18
+ "noUnusedLocals": false,
19
+ "downlevelIteration": true,
20
+ "skipLibCheck": true,
21
+ "lib": [
22
+ "es5",
23
+ "es6",
24
+ "es2015",
25
+ "es2016",
26
+ "es2017",
27
+ "esnext"
28
+ ],
29
+ "removeComments": true
30
+ },
31
+ "include": [
32
+ "./src/**/*"
33
+ ]
34
+ }