@xyo-network/module-abstract 2.94.18 → 2.94.20

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 (42) hide show
  1. package/dist/browser/AbstractModuleInstance.d.cts.map +1 -1
  2. package/dist/browser/AbstractModuleInstance.d.mts.map +1 -1
  3. package/dist/browser/AbstractModuleInstance.d.ts.map +1 -1
  4. package/dist/browser/index.cjs +8 -111
  5. package/dist/browser/index.cjs.map +1 -1
  6. package/dist/browser/index.d.cts +0 -1
  7. package/dist/browser/index.d.cts.map +1 -1
  8. package/dist/browser/index.d.mts +0 -1
  9. package/dist/browser/index.d.mts.map +1 -1
  10. package/dist/browser/index.d.ts +0 -1
  11. package/dist/browser/index.d.ts.map +1 -1
  12. package/dist/browser/index.js +1 -104
  13. package/dist/browser/index.js.map +1 -1
  14. package/dist/node/AbstractModuleInstance.d.cts.map +1 -1
  15. package/dist/node/AbstractModuleInstance.d.mts.map +1 -1
  16. package/dist/node/AbstractModuleInstance.d.ts.map +1 -1
  17. package/dist/node/index.cjs +8 -111
  18. package/dist/node/index.cjs.map +1 -1
  19. package/dist/node/index.d.cts +0 -1
  20. package/dist/node/index.d.cts.map +1 -1
  21. package/dist/node/index.d.mts +0 -1
  22. package/dist/node/index.d.mts.map +1 -1
  23. package/dist/node/index.d.ts +0 -1
  24. package/dist/node/index.d.ts.map +1 -1
  25. package/dist/node/index.js +1 -103
  26. package/dist/node/index.js.map +1 -1
  27. package/package.json +17 -17
  28. package/src/AbstractModuleInstance.ts +2 -1
  29. package/src/index.ts +0 -1
  30. package/dist/browser/ResolveHelper.d.cts +0 -19
  31. package/dist/browser/ResolveHelper.d.cts.map +0 -1
  32. package/dist/browser/ResolveHelper.d.mts +0 -19
  33. package/dist/browser/ResolveHelper.d.mts.map +0 -1
  34. package/dist/browser/ResolveHelper.d.ts +0 -19
  35. package/dist/browser/ResolveHelper.d.ts.map +0 -1
  36. package/dist/node/ResolveHelper.d.cts +0 -19
  37. package/dist/node/ResolveHelper.d.cts.map +0 -1
  38. package/dist/node/ResolveHelper.d.mts +0 -19
  39. package/dist/node/ResolveHelper.d.mts.map +0 -1
  40. package/dist/node/ResolveHelper.d.ts +0 -19
  41. package/dist/node/ResolveHelper.d.ts.map +0 -1
  42. package/src/ResolveHelper.ts +0 -127
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolveHelper.d.ts","sourceRoot":"","sources":["../../src/ResolveHelper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAY,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAoB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEjJ,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;WAChB,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAuEzB,MAAM,CAAC,uBAAuB,CAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,EAClC,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,SAAS,EACrD,UAAU,EAAE,gBAAgB,GAAG,YAAY,EAC3C,MAAM,qBAAqB;CAmB9B"}
@@ -1,19 +0,0 @@
1
- import { Address } from '@xylabs/hex';
2
- import { Logger } from '@xylabs/logger';
3
- import { ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleResolver } from '@xyo-network/module-model';
4
- export interface ResolveHelperConfig {
5
- address: Address;
6
- dead?: boolean;
7
- downResolver?: ModuleResolver;
8
- logger?: Logger;
9
- module: ModuleInstance;
10
- upResolver?: ModuleResolver;
11
- }
12
- export declare class ResolveHelper {
13
- static defaultLogger?: Logger;
14
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
15
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, filter: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
16
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
17
- static validateRequiredResolve(required: boolean | 'warn' | 'log', result: ModuleInstance[] | ModuleInstance | undefined, idOrFilter: ModuleIdentifier | ModuleFilter, logger?: Logger | undefined): void;
18
- }
19
- //# sourceMappingURL=ResolveHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolveHelper.d.ts","sourceRoot":"","sources":["../../src/ResolveHelper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAY,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAoB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEjJ,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;WAChB,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAuEzB,MAAM,CAAC,uBAAuB,CAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,EAClC,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,SAAS,EACrD,UAAU,EAAE,gBAAgB,GAAG,YAAY,EAC3C,MAAM,qBAAqB;CAmB9B"}
@@ -1,19 +0,0 @@
1
- import { Address } from '@xylabs/hex';
2
- import { Logger } from '@xylabs/logger';
3
- import { ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleResolver } from '@xyo-network/module-model';
4
- export interface ResolveHelperConfig {
5
- address: Address;
6
- dead?: boolean;
7
- downResolver?: ModuleResolver;
8
- logger?: Logger;
9
- module: ModuleInstance;
10
- upResolver?: ModuleResolver;
11
- }
12
- export declare class ResolveHelper {
13
- static defaultLogger?: Logger;
14
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
15
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, filter: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
16
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
17
- static validateRequiredResolve(required: boolean | 'warn' | 'log', result: ModuleInstance[] | ModuleInstance | undefined, idOrFilter: ModuleIdentifier | ModuleFilter, logger?: Logger | undefined): void;
18
- }
19
- //# sourceMappingURL=ResolveHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolveHelper.d.ts","sourceRoot":"","sources":["../../src/ResolveHelper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAY,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAoB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEjJ,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;WAChB,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAuEzB,MAAM,CAAC,uBAAuB,CAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,EAClC,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,SAAS,EACrD,UAAU,EAAE,gBAAgB,GAAG,YAAY,EAC3C,MAAM,qBAAqB;CAmB9B"}
@@ -1,19 +0,0 @@
1
- import { Address } from '@xylabs/hex';
2
- import { Logger } from '@xylabs/logger';
3
- import { ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleResolver } from '@xyo-network/module-model';
4
- export interface ResolveHelperConfig {
5
- address: Address;
6
- dead?: boolean;
7
- downResolver?: ModuleResolver;
8
- logger?: Logger;
9
- module: ModuleInstance;
10
- upResolver?: ModuleResolver;
11
- }
12
- export declare class ResolveHelper {
13
- static defaultLogger?: Logger;
14
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
15
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, filter: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
16
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
17
- static validateRequiredResolve(required: boolean | 'warn' | 'log', result: ModuleInstance[] | ModuleInstance | undefined, idOrFilter: ModuleIdentifier | ModuleFilter, logger?: Logger | undefined): void;
18
- }
19
- //# sourceMappingURL=ResolveHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolveHelper.d.ts","sourceRoot":"","sources":["../../src/ResolveHelper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAY,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAoB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEjJ,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;WAChB,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAuEzB,MAAM,CAAC,uBAAuB,CAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,EAClC,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,SAAS,EACrD,UAAU,EAAE,gBAAgB,GAAG,YAAY,EAC3C,MAAM,qBAAqB;CAmB9B"}
@@ -1,19 +0,0 @@
1
- import { Address } from '@xylabs/hex';
2
- import { Logger } from '@xylabs/logger';
3
- import { ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleResolver } from '@xyo-network/module-model';
4
- export interface ResolveHelperConfig {
5
- address: Address;
6
- dead?: boolean;
7
- downResolver?: ModuleResolver;
8
- logger?: Logger;
9
- module: ModuleInstance;
10
- upResolver?: ModuleResolver;
11
- }
12
- export declare class ResolveHelper {
13
- static defaultLogger?: Logger;
14
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
15
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, filter: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
16
- static resolve<T extends ModuleInstance = ModuleInstance>(config: ResolveHelperConfig, id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
17
- static validateRequiredResolve(required: boolean | 'warn' | 'log', result: ModuleInstance[] | ModuleInstance | undefined, idOrFilter: ModuleIdentifier | ModuleFilter, logger?: Logger | undefined): void;
18
- }
19
- //# sourceMappingURL=ResolveHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResolveHelper.d.ts","sourceRoot":"","sources":["../../src/ResolveHelper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAY,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAoB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEjJ,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;WAChB,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;WACF,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,MAAM,EAAE,mBAAmB,EAC3B,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAuEzB,MAAM,CAAC,uBAAuB,CAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,EAClC,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,SAAS,EACrD,UAAU,EAAE,gBAAgB,GAAG,YAAY,EAC3C,MAAM,qBAAqB;CAmB9B"}
@@ -1,127 +0,0 @@
1
- /* eslint-disable max-statements */
2
- /* eslint-disable complexity */
3
- import { Address } from '@xylabs/hex'
4
- import { IdLogger, Logger } from '@xylabs/logger'
5
- import { toJsonString } from '@xylabs/object'
6
- import { duplicateModules, ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleResolver } from '@xyo-network/module-model'
7
-
8
- export interface ResolveHelperConfig {
9
- address: Address
10
- dead?: boolean
11
- downResolver?: ModuleResolver
12
- logger?: Logger
13
- module: ModuleInstance
14
- upResolver?: ModuleResolver
15
- }
16
-
17
- export class ResolveHelper {
18
- static defaultLogger?: Logger
19
- static async resolve<T extends ModuleInstance = ModuleInstance>(
20
- config: ResolveHelperConfig,
21
- all: '*',
22
- options?: ModuleFilterOptions<T>,
23
- ): Promise<T[]>
24
- static async resolve<T extends ModuleInstance = ModuleInstance>(
25
- config: ResolveHelperConfig,
26
- filter: ModuleFilter,
27
- options?: ModuleFilterOptions<T>,
28
- ): Promise<T[]>
29
- static async resolve<T extends ModuleInstance = ModuleInstance>(
30
- config: ResolveHelperConfig,
31
- id: ModuleIdentifier,
32
- options?: ModuleFilterOptions<T>,
33
- ): Promise<T | undefined>
34
- static async resolve<T extends ModuleInstance = ModuleInstance>(
35
- config: ResolveHelperConfig,
36
- idOrFilter: ModuleFilter<T> | ModuleIdentifier = '*',
37
- { visibility, maxDepth = 3, required = 'log', ...options }: ModuleFilterOptions<T> = {},
38
- ): Promise<T | T[] | undefined> {
39
- const { module, logger = this.defaultLogger, dead = false, upResolver, downResolver } = config
40
- const log = logger ? new IdLogger(logger, () => `ResolveHelper [${module.id}][${idOrFilter}][${visibility}]`) : undefined
41
-
42
- const downLocalOptions: ModuleFilterOptions<T> = { ...options, direction: 'down', maxDepth, required: false, visibility }
43
- const upLocalOptions: ModuleFilterOptions<T> = { ...downLocalOptions, direction: 'up' }
44
-
45
- const childOptions: ModuleFilterOptions<T> = { ...options, maxDepth: maxDepth - 1, required: false, visibility }
46
-
47
- const direction = options?.direction ?? 'all'
48
- const up = direction === 'up' || direction === 'all'
49
- const down = direction === 'down' || direction === 'all'
50
- let result: T | T[] | undefined
51
- log?.debug('start', idOrFilter, maxDepth)
52
- if (idOrFilter === '*') {
53
- if (dead) {
54
- log?.warn('failed [dead]', idOrFilter)
55
- return []
56
- }
57
- const modules = [
58
- ...(down ? await (downResolver as ModuleResolver).resolve<T>('*', downLocalOptions) : []),
59
- ...(up ? await (upResolver as ModuleResolver).resolve<T>('*', upLocalOptions) : []),
60
- ]
61
- .filter(duplicateModules)
62
- .filter((module) => module.address !== config.address)
63
-
64
- if (modules.length > 0) {
65
- log?.log('modules [count]', modules.length)
66
- log?.debug('modules', toJsonString(modules, 4))
67
- }
68
-
69
- if (maxDepth === 0) {
70
- return modules
71
- }
72
- const childModules = (await Promise.all(modules.map(async (module) => await module.resolve<T>('*', childOptions))))
73
- .flat()
74
- .filter(duplicateModules)
75
- return [...modules, ...childModules].filter(duplicateModules)
76
- } else {
77
- switch (typeof idOrFilter) {
78
- case 'string': {
79
- if (dead) {
80
- return undefined
81
- }
82
- result =
83
- (down ? await (downResolver as ModuleResolver).resolve<T>(idOrFilter, downLocalOptions) : undefined) ??
84
- (up ? await (upResolver as ModuleResolver).resolve<T>(idOrFilter, upLocalOptions) : undefined)
85
- break
86
- }
87
- default: {
88
- if (dead) {
89
- return []
90
- }
91
- const filter: ModuleFilter<T> | undefined = idOrFilter
92
- result = [
93
- ...(down ? await (downResolver as ModuleResolver).resolve<T>(filter, downLocalOptions) : []),
94
- ...(up ? await (upResolver as ModuleResolver).resolve<T>(filter, upLocalOptions) : []),
95
- ].filter(duplicateModules)
96
- break
97
- }
98
- }
99
- }
100
- this.validateRequiredResolve(required, result, idOrFilter, logger)
101
- return result
102
- }
103
-
104
- static validateRequiredResolve(
105
- required: boolean | 'warn' | 'log',
106
- result: ModuleInstance[] | ModuleInstance | undefined,
107
- idOrFilter: ModuleIdentifier | ModuleFilter,
108
- logger = this.defaultLogger,
109
- ) {
110
- const log = logger ? new IdLogger(logger, () => `validateRequiredResolve [${idOrFilter}][${result}]`) : undefined
111
- if (required && (result === undefined || (Array.isArray(result) && result.length > 0))) {
112
- switch (required) {
113
- case 'warn': {
114
- log?.warn('resolve failed', idOrFilter)
115
- break
116
- }
117
- case 'log': {
118
- log?.log('resolve failed', idOrFilter)
119
- break
120
- }
121
- default: {
122
- throw new Error(`resolve failed [${idOrFilter}]`)
123
- }
124
- }
125
- }
126
- }
127
- }