@xyo-network/module-abstract 2.94.19 → 2.94.21
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/AbstractModule.d.cts +3 -7
- package/dist/browser/AbstractModule.d.cts.map +1 -1
- package/dist/browser/AbstractModule.d.mts +3 -7
- package/dist/browser/AbstractModule.d.mts.map +1 -1
- package/dist/browser/AbstractModule.d.ts +3 -7
- package/dist/browser/AbstractModule.d.ts.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.cts +10 -0
- package/dist/browser/AbstractModuleInstance.d.cts.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.mts +10 -0
- package/dist/browser/AbstractModuleInstance.d.mts.map +1 -1
- package/dist/browser/AbstractModuleInstance.d.ts +10 -0
- package/dist/browser/AbstractModuleInstance.d.ts.map +1 -1
- package/dist/browser/index.cjs +40 -129
- 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 +33 -122
- package/dist/browser/index.js.map +1 -1
- package/dist/node/AbstractModule.d.cts +3 -7
- package/dist/node/AbstractModule.d.cts.map +1 -1
- package/dist/node/AbstractModule.d.mts +3 -7
- package/dist/node/AbstractModule.d.mts.map +1 -1
- package/dist/node/AbstractModule.d.ts +3 -7
- package/dist/node/AbstractModule.d.ts.map +1 -1
- package/dist/node/AbstractModuleInstance.d.cts +10 -0
- package/dist/node/AbstractModuleInstance.d.cts.map +1 -1
- package/dist/node/AbstractModuleInstance.d.mts +10 -0
- package/dist/node/AbstractModuleInstance.d.mts.map +1 -1
- package/dist/node/AbstractModuleInstance.d.ts +10 -0
- package/dist/node/AbstractModuleInstance.d.ts.map +1 -1
- package/dist/node/index.cjs +40 -129
- 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 +33 -121
- package/dist/node/index.js.map +1 -1
- package/package.json +18 -18
- package/src/AbstractModule.ts +6 -15
- package/src/AbstractModuleInstance.ts +44 -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
package/package.json
CHANGED
|
@@ -18,27 +18,27 @@
|
|
|
18
18
|
"@xylabs/logger": "^3.0.25",
|
|
19
19
|
"@xylabs/object": "^3.0.25",
|
|
20
20
|
"@xylabs/promise": "^3.0.25",
|
|
21
|
-
"@xyo-network/account": "~2.94.
|
|
22
|
-
"@xyo-network/account-model": "~2.94.
|
|
23
|
-
"@xyo-network/address-payload-plugin": "~2.94.
|
|
24
|
-
"@xyo-network/archivist-model": "~2.94.
|
|
25
|
-
"@xyo-network/boundwitness-builder": "~2.94.
|
|
26
|
-
"@xyo-network/boundwitness-model": "~2.94.
|
|
27
|
-
"@xyo-network/boundwitness-wrapper": "~2.94.
|
|
28
|
-
"@xyo-network/config-payload-plugin": "~2.94.
|
|
29
|
-
"@xyo-network/manifest-model": "~2.94.
|
|
30
|
-
"@xyo-network/module-events": "~2.94.
|
|
31
|
-
"@xyo-network/module-model": "~2.94.
|
|
32
|
-
"@xyo-network/module-resolver": "~2.94.
|
|
33
|
-
"@xyo-network/payload-builder": "~2.94.
|
|
34
|
-
"@xyo-network/payload-model": "~2.94.
|
|
35
|
-
"@xyo-network/query-payload-plugin": "~2.94.
|
|
36
|
-
"@xyo-network/wallet-model": "~2.94.
|
|
21
|
+
"@xyo-network/account": "~2.94.21",
|
|
22
|
+
"@xyo-network/account-model": "~2.94.21",
|
|
23
|
+
"@xyo-network/address-payload-plugin": "~2.94.21",
|
|
24
|
+
"@xyo-network/archivist-model": "~2.94.21",
|
|
25
|
+
"@xyo-network/boundwitness-builder": "~2.94.21",
|
|
26
|
+
"@xyo-network/boundwitness-model": "~2.94.21",
|
|
27
|
+
"@xyo-network/boundwitness-wrapper": "~2.94.21",
|
|
28
|
+
"@xyo-network/config-payload-plugin": "~2.94.21",
|
|
29
|
+
"@xyo-network/manifest-model": "~2.94.21",
|
|
30
|
+
"@xyo-network/module-events": "~2.94.21",
|
|
31
|
+
"@xyo-network/module-model": "~2.94.21",
|
|
32
|
+
"@xyo-network/module-resolver": "~2.94.21",
|
|
33
|
+
"@xyo-network/payload-builder": "~2.94.21",
|
|
34
|
+
"@xyo-network/payload-model": "~2.94.21",
|
|
35
|
+
"@xyo-network/query-payload-plugin": "~2.94.21",
|
|
36
|
+
"@xyo-network/wallet-model": "~2.94.21"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@xylabs/ts-scripts-yarn3": "^3.9.0",
|
|
40
40
|
"@xylabs/tsconfig": "^3.9.0",
|
|
41
|
-
"typescript": "^5.4.
|
|
41
|
+
"typescript": "^5.4.4"
|
|
42
42
|
},
|
|
43
43
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
44
44
|
"types": "dist/node/index.d.ts",
|
|
@@ -79,6 +79,6 @@
|
|
|
79
79
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
80
80
|
},
|
|
81
81
|
"sideEffects": false,
|
|
82
|
-
"version": "2.94.
|
|
82
|
+
"version": "2.94.21",
|
|
83
83
|
"type": "module"
|
|
84
84
|
}
|
package/src/AbstractModule.ts
CHANGED
|
@@ -41,13 +41,13 @@ import {
|
|
|
41
41
|
ModuleQueries,
|
|
42
42
|
ModuleQueryHandlerResult,
|
|
43
43
|
ModuleQueryResult,
|
|
44
|
+
ModuleResolverInstance,
|
|
44
45
|
ModuleStateQuerySchema,
|
|
45
46
|
ModuleStatus,
|
|
46
47
|
ModuleSubscribeQuerySchema,
|
|
47
48
|
ObjectResolverPriority,
|
|
48
49
|
serializableField,
|
|
49
50
|
} from '@xyo-network/module-model'
|
|
50
|
-
import { CompositeModuleResolver } from '@xyo-network/module-resolver'
|
|
51
51
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
52
52
|
import { ModuleError, Payload, Query, Schema, WithMeta } from '@xyo-network/payload-model'
|
|
53
53
|
import { QueryPayload, QuerySchema } from '@xyo-network/query-payload-plugin'
|
|
@@ -87,13 +87,10 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
87
87
|
protected _startPromise: Promisable<boolean> | undefined = undefined
|
|
88
88
|
protected _started: Promisable<boolean> | undefined = undefined
|
|
89
89
|
protected readonly moduleConfigQueryValidator: Queryable
|
|
90
|
-
protected readonly privateResolver = new CompositeModuleResolver({})
|
|
91
90
|
protected readonly supportedQueryValidator: Queryable
|
|
92
91
|
|
|
93
92
|
private _busyCount = 0
|
|
94
|
-
private _downResolver?: CompositeModuleResolver
|
|
95
93
|
private _status: ModuleStatus = 'stopped'
|
|
96
|
-
private _upResolver?: CompositeModuleResolver
|
|
97
94
|
|
|
98
95
|
protected constructor(privateConstructorKey: string, params: TParams, account: AccountInstance) {
|
|
99
96
|
assertEx(AbstractModule.privateConstructorKey === privateConstructorKey, () => 'Use create function instead of constructor')
|
|
@@ -135,11 +132,6 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
135
132
|
return this.status === 'dead'
|
|
136
133
|
}
|
|
137
134
|
|
|
138
|
-
get downResolver() {
|
|
139
|
-
this._downResolver = this._downResolver ?? new CompositeModuleResolver({ moduleIdentifierTransformers: this.params.moduleIdentifierTransformers })
|
|
140
|
-
return this._downResolver
|
|
141
|
-
}
|
|
142
|
-
|
|
143
135
|
get ephemeralQueryAccountEnabled(): boolean {
|
|
144
136
|
return !!this.params.ephemeralQueryAccountEnabled
|
|
145
137
|
}
|
|
@@ -172,11 +164,6 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
172
164
|
return this.config.timestamp ?? false
|
|
173
165
|
}
|
|
174
166
|
|
|
175
|
-
get upResolver() {
|
|
176
|
-
this._upResolver = this._upResolver ?? new CompositeModuleResolver({ moduleIdentifierTransformers: this.params.moduleIdentifierTransformers })
|
|
177
|
-
return this._upResolver
|
|
178
|
-
}
|
|
179
|
-
|
|
180
167
|
protected get baseModuleQueryAccountPaths(): Record<ModuleQueries['schema'], string> {
|
|
181
168
|
return this._baseModuleQueryAccountPaths
|
|
182
169
|
}
|
|
@@ -191,6 +178,10 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
191
178
|
}
|
|
192
179
|
}
|
|
193
180
|
|
|
181
|
+
abstract get downResolver(): ModuleResolverInstance
|
|
182
|
+
|
|
183
|
+
abstract get upResolver(): ModuleResolverInstance
|
|
184
|
+
|
|
194
185
|
protected abstract get _queryAccountPaths(): Record<Query['schema'], string>
|
|
195
186
|
|
|
196
187
|
static _getRootFunction(funcName: string) {
|
|
@@ -570,7 +561,7 @@ export abstract class AbstractModule<TParams extends ModuleParams = ModuleParams
|
|
|
570
561
|
|
|
571
562
|
protected async manifestHandler(maxDepth: number = 1, _ignoreAddresses: Address[] = []): Promise<ModuleManifestPayload> {
|
|
572
563
|
const name = this.config.name ?? 'Anonymous'
|
|
573
|
-
const children = await this.downResolver.resolve('*', { direction: 'down', maxDepth
|
|
564
|
+
const children = await this.downResolver.resolve('*', { direction: 'down', maxDepth })
|
|
574
565
|
const childAddressToName: Record<Address, ModuleName | null> = {}
|
|
575
566
|
for (const child of children) {
|
|
576
567
|
if (child.address !== this.address) {
|
|
@@ -17,20 +17,28 @@ import {
|
|
|
17
17
|
ModuleNameResolver,
|
|
18
18
|
ModuleParams,
|
|
19
19
|
ModuleQueryResult,
|
|
20
|
+
ModuleResolver,
|
|
20
21
|
ModuleStateQuery,
|
|
21
22
|
ModuleStateQuerySchema,
|
|
22
23
|
ObjectFilterOptions,
|
|
24
|
+
ResolveHelper,
|
|
25
|
+
ResolveHelperConfig,
|
|
23
26
|
} from '@xyo-network/module-model'
|
|
27
|
+
import { CompositeModuleResolver } from '@xyo-network/module-resolver'
|
|
24
28
|
import { Payload, Query, WithMeta } from '@xyo-network/payload-model'
|
|
25
29
|
|
|
26
30
|
import { AbstractModule } from './AbstractModule'
|
|
27
|
-
import { ResolveHelper, ResolveHelperConfig } from './ResolveHelper'
|
|
28
31
|
|
|
29
32
|
export abstract class AbstractModuleInstance<TParams extends ModuleParams = ModuleParams, TEventData extends ModuleEventData = ModuleEventData>
|
|
30
33
|
extends AbstractModule<TParams, TEventData>
|
|
31
34
|
implements ModuleInstance<TParams, TEventData>, ModuleNameResolver
|
|
32
35
|
{
|
|
33
36
|
static override readonly uniqueName = globallyUnique('AbstractModuleInstance', AbstractModuleInstance, 'xyo')
|
|
37
|
+
|
|
38
|
+
private _downResolver?: CompositeModuleResolver
|
|
39
|
+
private _privateResolver?: CompositeModuleResolver
|
|
40
|
+
private _upResolver?: CompositeModuleResolver
|
|
41
|
+
|
|
34
42
|
constructor(privateConstructorKey: string, params: TParams, account: AccountInstance) {
|
|
35
43
|
assertEx(AbstractModule.privateConstructorKey === privateConstructorKey, () => 'Use create function instead of constructor')
|
|
36
44
|
// Clone params to prevent mutation of the incoming object
|
|
@@ -43,6 +51,28 @@ export abstract class AbstractModuleInstance<TParams extends ModuleParams = Modu
|
|
|
43
51
|
}
|
|
44
52
|
}
|
|
45
53
|
|
|
54
|
+
get downResolver() {
|
|
55
|
+
this._downResolver =
|
|
56
|
+
this._downResolver ?? new CompositeModuleResolver({ moduleIdentifierTransformers: this.params.moduleIdentifierTransformers, root: this })
|
|
57
|
+
return this._downResolver
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
get privateResolver() {
|
|
61
|
+
this._privateResolver =
|
|
62
|
+
this._privateResolver ?? new CompositeModuleResolver({ moduleIdentifierTransformers: this.params.moduleIdentifierTransformers, root: this })
|
|
63
|
+
return this._privateResolver
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
get root() {
|
|
67
|
+
return this
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
get upResolver() {
|
|
71
|
+
this._upResolver =
|
|
72
|
+
this._upResolver ?? new CompositeModuleResolver({ moduleIdentifierTransformers: this.params.moduleIdentifierTransformers, root: this })
|
|
73
|
+
return this._upResolver
|
|
74
|
+
}
|
|
75
|
+
|
|
46
76
|
manifest(maxDepth?: number): Promise<ModuleManifestPayload> {
|
|
47
77
|
this._checkDead()
|
|
48
78
|
return this.busy(async () => {
|
|
@@ -110,6 +140,19 @@ export abstract class AbstractModuleInstance<TParams extends ModuleParams = Modu
|
|
|
110
140
|
}
|
|
111
141
|
}
|
|
112
142
|
|
|
143
|
+
async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>
|
|
144
|
+
async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>
|
|
145
|
+
async resolvePrivate<T extends ModuleInstance = ModuleInstance>(
|
|
146
|
+
id: ModuleIdentifier = '*',
|
|
147
|
+
options: ModuleFilterOptions<T> = {},
|
|
148
|
+
): Promise<T | T[] | undefined> {
|
|
149
|
+
return (
|
|
150
|
+
(await this.privateResolver.resolve(id, options)) ??
|
|
151
|
+
(await this.upResolver.resolve(id, options)) ??
|
|
152
|
+
(await this.downResolver.resolve(id, options))
|
|
153
|
+
)
|
|
154
|
+
}
|
|
155
|
+
|
|
113
156
|
state() {
|
|
114
157
|
this._checkDead()
|
|
115
158
|
return this.busy(async () => {
|
package/src/index.ts
CHANGED
|
@@ -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,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
|
-
}
|