@xyo-network/react-node 2.59.0-rc.3 → 2.59.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAO5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAE,MAA6B,EAAmD,EAAE;IAC1I,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAClE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA8B,CAAA;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,SAAS,IAAI,YAAY,CAAA;QAC5C,IAAI,UAAU,IAAI,aAAa,EAAE;YAC/B,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;iBACpC;YACH,CAAC,CAAC,CAAA;YACF,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;YACH,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;YACrE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YACzC,SAAS,CAAC,MAAM,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;SACd;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;QAChB,uDAAuD;IACzD,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"useModuleFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAO5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAE,MAA6B,EAAmD,EAAE;IAC1I,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAClE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA8B,CAAA;IAClE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,SAAS,IAAI,YAAY,CAAA;QAC5C,IAAI,UAAU,IAAI,aAAa,EAAE;YAC/B,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;iBACpC;YACH,CAAC,CAAC,CAAA;YACF,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7C,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;oBAC7E,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;YACH,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;YACrE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YACzC,SAAS,CAAC,MAAM,CAAC,CAAA;YACjB,OAAO,MAAM,CAAA;SACd;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;QAChB,uDAAuD;IACzD,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
@@ -1,58 +1,32 @@
1
1
  import { usePromise } from '@xylabs/react-promise';
2
- import { isModuleInstance } from '@xyo-network/module-model';
3
- import { useRefresh } from '@xyo-network/react-module';
4
- import { useDataState } from '@xyo-network/react-shared';
5
- import compact from 'lodash/compact';
6
- import { useEffect, useRef, useState } from 'react';
2
+ import { useState } from 'react';
7
3
  import { useProvidedNode } from './provided';
8
4
  export const useModulesFromNode = (filter, config) => {
9
5
  const [providedNode] = useProvidedNode();
10
- const [configMemo, setConfigMemo] = useDataState(config);
11
- const [refreshed, refresh] = useRefresh();
12
- const [resolvedModules, setResolvedModules] = useState();
13
- setConfigMemo(config);
14
- //we store this to prevent the need of a deep compare to prevent re-render
15
- const modulesLength = useRef();
16
- const eventUnsubscribe = [];
17
- const [, resolvedModulesError] = usePromise(async () => {
18
- const { logger, ...resolverConfig } = configMemo ?? {};
19
- const activeNode = configMemo?.node ?? providedNode;
6
+ const { logger, node: paramNode, ...resolveConfig } = config ?? {};
7
+ const [result, setResult] = useState();
8
+ const [, error] = usePromise(async () => {
9
+ logger?.debug('useModuleFromNode: resolving');
10
+ const activeNode = paramNode ?? providedNode;
20
11
  if (activeNode) {
21
- const allResolvedModules = compact((await activeNode.resolve(filter, resolverConfig)).map((module) => (isModuleInstance(module) ? module : undefined)));
22
- logger?.debug(`getModulesFromResolution:allResolvedModules [${allResolvedModules?.length}]`);
23
- if (allResolvedModules?.length !== modulesLength.current) {
24
- logger?.debug(`getModulesFromResolution-setting: [${allResolvedModules?.length}]`);
25
- modulesLength.current = allResolvedModules?.length;
26
- setResolvedModules(allResolvedModules);
27
- return allResolvedModules?.length;
28
- }
12
+ activeNode.on('moduleAttached', async ({ module }) => {
13
+ logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`);
14
+ const moduleInstances = await activeNode.resolve(filter, resolveConfig);
15
+ setResult(moduleInstances);
16
+ });
17
+ activeNode.on('moduleDetached', async ({ module }) => {
18
+ logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`);
19
+ const moduleInstances = await activeNode.resolve(filter, resolveConfig);
20
+ setResult(moduleInstances);
21
+ });
22
+ const moduleInstances = await activeNode.resolve(filter, resolveConfig);
23
+ setResult(moduleInstances);
24
+ setResult(moduleInstances);
25
+ return moduleInstances;
29
26
  }
30
- return modulesLength.current;
31
- }, [providedNode, filter, configMemo, refreshed]);
32
- useEffect(() => {
33
- const { logger, node } = configMemo ?? {};
34
- const activeNode = node ?? providedNode;
35
- if (activeNode) {
36
- while (eventUnsubscribe.length) {
37
- eventUnsubscribe.pop()?.();
38
- }
39
- eventUnsubscribe.push(activeNode.on('moduleAttached', ({ module }) => {
40
- logger?.debug(`moduleAttached: useModulesFromNode [${module.config.name ?? module.address}]`);
41
- refresh();
42
- }));
43
- eventUnsubscribe.push(activeNode.on('moduleDetached', ({ module }) => {
44
- logger?.debug(`moduleDetached: useModulesFromNode [${module.config.name ?? module.address}]`);
45
- refresh();
46
- }));
47
- }
48
- return () => {
49
- //unsubscribe events
50
- eventUnsubscribe.forEach((func) => func());
51
- while (eventUnsubscribe.length) {
52
- eventUnsubscribe.pop();
53
- }
54
- };
55
- }, [providedNode, configMemo]);
56
- return [resolvedModules, resolvedModulesError];
27
+ console.log('Result: No Node');
28
+ return undefined;
29
+ }, [paramNode, providedNode, filter]);
30
+ return [result, error];
57
31
  };
