@xyo-network/module-abstract 2.94.19 → 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.
- package/dist/browser/AbstractModuleInstance.d.cts.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.mts.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.ts.map +1 -1
- package/dist/browser/index.cjs +8 -111
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +0 -1
- package/dist/browser/index.d.cts.map +1 -1
- package/dist/browser/index.d.mts +0 -1
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.d.ts +0 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +1 -104
- package/dist/browser/index.js.map +1 -1
- package/dist/node/AbstractModuleInstance.d.cts.map +1 -1
- package/dist/node/AbstractModuleInstance.d.mts.map +1 -1
- package/dist/node/AbstractModuleInstance.d.ts.map +1 -1
- package/dist/node/index.cjs +8 -111
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +0 -1
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +0 -1
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +0 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -103
- package/dist/node/index.js.map +1 -1
- package/package.json +17 -17
- package/src/AbstractModuleInstance.ts +2 -1
- package/src/index.ts +0 -1
- package/dist/browser/ResolveHelper.d.cts +0 -19
- package/dist/browser/ResolveHelper.d.cts.map +0 -1
- package/dist/browser/ResolveHelper.d.mts +0 -19
- package/dist/browser/ResolveHelper.d.mts.map +0 -1
- package/dist/browser/ResolveHelper.d.ts +0 -19
- package/dist/browser/ResolveHelper.d.ts.map +0 -1
- package/dist/node/ResolveHelper.d.cts +0 -19
- package/dist/node/ResolveHelper.d.cts.map +0 -1
- package/dist/node/ResolveHelper.d.mts +0 -19
- package/dist/node/ResolveHelper.d.mts.map +0 -1
- package/dist/node/ResolveHelper.d.ts +0 -19
- package/dist/node/ResolveHelper.d.ts.map +0 -1
- 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"}
|
package/src/ResolveHelper.ts
DELETED
|
@@ -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
|
-
}
|