@xyo-network/module-resolver 2.92.11 → 2.93.0-rc.2
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/AbstractModuleResolver.d.cts +12 -0
- package/dist/browser/AbstractModuleResolver.d.cts.map +1 -0
- package/dist/browser/AbstractModuleResolver.d.mts +12 -0
- package/dist/browser/AbstractModuleResolver.d.mts.map +1 -0
- package/dist/browser/AbstractModuleResolver.d.ts +12 -0
- package/dist/browser/AbstractModuleResolver.d.ts.map +1 -0
- package/dist/browser/CompositeModuleResolver.d.cts +6 -10
- package/dist/browser/CompositeModuleResolver.d.cts.map +1 -1
- package/dist/browser/CompositeModuleResolver.d.mts +6 -10
- package/dist/browser/CompositeModuleResolver.d.mts.map +1 -1
- package/dist/browser/CompositeModuleResolver.d.ts +6 -10
- package/dist/browser/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/browser/SimpleModuleResolver.d.cts +5 -7
- package/dist/browser/SimpleModuleResolver.d.cts.map +1 -1
- package/dist/browser/SimpleModuleResolver.d.mts +5 -7
- package/dist/browser/SimpleModuleResolver.d.mts.map +1 -1
- package/dist/browser/SimpleModuleResolver.d.ts +5 -7
- package/dist/browser/SimpleModuleResolver.d.ts.map +1 -1
- package/dist/browser/index.cjs +58 -21
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +49 -12
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/toJson.d.cts +3 -0
- package/dist/browser/toJson.d.cts.map +1 -0
- package/dist/browser/toJson.d.mts +3 -0
- package/dist/browser/toJson.d.mts.map +1 -0
- package/dist/browser/toJson.d.ts +3 -0
- package/dist/browser/toJson.d.ts.map +1 -0
- package/dist/node/AbstractModuleResolver.d.cts +12 -0
- package/dist/node/AbstractModuleResolver.d.cts.map +1 -0
- package/dist/node/AbstractModuleResolver.d.mts +12 -0
- package/dist/node/AbstractModuleResolver.d.mts.map +1 -0
- package/dist/node/AbstractModuleResolver.d.ts +12 -0
- package/dist/node/AbstractModuleResolver.d.ts.map +1 -0
- package/dist/node/CompositeModuleResolver.d.cts +6 -10
- package/dist/node/CompositeModuleResolver.d.cts.map +1 -1
- package/dist/node/CompositeModuleResolver.d.mts +6 -10
- package/dist/node/CompositeModuleResolver.d.mts.map +1 -1
- package/dist/node/CompositeModuleResolver.d.ts +6 -10
- package/dist/node/CompositeModuleResolver.d.ts.map +1 -1
- package/dist/node/SimpleModuleResolver.d.cts +5 -7
- package/dist/node/SimpleModuleResolver.d.cts.map +1 -1
- package/dist/node/SimpleModuleResolver.d.mts +5 -7
- package/dist/node/SimpleModuleResolver.d.mts.map +1 -1
- package/dist/node/SimpleModuleResolver.d.ts +5 -7
- package/dist/node/SimpleModuleResolver.d.ts.map +1 -1
- package/dist/node/index.cjs +62 -21
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +53 -12
- package/dist/node/index.js.map +1 -1
- package/dist/node/toJson.d.cts +3 -0
- package/dist/node/toJson.d.cts.map +1 -0
- package/dist/node/toJson.d.mts +3 -0
- package/dist/node/toJson.d.mts.map +1 -0
- package/dist/node/toJson.d.ts +3 -0
- package/dist/node/toJson.d.ts.map +1 -0
- package/package.json +11 -10
- package/src/AbstractModuleResolver.ts +53 -0
- package/src/CompositeModuleResolver.ts +7 -12
- package/src/SimpleModuleResolver.ts +8 -8
- package/src/toJson.ts +45 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Base, BaseParams } from '@xylabs/object';
|
|
2
|
+
import { Promisable } from '@xylabs/promise';
|
|
3
|
+
import { ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleResolver } from '@xyo-network/module-model';
|
|
4
|
+
export declare abstract class AbstractModuleResolver<T extends BaseParams = BaseParams> extends Base<T> implements ModuleResolver {
|
|
5
|
+
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
6
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
7
|
+
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
8
|
+
/** @deprecated use '*' if trying to resolve all */
|
|
9
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
10
|
+
abstract resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter: ModuleFilter<T> | ModuleIdentifier, options?: ModuleFilterOptions<T>): Promisable<T | T[] | undefined>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=AbstractModuleResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractModuleResolver.d.ts","sourceRoot":"","sources":["../../src/AbstractModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAgB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAoB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEjJ,8BAAsB,sBAAsB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAE,YAAW,cAAc;IACjH,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5G,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3H,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxI,mDAAmD;IAC7C,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAsClI,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC/D,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAC9C,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;CACnC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Base, BaseParams } from '@xylabs/object';
|
|
2
|
+
import { Promisable } from '@xylabs/promise';
|
|
3
|
+
import { ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleResolver } from '@xyo-network/module-model';
|
|
4
|
+
export declare abstract class AbstractModuleResolver<T extends BaseParams = BaseParams> extends Base<T> implements ModuleResolver {
|
|
5
|
+
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
6
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
7
|
+
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
8
|
+
/** @deprecated use '*' if trying to resolve all */
|
|
9
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
10
|
+
abstract resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter: ModuleFilter<T> | ModuleIdentifier, options?: ModuleFilterOptions<T>): Promisable<T | T[] | undefined>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=AbstractModuleResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractModuleResolver.d.ts","sourceRoot":"","sources":["../../src/AbstractModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAgB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAoB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEjJ,8BAAsB,sBAAsB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAE,YAAW,cAAc;IACjH,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5G,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3H,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxI,mDAAmD;IAC7C,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAsClI,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC/D,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAC9C,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;CACnC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Base, BaseParams } from '@xylabs/object';
|
|
2
|
+
import { Promisable } from '@xylabs/promise';
|
|
3
|
+
import { ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleResolver } from '@xyo-network/module-model';
|
|
4
|
+
export declare abstract class AbstractModuleResolver<T extends BaseParams = BaseParams> extends Base<T> implements ModuleResolver {
|
|
5
|
+
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
6
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
7
|
+
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
8
|
+
/** @deprecated use '*' if trying to resolve all */
|
|
9
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
10
|
+
abstract resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter: ModuleFilter<T> | ModuleIdentifier, options?: ModuleFilterOptions<T>): Promisable<T | T[] | undefined>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=AbstractModuleResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractModuleResolver.d.ts","sourceRoot":"","sources":["../../src/AbstractModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAgB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAoB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEjJ,8BAAsB,sBAAsB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAE,YAAW,cAAc;IACjH,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5G,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3H,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxI,mDAAmD;IAC7C,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAsClI,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC/D,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAC9C,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;CACnC"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
|
-
import {
|
|
2
|
+
import { BaseParams } from '@xylabs/object';
|
|
3
3
|
import { Promisable } from '@xylabs/promise';
|
|
4
4
|
import { CacheConfig, ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleRepository, ModuleResolverInstance } from '@xyo-network/module-model';
|
|
5
|
+
import { LRUCache } from 'lru-cache';
|
|
6
|
+
import { AbstractModuleResolver } from './AbstractModuleResolver';
|
|
5
7
|
import { ModuleIdentifierTransformer } from './transformers';
|
|
6
8
|
export type ModuleIdentifierTransformerFunc = (id: ModuleIdentifier) => Promisable<ModuleIdentifier>;
|
|
7
9
|
export interface ModuleResolverParams extends BaseParams {
|
|
8
10
|
cache?: CacheConfig;
|
|
9
11
|
moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
|
|
10
12
|
}
|
|
11
|
-
export declare class CompositeModuleResolver extends
|
|
13
|
+
export declare class CompositeModuleResolver extends AbstractModuleResolver<ModuleResolverParams> implements ModuleRepository, ModuleResolverInstance {
|
|
12
14
|
static defaultMaxDepth: number;
|
|
15
|
+
protected _cache: LRUCache<ModuleIdentifier, ModuleInstance>;
|
|
13
16
|
protected resolvers: ModuleResolverInstance[];
|
|
14
|
-
private _cache;
|
|
15
17
|
private _localResolver;
|
|
16
18
|
constructor({ cache, ...params }?: ModuleResolverParams);
|
|
17
19
|
private get moduleIdentifierTransformers();
|
|
@@ -20,13 +22,7 @@ export declare class CompositeModuleResolver extends Base<ModuleResolverParams>
|
|
|
20
22
|
addResolver(resolver: ModuleResolverInstance): this;
|
|
21
23
|
remove(addresses: Address[] | Address): this;
|
|
22
24
|
removeResolver(resolver: ModuleResolverInstance): this;
|
|
23
|
-
|
|
24
|
-
resolve(): Promise<ModuleInstance[]>;
|
|
25
|
-
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
26
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
27
|
-
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
28
|
-
/** @deprecated use '*' if trying to resolve all */
|
|
29
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
25
|
+
resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter?: ModuleFilter<T> | ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | T[] | undefined>;
|
|
30
26
|
private addSingleModule;
|
|
31
27
|
private removeSingleModule;
|
|
32
28
|
private resolveMultipartIdentifier;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,MAAM,+BAA+B,GAAG,CAAC,EAAE,EAAE,gBAAgB,KAAK,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAEpG,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,oBAAoB,CAAE,YAAW,gBAAgB,EAAE,sBAAsB;IAC3I,MAAM,CAAC,eAAe,SAAI;IAC1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,cAAc,CAAsB;gBAEhC,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAE,oBAAyB;IAS3D,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAKnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAKhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;IAiE/B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;YAQ1B,yBAAyB;CAOxC"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
|
-
import {
|
|
2
|
+
import { BaseParams } from '@xylabs/object';
|
|
3
3
|
import { Promisable } from '@xylabs/promise';
|
|
4
4
|
import { CacheConfig, ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleRepository, ModuleResolverInstance } from '@xyo-network/module-model';
|
|
5
|
+
import { LRUCache } from 'lru-cache';
|
|
6
|
+
import { AbstractModuleResolver } from './AbstractModuleResolver';
|
|
5
7
|
import { ModuleIdentifierTransformer } from './transformers';
|
|
6
8
|
export type ModuleIdentifierTransformerFunc = (id: ModuleIdentifier) => Promisable<ModuleIdentifier>;
|
|
7
9
|
export interface ModuleResolverParams extends BaseParams {
|
|
8
10
|
cache?: CacheConfig;
|
|
9
11
|
moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
|
|
10
12
|
}
|
|
11
|
-
export declare class CompositeModuleResolver extends
|
|
13
|
+
export declare class CompositeModuleResolver extends AbstractModuleResolver<ModuleResolverParams> implements ModuleRepository, ModuleResolverInstance {
|
|
12
14
|
static defaultMaxDepth: number;
|
|
15
|
+
protected _cache: LRUCache<ModuleIdentifier, ModuleInstance>;
|
|
13
16
|
protected resolvers: ModuleResolverInstance[];
|
|
14
|
-
private _cache;
|
|
15
17
|
private _localResolver;
|
|
16
18
|
constructor({ cache, ...params }?: ModuleResolverParams);
|
|
17
19
|
private get moduleIdentifierTransformers();
|
|
@@ -20,13 +22,7 @@ export declare class CompositeModuleResolver extends Base<ModuleResolverParams>
|
|
|
20
22
|
addResolver(resolver: ModuleResolverInstance): this;
|
|
21
23
|
remove(addresses: Address[] | Address): this;
|
|
22
24
|
removeResolver(resolver: ModuleResolverInstance): this;
|
|
23
|
-
|
|
24
|
-
resolve(): Promise<ModuleInstance[]>;
|
|
25
|
-
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
26
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
27
|
-
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
28
|
-
/** @deprecated use '*' if trying to resolve all */
|
|
29
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
25
|
+
resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter?: ModuleFilter<T> | ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | T[] | undefined>;
|
|
30
26
|
private addSingleModule;
|
|
31
27
|
private removeSingleModule;
|
|
32
28
|
private resolveMultipartIdentifier;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,MAAM,+BAA+B,GAAG,CAAC,EAAE,EAAE,gBAAgB,KAAK,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAEpG,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,oBAAoB,CAAE,YAAW,gBAAgB,EAAE,sBAAsB;IAC3I,MAAM,CAAC,eAAe,SAAI;IAC1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,cAAc,CAAsB;gBAEhC,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAE,oBAAyB;IAS3D,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAKnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAKhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;IAiE/B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;YAQ1B,yBAAyB;CAOxC"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
|
-
import {
|
|
2
|
+
import { BaseParams } from '@xylabs/object';
|
|
3
3
|
import { Promisable } from '@xylabs/promise';
|
|
4
4
|
import { CacheConfig, ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleRepository, ModuleResolverInstance } from '@xyo-network/module-model';
|
|
5
|
+
import { LRUCache } from 'lru-cache';
|
|
6
|
+
import { AbstractModuleResolver } from './AbstractModuleResolver';
|
|
5
7
|
import { ModuleIdentifierTransformer } from './transformers';
|
|
6
8
|
export type ModuleIdentifierTransformerFunc = (id: ModuleIdentifier) => Promisable<ModuleIdentifier>;
|
|
7
9
|
export interface ModuleResolverParams extends BaseParams {
|
|
8
10
|
cache?: CacheConfig;
|
|
9
11
|
moduleIdentifierTransformers?: ModuleIdentifierTransformer[];
|
|
10
12
|
}
|
|
11
|
-
export declare class CompositeModuleResolver extends
|
|
13
|
+
export declare class CompositeModuleResolver extends AbstractModuleResolver<ModuleResolverParams> implements ModuleRepository, ModuleResolverInstance {
|
|
12
14
|
static defaultMaxDepth: number;
|
|
15
|
+
protected _cache: LRUCache<ModuleIdentifier, ModuleInstance>;
|
|
13
16
|
protected resolvers: ModuleResolverInstance[];
|
|
14
|
-
private _cache;
|
|
15
17
|
private _localResolver;
|
|
16
18
|
constructor({ cache, ...params }?: ModuleResolverParams);
|
|
17
19
|
private get moduleIdentifierTransformers();
|
|
@@ -20,13 +22,7 @@ export declare class CompositeModuleResolver extends Base<ModuleResolverParams>
|
|
|
20
22
|
addResolver(resolver: ModuleResolverInstance): this;
|
|
21
23
|
remove(addresses: Address[] | Address): this;
|
|
22
24
|
removeResolver(resolver: ModuleResolverInstance): this;
|
|
23
|
-
|
|
24
|
-
resolve(): Promise<ModuleInstance[]>;
|
|
25
|
-
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
26
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
27
|
-
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
28
|
-
/** @deprecated use '*' if trying to resolve all */
|
|
29
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
25
|
+
resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter?: ModuleFilter<T> | ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | T[] | undefined>;
|
|
30
26
|
private addSingleModule;
|
|
31
27
|
private removeSingleModule;
|
|
32
28
|
private resolveMultipartIdentifier;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CompositeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/CompositeModuleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAEhB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,MAAM,+BAA+B,GAAG,CAAC,EAAE,EAAE,gBAAgB,KAAK,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAEpG,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,4BAA4B,CAAC,EAAE,2BAA2B,EAAE,CAAA;CAC7D;AAMD,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,oBAAoB,CAAE,YAAW,gBAAgB,EAAE,sBAAsB;IAC3I,MAAM,CAAC,eAAe,SAAI;IAC1B,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAC5D,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAK;IAClD,OAAO,CAAC,cAAc,CAAsB;gBAEhC,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAE,oBAAyB;IAS3D,OAAO,KAAK,4BAA4B,GAEvC;IAED,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAKnD,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI;IAS5C,cAAc,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAKhD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC5D,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAsB,EACpD,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;IAiE/B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;YAIZ,0BAA0B;YAQ1B,yBAAyB;CAOxC"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
|
-
import { ModuleFilter, ModuleFilterOptions,
|
|
4
|
-
|
|
3
|
+
import { ModuleFilter, ModuleFilterOptions, ModuleInstance, ModuleRepository, ModuleResolverInstance } from '@xyo-network/module-model';
|
|
4
|
+
import { AbstractModuleResolver } from './AbstractModuleResolver';
|
|
5
|
+
export declare class SimpleModuleResolver extends AbstractModuleResolver implements ModuleRepository {
|
|
5
6
|
private addressToName;
|
|
6
7
|
private modules;
|
|
8
|
+
constructor();
|
|
7
9
|
add(module: ModuleInstance): this;
|
|
8
10
|
add(module: ModuleInstance[]): this;
|
|
9
11
|
addResolver(_resolver: ModuleResolverInstance): this;
|
|
10
12
|
remove(address: Address | Address[]): this;
|
|
11
13
|
removeResolver(_resolver: ModuleResolverInstance): this;
|
|
12
|
-
|
|
13
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promisable<T[]>;
|
|
14
|
-
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promisable<T | undefined>;
|
|
15
|
-
/** @deprecated use '*' if trying to resolve all */
|
|
16
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promisable<T[]>;
|
|
14
|
+
resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter?: ModuleFilter<T> | string, options?: ModuleFilterOptions<T>): Promisable<T[] | T | undefined>;
|
|
17
15
|
private addSingleModule;
|
|
18
16
|
private removeSingleModule;
|
|
19
17
|
private resolveByAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleModuleResolver.d.ts","sourceRoot":"","sources":["../../src/SimpleModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAKL,YAAY,EACZ,mBAAmB,
|
|
1
|
+
{"version":3,"file":"SimpleModuleResolver.d.ts","sourceRoot":"","sources":["../../src/SimpleModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAKL,YAAY,EACZ,mBAAmB,EAEnB,cAAc,EAEd,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,gBAAgB;IAC1F,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,OAAO,CAAsC;;IAMrD,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI;IAIpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI;IAS1C,cAAc,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI;IAIvD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACtD,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAY,EAC1C,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAyClC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;CAevB"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
|
-
import { ModuleFilter, ModuleFilterOptions,
|
|
4
|
-
|
|
3
|
+
import { ModuleFilter, ModuleFilterOptions, ModuleInstance, ModuleRepository, ModuleResolverInstance } from '@xyo-network/module-model';
|
|
4
|
+
import { AbstractModuleResolver } from './AbstractModuleResolver';
|
|
5
|
+
export declare class SimpleModuleResolver extends AbstractModuleResolver implements ModuleRepository {
|
|
5
6
|
private addressToName;
|
|
6
7
|
private modules;
|
|
8
|
+
constructor();
|
|
7
9
|
add(module: ModuleInstance): this;
|
|
8
10
|
add(module: ModuleInstance[]): this;
|
|
9
11
|
addResolver(_resolver: ModuleResolverInstance): this;
|
|
10
12
|
remove(address: Address | Address[]): this;
|
|
11
13
|
removeResolver(_resolver: ModuleResolverInstance): this;
|
|
12
|
-
|
|
13
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promisable<T[]>;
|
|
14
|
-
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promisable<T | undefined>;
|
|
15
|
-
/** @deprecated use '*' if trying to resolve all */
|
|
16
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promisable<T[]>;
|
|
14
|
+
resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter?: ModuleFilter<T> | string, options?: ModuleFilterOptions<T>): Promisable<T[] | T | undefined>;
|
|
17
15
|
private addSingleModule;
|
|
18
16
|
private removeSingleModule;
|
|
19
17
|
private resolveByAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleModuleResolver.d.ts","sourceRoot":"","sources":["../../src/SimpleModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAKL,YAAY,EACZ,mBAAmB,
|
|
1
|
+
{"version":3,"file":"SimpleModuleResolver.d.ts","sourceRoot":"","sources":["../../src/SimpleModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAKL,YAAY,EACZ,mBAAmB,EAEnB,cAAc,EAEd,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,gBAAgB;IAC1F,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,OAAO,CAAsC;;IAMrD,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI;IAIpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI;IAS1C,cAAc,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI;IAIvD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACtD,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAY,EAC1C,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAyClC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;CAevB"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { Promisable } from '@xylabs/promise';
|
|
3
|
-
import { ModuleFilter, ModuleFilterOptions,
|
|
4
|
-
|
|
3
|
+
import { ModuleFilter, ModuleFilterOptions, ModuleInstance, ModuleRepository, ModuleResolverInstance } from '@xyo-network/module-model';
|
|
4
|
+
import { AbstractModuleResolver } from './AbstractModuleResolver';
|
|
5
|
+
export declare class SimpleModuleResolver extends AbstractModuleResolver implements ModuleRepository {
|
|
5
6
|
private addressToName;
|
|
6
7
|
private modules;
|
|
8
|
+
constructor();
|
|
7
9
|
add(module: ModuleInstance): this;
|
|
8
10
|
add(module: ModuleInstance[]): this;
|
|
9
11
|
addResolver(_resolver: ModuleResolverInstance): this;
|
|
10
12
|
remove(address: Address | Address[]): this;
|
|
11
13
|
removeResolver(_resolver: ModuleResolverInstance): this;
|
|
12
|
-
|
|
13
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promisable<T[]>;
|
|
14
|
-
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promisable<T | undefined>;
|
|
15
|
-
/** @deprecated use '*' if trying to resolve all */
|
|
16
|
-
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promisable<T[]>;
|
|
14
|
+
resolveHandler<T extends ModuleInstance = ModuleInstance>(idOrFilter?: ModuleFilter<T> | string, options?: ModuleFilterOptions<T>): Promisable<T[] | T | undefined>;
|
|
17
15
|
private addSingleModule;
|
|
18
16
|
private removeSingleModule;
|
|
19
17
|
private resolveByAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleModuleResolver.d.ts","sourceRoot":"","sources":["../../src/SimpleModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAKL,YAAY,EACZ,mBAAmB,
|
|
1
|
+
{"version":3,"file":"SimpleModuleResolver.d.ts","sourceRoot":"","sources":["../../src/SimpleModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAKL,YAAY,EACZ,mBAAmB,EAEnB,cAAc,EAEd,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,gBAAgB;IAC1F,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,OAAO,CAAsC;;IAMrD,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IACjC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;IAUnC,WAAW,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI;IAIpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI;IAS1C,cAAc,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI;IAIvD,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACtD,UAAU,GAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAY,EAC1C,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC/B,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAyClC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;CAevB"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -27,23 +27,60 @@ __export(src_exports, {
|
|
|
27
27
|
module.exports = __toCommonJS(src_exports);
|
|
28
28
|
|
|
29
29
|
// src/CompositeModuleResolver.ts
|
|
30
|
-
var
|
|
30
|
+
var import_assert3 = require("@xylabs/assert");
|
|
31
31
|
var import_exists = require("@xylabs/exists");
|
|
32
|
-
var
|
|
33
|
-
var import_module_model2 = require("@xyo-network/module-model");
|
|
32
|
+
var import_module_model3 = require("@xyo-network/module-model");
|
|
34
33
|
var import_lru_cache = require("lru-cache");
|
|
35
34
|
|
|
36
|
-
// src/
|
|
35
|
+
// src/AbstractModuleResolver.ts
|
|
37
36
|
var import_assert = require("@xylabs/assert");
|
|
37
|
+
var import_object = require("@xylabs/object");
|
|
38
|
+
var import_module_model = require("@xyo-network/module-model");
|
|
39
|
+
var AbstractModuleResolver = class extends import_object.Base {
|
|
40
|
+
static {
|
|
41
|
+
__name(this, "AbstractModuleResolver");
|
|
42
|
+
}
|
|
43
|
+
async resolve(idOrFilter = "*", options) {
|
|
44
|
+
if (idOrFilter === "*") {
|
|
45
|
+
const values = await this.resolveHandler(idOrFilter, options);
|
|
46
|
+
(0, import_assert.assertEx)(Array.isArray(values), () => "resolveHandler returned a non-array");
|
|
47
|
+
return values.map((value) => (0, import_module_model.asModuleInstance)(value, () => {
|
|
48
|
+
return `resolveHandler returned invalid result (*) [${value?.constructor?.name}][${(0, import_object.toJsonString)(value)}]`;
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
switch (typeof idOrFilter) {
|
|
52
|
+
case "string": {
|
|
53
|
+
const value = await this.resolveHandler(idOrFilter, options);
|
|
54
|
+
return (0, import_module_model.asModuleInstance)(value, () => (
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
`resolveHandler returned invalid result (string) [${value?.constructor?.name}][${(0, import_object.toJsonString)(value)}]`
|
|
57
|
+
));
|
|
58
|
+
}
|
|
59
|
+
default: {
|
|
60
|
+
const values = await this.resolveHandler(idOrFilter, options);
|
|
61
|
+
(0, import_assert.assertEx)(Array.isArray(values), () => "resolveHandler returned a non-array");
|
|
62
|
+
return values.map((value) => (0, import_module_model.asModuleInstance)(value, () => {
|
|
63
|
+
return `resolveHandler returned invalid result (filter) [${value?.constructor?.name}][${(0, import_object.toJsonString)(value)}]`;
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// src/SimpleModuleResolver.ts
|
|
71
|
+
var import_assert2 = require("@xylabs/assert");
|
|
38
72
|
var import_hex = require("@xylabs/hex");
|
|
39
73
|
var import_lodash = require("@xylabs/lodash");
|
|
40
|
-
var
|
|
41
|
-
var SimpleModuleResolver = class {
|
|
74
|
+
var import_module_model2 = require("@xyo-network/module-model");
|
|
75
|
+
var SimpleModuleResolver = class extends AbstractModuleResolver {
|
|
42
76
|
static {
|
|
43
77
|
__name(this, "SimpleModuleResolver");
|
|
44
78
|
}
|
|
45
79
|
addressToName = {};
|
|
46
80
|
modules = {};
|
|
81
|
+
constructor() {
|
|
82
|
+
super({});
|
|
83
|
+
}
|
|
47
84
|
add(module2) {
|
|
48
85
|
if (Array.isArray(module2)) {
|
|
49
86
|
for (const mod of module2)
|
|
@@ -68,7 +105,7 @@ var SimpleModuleResolver = class {
|
|
|
68
105
|
removeResolver(_resolver) {
|
|
69
106
|
throw "Removing resolvers not supported";
|
|
70
107
|
}
|
|
71
|
-
|
|
108
|
+
resolveHandler(idOrFilter = "*", options) {
|
|
72
109
|
const unfiltered = (() => {
|
|
73
110
|
if (idOrFilter) {
|
|
74
111
|
if (typeof idOrFilter === "string") {
|
|
@@ -76,9 +113,9 @@ var SimpleModuleResolver = class {
|
|
|
76
113
|
return Object.values(this.modules);
|
|
77
114
|
}
|
|
78
115
|
const id = idOrFilter;
|
|
79
|
-
const name = (0,
|
|
116
|
+
const name = (0, import_module_model2.isModuleName)(id) ? id : void 0;
|
|
80
117
|
const address = (0, import_hex.isAddress)(id) ? id : void 0;
|
|
81
|
-
(0,
|
|
118
|
+
(0, import_assert2.assertEx)(name || address, () => "module identifier must be a ModuleName or Address");
|
|
82
119
|
return (name ? this.resolveByName(Object.values(this.modules), [
|
|
83
120
|
name
|
|
84
121
|
]).pop() : void 0) ?? (address ? this.resolveByAddress(this.modules, [
|
|
@@ -86,11 +123,11 @@ var SimpleModuleResolver = class {
|
|
|
86
123
|
]).pop() : void 0);
|
|
87
124
|
} else {
|
|
88
125
|
const filter = idOrFilter;
|
|
89
|
-
if ((0,
|
|
126
|
+
if ((0, import_module_model2.isAddressModuleFilter)(filter)) {
|
|
90
127
|
return this.resolveByAddress(this.modules, filter.address);
|
|
91
|
-
} else if ((0,
|
|
128
|
+
} else if ((0, import_module_model2.isNameModuleFilter)(filter)) {
|
|
92
129
|
return this.resolveByName(Object.values(this.modules), filter.name);
|
|
93
|
-
} else if ((0,
|
|
130
|
+
} else if ((0, import_module_model2.isQueryModuleFilter)(filter)) {
|
|
94
131
|
return this.resolveByQuery(Object.values(this.modules), filter.query);
|
|
95
132
|
}
|
|
96
133
|
}
|
|
@@ -111,7 +148,7 @@ var SimpleModuleResolver = class {
|
|
|
111
148
|
}
|
|
112
149
|
}
|
|
113
150
|
removeSingleModule(address) {
|
|
114
|
-
(0,
|
|
151
|
+
(0, import_assert2.assertEx)((0, import_hex.isAddress)(address), () => "Invalid address");
|
|
115
152
|
if (address && this.modules[address]) {
|
|
116
153
|
delete this.modules[address];
|
|
117
154
|
const name = this.addressToName[address];
|
|
@@ -147,13 +184,13 @@ var SimpleModuleResolver = class {
|
|
|
147
184
|
var moduleIdentifierParts = /* @__PURE__ */ __name((moduleIdentifier) => {
|
|
148
185
|
return moduleIdentifier?.split(":");
|
|
149
186
|
}, "moduleIdentifierParts");
|
|
150
|
-
var CompositeModuleResolver = class _CompositeModuleResolver extends
|
|
187
|
+
var CompositeModuleResolver = class _CompositeModuleResolver extends AbstractModuleResolver {
|
|
151
188
|
static {
|
|
152
189
|
__name(this, "CompositeModuleResolver");
|
|
153
190
|
}
|
|
154
191
|
static defaultMaxDepth = 5;
|
|
155
|
-
resolvers = [];
|
|
156
192
|
_cache;
|
|
193
|
+
resolvers = [];
|
|
157
194
|
_localResolver;
|
|
158
195
|
constructor({ cache, ...params } = {}) {
|
|
159
196
|
super(params);
|
|
@@ -200,7 +237,7 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends import_obje
|
|
|
200
237
|
this.resolvers = this.resolvers.filter((item) => item !== resolver);
|
|
201
238
|
return this;
|
|
202
239
|
}
|
|
203
|
-
async
|
|
240
|
+
async resolveHandler(idOrFilter = "*", options) {
|
|
204
241
|
const mutatedOptions = {
|
|
205
242
|
...options,
|
|
206
243
|
maxDepth: (options?.maxDepth ?? _CompositeModuleResolver.defaultMaxDepth) - 1
|
|
@@ -215,7 +252,7 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends import_obje
|
|
|
215
252
|
return result2;
|
|
216
253
|
}));
|
|
217
254
|
const flatResult = result.flat().filter(import_exists.exists);
|
|
218
|
-
return flatResult.filter(
|
|
255
|
+
return flatResult.filter(import_module_model3.duplicateModules);
|
|
219
256
|
}
|
|
220
257
|
if (typeof idOrFilter === "string") {
|
|
221
258
|
const idParts = moduleIdentifierParts(idOrFilter);
|
|
@@ -238,7 +275,7 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends import_obje
|
|
|
238
275
|
const result2 = await resolver.resolve(id, mutatedOptions);
|
|
239
276
|
return result2;
|
|
240
277
|
}));
|
|
241
|
-
const result = results.filter(import_exists.exists).filter(
|
|
278
|
+
const result = results.filter(import_exists.exists).filter(import_module_model3.duplicateModules).pop();
|
|
242
279
|
if (result) {
|
|
243
280
|
this._cache.set(id, result);
|
|
244
281
|
}
|
|
@@ -253,7 +290,7 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends import_obje
|
|
|
253
290
|
return result2;
|
|
254
291
|
}));
|
|
255
292
|
const flatResult = result.flat().filter(import_exists.exists);
|
|
256
|
-
return flatResult.filter(
|
|
293
|
+
return flatResult.filter(import_module_model3.duplicateModules);
|
|
257
294
|
}
|
|
258
295
|
}
|
|
259
296
|
addSingleModule(module2) {
|
|
@@ -266,8 +303,8 @@ var CompositeModuleResolver = class _CompositeModuleResolver extends import_obje
|
|
|
266
303
|
}
|
|
267
304
|
async resolveMultipartIdentifier(moduleIdentifier) {
|
|
268
305
|
const idParts = moduleIdentifierParts(moduleIdentifier);
|
|
269
|
-
(0,
|
|
270
|
-
const id = (0,
|
|
306
|
+
(0, import_assert3.assertEx)(idParts.length >= 2, () => "Not a valid multipart identifier");
|
|
307
|
+
const id = (0, import_assert3.assertEx)(idParts.shift());
|
|
271
308
|
const module2 = await this.resolve(id);
|
|
272
309
|
return await module2?.resolve(idParts.join(":"));
|
|
273
310
|
}
|