58
32
  //# sourceMappingURL=useModulesFromNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAE,MAA6B,EAAqD,EAAE;IAC5I,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAClE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAgC,CAAA;IACpE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,SAAS,IAAI,YAAY,CAAA;QAC5C,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACnD,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YACF,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACnD,MAAM,EAAE,KAAK,CAAC,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5F,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YACF,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvE,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,SAAS,CAAC,eAAe,CAAC,CAAA;YAC1B,OAAO,eAAe,CAAA;SACvB;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IACrC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKhD,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,iBAAiB,mBAAoB,MAAM,WAAW,oBAAoB,KAAG,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA8BvI,CAAA"}
1
+ {"version":3,"file":"useModuleFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModuleFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKhD,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,iBAAiB,mBAAoB,MAAM,WAAW,oBAAoB,KAAG,CAAC,cAAc,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA8BvI,CAAA"}
@@ -1,4 +1,5 @@
1
- import { ModuleFilter, ModuleInstance } from '@xyo-network/module-model';
1
+ import { ModuleFilter } from '@xyo-network/module';
2
+ import { ModuleInstance } from '@xyo-network/module-model';
2
3
  import { ModuleFromNodeConfig } from './useModuleFromNode';
3
- export declare const useModulesFromNode: (filter?: ModuleFilter, config?: ModuleFromNodeConfig) => [ModuleInstance[] | null | undefined, Error | undefined];
4
+ export declare const useModulesFromNode: (filter?: ModuleFilter, config?: ModuleFromNodeConfig) => [ModuleInstance[] | undefined, Error | undefined];
4
5
  //# sourceMappingURL=useModulesFromNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAO1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,eAAO,MAAM,kBAAkB,YACpB,YAAY,WACZ,oBAAoB,KAC5B,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA8DzD,CAAA"}
1
+ {"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,eAAO,MAAM,kBAAkB,YAAa,YAAY,WAAW,oBAAoB,KAAG,CAAC,cAAc,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2BzI,CAAA"}
package/package.json CHANGED
@@ -17,24 +17,19 @@
17
17
  "@xylabs/react-shared": "~2.17.7",
18
18
  "@xyo-network/logger": "^2.67.0",
19
19
  "@xyo-network/module": "^2.67.0",
20
- "@xyo-network/module-events": "^2.67.0",
21
20
  "@xyo-network/module-model": "^2.67.0",
22
21
  "@xyo-network/node": "^2.67.0",
23
22
  "@xyo-network/node-model": "^2.67.0",
24
- "@xyo-network/react-module": "~2.59.0-rc.3",
25
- "@xyo-network/react-node-context": "~2.59.0-rc.3",
26
- "@xyo-network/react-node-provider": "~2.59.0-rc.3",
27
- "@xyo-network/react-shared": "~2.59.0-rc.3",
28
- "lodash": "^4.17.21"
23
+ "@xyo-network/react-node-context": "~2.59.1",
24
+ "@xyo-network/react-node-provider": "~2.59.1"
29
25
  },
30
26
  "devDependencies": {
31
27
  "@storybook/react": "^7.1.1",
32
- "@types/lodash": "^4.14.196",
33
28
  "@xylabs/ts-scripts-yarn3": "^2.19.0",
34
29
  "@xylabs/tsconfig-react": "^2.19.0",
35
30
  "@xyo-network/payload-model": "^2.67.0",
36
- "@xyo-network/react-storybook": "~2.59.0-rc.3",
37
- "@xyo-network/react-wallet": "~2.59.0-rc.3",
31
+ "@xyo-network/react-storybook": "~2.59.1",
32
+ "@xyo-network/react-wallet": "~2.59.1",
38
33
  "typescript": "^5.1.6"
39
34
  },
40
35
  "peerDependencies": {
@@ -89,6 +84,5 @@
89
84
  },
90
85
  "sideEffects": false,
91
86
  "types": "dist/types/index.d.ts",
92
- "version": "2.59.0-rc.3",
93
- "stableVersion": "2.58.0"
87
+ "version": "2.59.1"
94
88
  }
@@ -1,77 +1,36 @@
1
1
  import { usePromise } from '@xylabs/react-promise'
