@xyo-network/node 2.51.4 → 2.51.5

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.
@@ -8,6 +8,7 @@ const promise_1 = require("@xylabs/promise");
8
8
  const module_1 = require("@xyo-network/module");
9
9
  const AbstractNode_1 = require("./AbstractNode");
10
10
  const Config_1 = require("./Config");
11
+ const NodeWrapper_1 = require("./NodeWrapper");
11
12
  class MemoryNode extends AbstractNode_1.AbstractNode {
12
13
  constructor() {
13
14
  super(...arguments);
@@ -38,20 +39,59 @@ class MemoryNode extends AbstractNode_1.AbstractNode {
38
39
  }
39
40
  const args = { module, name: module.config.name };
40
41
  (_f = this.moduleAttachedEventListeners) === null || _f === void 0 ? void 0 : _f.map((listener) => listener(args));
42
+ const wrappedAsNode = NodeWrapper_1.NodeWrapper.tryWrap(module);
43
+ if (wrappedAsNode && external) {
44
+ const attachEmitter = wrappedAsNode.module;
45
+ const detachEmitter = wrappedAsNode.module;
46
+ attachEmitter.on('moduleAttached', (args) => { var _a; return (_a = this.moduleAttachedEventListeners) === null || _a === void 0 ? void 0 : _a.map((listener) => listener(args)); });
47
+ detachEmitter.on('moduleDetached', (args) => { var _a; return (_a = this.moduleDetachedEventListeners) === null || _a === void 0 ? void 0 : _a.map((listener) => listener(args)); });
48
+ const notifyOfExistingModules = (node) => tslib_1.__awaiter(this, void 0, void 0, function* () {
49
+ //send attach events for all existing attached modules
50
+ const childModules = yield node.resolve();
51
+ yield Promise.all(childModules.map((child) => {
52
+ var _a;
53
+ (_a = this.moduleAttachedEventListeners) === null || _a === void 0 ? void 0 : _a.map((listener) => listener({ module: child }));
54
+ const wrappedAsNode = NodeWrapper_1.NodeWrapper.tryWrap(child);
55
+ if (wrappedAsNode) {
56
+ return notifyOfExistingModules(wrappedAsNode);
57
+ }
58
+ }));
59
+ });
60
+ yield notifyOfExistingModules(wrappedAsNode);
61
+ }
41
62
  });
42
63
  }
43
64
  detach(address) {
44
65
  var _a, _b, _c, _d, _e;
45
- const module = (0, assert_1.assertEx)(this.registeredModuleMap[address], 'No module found at that address');
46
- this.privateResolver.removeResolver(module.downResolver);
47
- //remove inside access
48
- (_b = (_a = module.upResolver) === null || _a === void 0 ? void 0 : _a.removeResolver) === null || _b === void 0 ? void 0 : _b.call(_a, this.privateResolver);
49
- //remove outside access
50
- (_d = (_c = module.upResolver) === null || _c === void 0 ? void 0 : _c.removeResolver) === null || _d === void 0 ? void 0 : _d.call(_c, this.upResolver);
51
- //remove external exposure
52
- this.downResolver.removeResolver(module.downResolver);
53
- const args = { module, name: module.config.name };
54
- (_e = this.moduleDetachedEventListeners) === null || _e === void 0 ? void 0 : _e.map((listener) => listener(args));
66
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
67
+ const module = (0, assert_1.assertEx)(this.registeredModuleMap[address], 'No module found at that address');
68
+ this.privateResolver.removeResolver(module.downResolver);
69
+ //remove inside access
70
+ (_b = (_a = module.upResolver) === null || _a === void 0 ? void 0 : _a.removeResolver) === null || _b === void 0 ? void 0 : _b.call(_a, this.privateResolver);
71
+ //remove outside access
72
+ (_d = (_c = module.upResolver) === null || _c === void 0 ? void 0 : _c.removeResolver) === null || _d === void 0 ? void 0 : _d.call(_c, this.upResolver);
73
+ //remove external exposure
74
+ this.downResolver.removeResolver(module.downResolver);
75
+ const args = { module, name: module.config.name };
76
+ (_e = this.moduleDetachedEventListeners) === null || _e === void 0 ? void 0 : _e.map((listener) => listener(args));
77
+ //notify of all sub node children detach
78
+ const wrappedAsNode = NodeWrapper_1.NodeWrapper.tryWrap(module);
79
+ if (wrappedAsNode) {
80
+ const notifyOfExistingModules = (node) => tslib_1.__awaiter(this, void 0, void 0, function* () {
81
+ //send attach events for all existing attached modules
82
+ const childModules = yield node.resolve();
83
+ yield Promise.all(childModules.map((child) => {
84
+ var _a;
85
+ (_a = this.moduleDetachedEventListeners) === null || _a === void 0 ? void 0 : _a.map((listener) => listener({ module: child }));
86
+ const wrappedAsNode = NodeWrapper_1.NodeWrapper.tryWrap(child);
87
+ if (wrappedAsNode) {
88
+ return notifyOfExistingModules(wrappedAsNode);
89
+ }
90
+ }));
91
+ });
92
+ yield notifyOfExistingModules(wrappedAsNode);
93
+ }
94
+ });
55
95
  }
56
96
  register(module) {
57
97
  (0, assert_1.assertEx)(!this.registeredModuleMap[module.address], `Module already registered at that address[${module.address}]`);
@@ -69,9 +109,11 @@ class MemoryNode extends AbstractNode_1.AbstractNode {
69
109
  });
70
110
  }
71
111
  unregister(module) {
72
- this.detach(module.address);
73
- delete this.registeredModuleMap[module.address];
74
- return this;
112
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
113
+ yield this.detach(module.address);
114
+ delete this.registeredModuleMap[module.address];
115
+ return this;
116
+ });
75
117
  }
76
118
  resolve(filter) {
77
119
  var _a, _b, _c;
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}