@xyo-network/module-abstract 2.94.20 → 2.94.22
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 +32 -18
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +32 -18
- 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 +32 -18
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +32 -18
- package/dist/node/index.js.map +1 -1
- package/package.json +18 -18
- package/src/AbstractModule.ts +6 -15
- package/src/AbstractModuleInstance.ts +42 -0
|
@@ -17,12 +17,14 @@ import {
|
|
|
17
17
|
ModuleNameResolver,
|
|
18
18
|
ModuleParams,
|
|
19
19
|
ModuleQueryResult,
|
|
20
|
+
ModuleResolver,
|
|
20
21
|
ModuleStateQuery,
|
|
21
22
|
ModuleStateQuerySchema,
|
|
22
23
|
ObjectFilterOptions,
|
|
23
24
|
ResolveHelper,
|
|
24
25
|
ResolveHelperConfig,
|
|
25
26
|
} from '@xyo-network/module-model'
|
|
27
|
+
import { CompositeModuleResolver } from '@xyo-network/module-resolver'
|
|
26
28
|
import { Payload, Query, WithMeta } from '@xyo-network/payload-model'
|
|
27
29
|
|
|
28
30
|
import { AbstractModule } from './AbstractModule'
|
|
@@ -32,6 +34,11 @@ export abstract class AbstractModuleInstance<TParams extends ModuleParams = Modu
|
|
|
32
34
|
implements ModuleInstance<TParams, TEventData>, ModuleNameResolver
|
|
33
35
|
{
|
|
34
36
|
static override readonly uniqueName = globallyUnique('AbstractModuleInstance', AbstractModuleInstance, 'xyo')
|
|
37
|
+
|
|
38
|
+
private _downResolver?: CompositeModuleResolver
|
|
39
|
+
private _privateResolver?: CompositeModuleResolver
|
|
40
|
+
private _upResolver?: CompositeModuleResolver
|
|
41
|
+
|
|
35
42
|
constructor(privateConstructorKey: string, params: TParams, account: AccountInstance) {
|
|
36
43
|
assertEx(AbstractModule.privateConstructorKey === privateConstructorKey, () => 'Use create function instead of constructor')
|
|
37
44
|
// Clone params to prevent mutation of the incoming object
|
|
@@ -44,6 +51,28 @@ export abstract class AbstractModuleInstance<TParams extends ModuleParams = Modu
|
|
|
44
51
|
}
|
|
45
52
|
}
|
|
46
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
|
+
|
|
47
76
|
manifest(maxDepth?: number): Promise<ModuleManifestPayload> {
|
|
48
77
|
this._checkDead()
|
|
49
78
|
return this.busy(async () => {
|
|
@@ -111,6 +140,19 @@ export abstract class AbstractModuleInstance<TParams extends ModuleParams = Modu
|
|
|
111
140
|
}
|
|
112
141
|
}
|
|
113
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
|
+
|
|
114
156
|
state() {
|
|
115
157
|
this._checkDead()
|
|
116
158
|
return this.busy(async () => {
|