2
- import { EventUnsubscribeFunction } from '@xyo-network/module-events'
3
- import { isModuleInstance, ModuleFilter, ModuleInstance } from '@xyo-network/module-model'
4
- import { useRefresh } from '@xyo-network/react-module'
5
- import { useDataState } from '@xyo-network/react-shared'
6
- import compact from 'lodash/compact'
7
- import { useEffect, useRef, useState } from 'react'
2
+ import { ModuleFilter } from '@xyo-network/module'
3
+ import { ModuleInstance } from '@xyo-network/module-model'
4
+ import { useState } from 'react'
8
5
 
9
6
  import { useProvidedNode } from './provided'
10
7
  import { ModuleFromNodeConfig } from './useModuleFromNode'
11
8
 
12
- export const useModulesFromNode = (
13
- filter?: ModuleFilter,
14
- config?: ModuleFromNodeConfig,
15
- ): [ModuleInstance[] | null | undefined, Error | undefined] => {
9
+ export const useModulesFromNode = (filter?: ModuleFilter, config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {
16
10
  const [providedNode] = useProvidedNode()
17
- const [configMemo, setConfigMemo] = useDataState(config)
18
- const [refreshed, refresh] = useRefresh()
19
- const [resolvedModules, setResolvedModules] = useState<ModuleInstance[]>()
20
-
21
- setConfigMemo(config)
22
-
23
- //we store this to prevent the need of a deep compare to prevent re-render
24
- const modulesLength = useRef<number>()
25
-
26
- const eventUnsubscribe: EventUnsubscribeFunction[] = []
27
-
28
- const [, resolvedModulesError] = usePromise<number | null | undefined>(async () => {
29
- const { logger, ...resolverConfig } = configMemo ?? {}
30
- const activeNode = configMemo?.node ?? providedNode
31
- if (activeNode) {
32
- const allResolvedModules = compact(
33
- (await activeNode.resolve(filter, resolverConfig)).map((module) => (isModuleInstance(module) ? module : undefined)),
34
- )
35
- logger?.debug(`getModulesFromResolution:allResolvedModules [${allResolvedModules?.length}]`)
36
- if (allResolvedModules?.length !== modulesLength.current) {
37
- logger?.debug(`getModulesFromResolution-setting: [${allResolvedModules?.length}]`)
38
- modulesLength.current = allResolvedModules?.length
39
- setResolvedModules(allResolvedModules)
40
- return allResolvedModules?.length
41
- }
42
- }
43
- return modulesLength.current
44
- }, [providedNode, filter, configMemo, refreshed])
45
-
46
- useEffect(() => {
47
- const { logger, node } = configMemo ?? {}
48
- const activeNode = node ?? providedNode
11
+ const { logger, node: paramNode, ...resolveConfig } = config ?? {}
12
+ const [result, setResult] = useState<ModuleInstance[] | undefined>()
13
+ const [, error] = usePromise(async () => {
14
+ logger?.debug('useModuleFromNode: resolving')
15
+ const activeNode = paramNode ?? providedNode
49
16
  if (activeNode) {
50
- while (eventUnsubscribe.length) {
51
- eventUnsubscribe.pop()?.()
52
- }
53
- eventUnsubscribe.push(
54
- activeNode.on('moduleAttached', ({ module }) => {
55
- logger?.debug(`moduleAttached: useModulesFromNode [${module.config.name ?? module.address}]`)
56
- refresh()
57
- }),
58
- )
59
- eventUnsubscribe.push(
60
- activeNode.on('moduleDetached', ({ module }) => {
61
- logger?.debug(`moduleDetached: useModulesFromNode [${module.config.name ?? module.address}]`)
62
- refresh()
63
- }),
64
- )
17
+ activeNode.on('moduleAttached', async ({ module }) => {
18
+ logger?.debug(`useModuleFromNode: moduleAttached [${module.config.name ?? module.address}]`)
19
+ const moduleInstances = await activeNode.resolve(filter, resolveConfig)
20
+ setResult(moduleInstances)
21
+ })
22
+ activeNode.on('moduleDetached', async ({ module }) => {
23
+ logger?.debug(`useModuleFromNode: moduleDetached [${module.config.name ?? module.address}]`)
24
+ const moduleInstances = await activeNode.resolve(filter, resolveConfig)
25
+ setResult(moduleInstances)
26
+ })
27
+ const moduleInstances = await activeNode.resolve(filter, resolveConfig)
28
+ setResult(moduleInstances)
29
+ setResult(moduleInstances)
30
+ return moduleInstances
65
31
  }
66
-
67
- return () => {
68
- //unsubscribe events
69
- eventUnsubscribe.forEach((func) => func())
70
- while (eventUnsubscribe.length) {
71
- eventUnsubscribe.pop()
72
- }
73
- }
74
- }, [providedNode, configMemo])
75
-
76
- return [resolvedModules, resolvedModulesError]
32
+ console.log('Result: No Node')
33
+ return undefined
34
+ }, [paramNode, providedNode, filter])
35
+ return [result, error]
77
36
  }