@xyo-network/module-resolver 5.1.22 → 5.1.23
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/package.json +17 -14
- package/dist/neutral/spec/CompositeModuleResolver.spec.d.ts +0 -2
- package/dist/neutral/spec/CompositeModuleResolver.spec.d.ts.map +0 -1
- package/dist/neutral/spec/SimpleModuleResolver.spec.d.ts +0 -2
- package/dist/neutral/spec/SimpleModuleResolver.spec.d.ts.map +0 -1
- package/src/spec/CompositeModuleResolver.spec.ts +0 -126
- package/src/spec/SimpleModuleResolver.spec.ts +0 -81
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/module-resolver",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.23",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -30,27 +30,30 @@
|
|
|
30
30
|
"types": "dist/neutral/index.d.ts",
|
|
31
31
|
"files": [
|
|
32
32
|
"dist",
|
|
33
|
-
"src"
|
|
33
|
+
"src",
|
|
34
|
+
"!**/*.bench.*",
|
|
35
|
+
"!**/*.spec.*",
|
|
36
|
+
"!**/*.test.*"
|
|
34
37
|
],
|
|
35
38
|
"dependencies": {
|
|
36
|
-
"@xylabs/assert": "~5.0.
|
|
37
|
-
"@xylabs/base": "~5.0.
|
|
38
|
-
"@xylabs/exists": "~5.0.
|
|
39
|
-
"@xylabs/hex": "~5.0.
|
|
40
|
-
"@xylabs/object": "~5.0.
|
|
41
|
-
"@xylabs/promise": "~5.0.
|
|
42
|
-
"@xylabs/typeof": "~5.0.
|
|
43
|
-
"@xyo-network/diviner-model": "~5.1.
|
|
44
|
-
"@xyo-network/diviner-payload-model": "~5.1.
|
|
45
|
-
"@xyo-network/module-model": "~5.1.
|
|
39
|
+
"@xylabs/assert": "~5.0.33",
|
|
40
|
+
"@xylabs/base": "~5.0.33",
|
|
41
|
+
"@xylabs/exists": "~5.0.33",
|
|
42
|
+
"@xylabs/hex": "~5.0.33",
|
|
43
|
+
"@xylabs/object": "~5.0.33",
|
|
44
|
+
"@xylabs/promise": "~5.0.33",
|
|
45
|
+
"@xylabs/typeof": "~5.0.33",
|
|
46
|
+
"@xyo-network/diviner-model": "~5.1.23",
|
|
47
|
+
"@xyo-network/diviner-payload-model": "~5.1.23",
|
|
48
|
+
"@xyo-network/module-model": "~5.1.23",
|
|
46
49
|
"lru-cache": "~11.2.2"
|
|
47
50
|
},
|
|
48
51
|
"devDependencies": {
|
|
49
52
|
"@xylabs/ts-scripts-yarn3": "~7.2.8",
|
|
50
53
|
"@xylabs/tsconfig": "~7.2.8",
|
|
51
|
-
"@xylabs/vitest-extended": "~5.0.
|
|
54
|
+
"@xylabs/vitest-extended": "~5.0.33",
|
|
52
55
|
"typescript": "~5.9.3",
|
|
53
|
-
"vitest": "~4.0.
|
|
56
|
+
"vitest": "~4.0.9"
|
|
54
57
|
},
|
|
55
58
|
"publishConfig": {
|
|
56
59
|
"access": "public"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeModuleResolver.spec.d.ts","sourceRoot":"","sources":["../../../src/spec/CompositeModuleResolver.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleModuleResolver.spec.d.ts","sourceRoot":"","sources":["../../../src/spec/SimpleModuleResolver.spec.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAA"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { asAddress } from '@xylabs/hex'
|
|
2
|
-
import type { ModuleInstance } from '@xyo-network/module-model'
|
|
3
|
-
import { ModuleConfigSchema, ModuleStateQuerySchema } from '@xyo-network/module-model'
|
|
4
|
-
import type { MockedObject } from 'vitest'
|
|
5
|
-
import {
|
|
6
|
-
beforeEach, describe, expect,
|
|
7
|
-
it,
|
|
8
|
-
vi,
|
|
9
|
-
} from 'vitest'
|
|
10
|
-
|
|
11
|
-
import { CompositeModuleResolver } from '../CompositeModuleResolver.ts'
|
|
12
|
-
|
|
13
|
-
const moduleAName = 'moduleA'
|
|
14
|
-
const moduleBName = 'moduleB'
|
|
15
|
-
const moduleCName = 'moduleC'
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @group module
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
describe('CompositeModuleResolver', () => {
|
|
22
|
-
describe('with multiple resolvers', () => {
|
|
23
|
-
let moduleA: MockedObject<ModuleInstance>
|
|
24
|
-
let moduleB: MockedObject<ModuleInstance>
|
|
25
|
-
let moduleC: MockedObject<ModuleInstance>
|
|
26
|
-
let resolverA: CompositeModuleResolver
|
|
27
|
-
let resolverB: CompositeModuleResolver
|
|
28
|
-
|
|
29
|
-
let sut: CompositeModuleResolver
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
moduleA = vi.mocked<Partial<ModuleInstance>>({
|
|
32
|
-
address: asAddress('b0e75b722e6cb03bbae3f488ed1e5a82bd7c381a', true),
|
|
33
|
-
config: { name: moduleAName, schema: ModuleConfigSchema },
|
|
34
|
-
modName: moduleAName,
|
|
35
|
-
manifest: vi.fn(),
|
|
36
|
-
state: vi.fn(),
|
|
37
|
-
queries: [ModuleStateQuerySchema],
|
|
38
|
-
query: vi.fn(),
|
|
39
|
-
}, true) as MockedObject<ModuleInstance>
|
|
40
|
-
moduleB = vi.mocked<Partial<ModuleInstance>>({
|
|
41
|
-
address: asAddress('b0e75b722e6cb03bbae3f488ed1e5a82bd7c381b', true),
|
|
42
|
-
config: { name: moduleBName, schema: ModuleConfigSchema },
|
|
43
|
-
modName: moduleBName,
|
|
44
|
-
manifest: vi.fn(),
|
|
45
|
-
state: vi.fn(),
|
|
46
|
-
queries: [ModuleStateQuerySchema],
|
|
47
|
-
query: vi.fn(),
|
|
48
|
-
}, true) as MockedObject<ModuleInstance>
|
|
49
|
-
moduleC = vi.mocked<Partial<ModuleInstance>>({
|
|
50
|
-
address: asAddress('b0e75b722e6cb03bbae3f488ed1e5a82bd7c381c', true),
|
|
51
|
-
config: { name: moduleCName, schema: ModuleConfigSchema },
|
|
52
|
-
modName: moduleCName,
|
|
53
|
-
manifest: vi.fn(),
|
|
54
|
-
state: vi.fn(),
|
|
55
|
-
queries: [ModuleStateQuerySchema],
|
|
56
|
-
query: vi.fn(),
|
|
57
|
-
}, true) as MockedObject<ModuleInstance>
|
|
58
|
-
resolverA = new CompositeModuleResolver({ root: moduleB })
|
|
59
|
-
resolverA.add(moduleA)
|
|
60
|
-
resolverA.add(moduleC)
|
|
61
|
-
resolverB = new CompositeModuleResolver({ root: moduleA })
|
|
62
|
-
resolverB.add(moduleB)
|
|
63
|
-
resolverB.add(moduleC)
|
|
64
|
-
|
|
65
|
-
sut = new CompositeModuleResolver({ root: moduleC }).addResolver(resolverA).addResolver(resolverB)
|
|
66
|
-
})
|
|
67
|
-
describe('add', () => {
|
|
68
|
-
it('adds module to resolvers', async () => {
|
|
69
|
-
const address = asAddress('b0e75b722e6cb03bbae3f488ed1e5a82bd7c381d', true)
|
|
70
|
-
const name = 'mod'
|
|
71
|
-
const mod = vi.mocked<Partial<ModuleInstance>>({
|
|
72
|
-
address,
|
|
73
|
-
config: { name, schema: ModuleConfigSchema },
|
|
74
|
-
manifest: vi.fn(),
|
|
75
|
-
modName: name,
|
|
76
|
-
queries: [ModuleStateQuerySchema],
|
|
77
|
-
query: vi.fn(),
|
|
78
|
-
state: vi.fn(),
|
|
79
|
-
}, true) as MockedObject<ModuleInstance>
|
|
80
|
-
expect(sut.add(mod)).toEqual(sut)
|
|
81
|
-
expect(await sut.resolve(address)).toBeDefined()
|
|
82
|
-
expect((await sut.resolve(name))).toBeDefined()
|
|
83
|
-
expect((await resolverA.resolve(address))).toBeUndefined()
|
|
84
|
-
expect((await resolverA.resolve(name))).toBeUndefined()
|
|
85
|
-
expect((await resolverB.resolve(address))).toBeUndefined()
|
|
86
|
-
expect((await resolverB.resolve(name))).toBeUndefined()
|
|
87
|
-
})
|
|
88
|
-
})
|
|
89
|
-
describe('remove', () => {
|
|
90
|
-
it('removes module from resolvers', async () => {
|
|
91
|
-
const address = moduleC.address
|
|
92
|
-
const name = moduleCName
|
|
93
|
-
|
|
94
|
-
expect(resolverA.remove(address)).toEqual(resolverA)
|
|
95
|
-
expect((await sut.resolve(address))).toBeDefined()
|
|
96
|
-
expect((await sut.resolve(name))).toBeDefined()
|
|
97
|
-
expect((await resolverA.resolve(address))).toBeUndefined()
|
|
98
|
-
expect((await resolverA.resolve(name))).toBeUndefined()
|
|
99
|
-
expect((await resolverB.resolve(address))).toBeDefined()
|
|
100
|
-
expect((await resolverB.resolve(name))).toBeDefined()
|
|
101
|
-
|
|
102
|
-
expect(resolverB.remove(address)).toEqual(resolverB)
|
|
103
|
-
expect((await sut.resolve(address))).toBeDefined()
|
|
104
|
-
expect((await sut.resolve(name))).toBeDefined()
|
|
105
|
-
expect((await resolverA.resolve(address))).toBeUndefined()
|
|
106
|
-
expect((await resolverA.resolve(name))).toBeUndefined()
|
|
107
|
-
expect((await resolverB.resolve(address))).toBeDefined()
|
|
108
|
-
expect((await resolverB.resolve(name))).toBeDefined()
|
|
109
|
-
})
|
|
110
|
-
})
|
|
111
|
-
describe('resolve', () => {
|
|
112
|
-
it('resolves module in first resolver', async () => {
|
|
113
|
-
const result = await sut.resolve(moduleAName)
|
|
114
|
-
expect(result).toBeDefined()
|
|
115
|
-
})
|
|
116
|
-
it('resolves module in second resolver', async () => {
|
|
117
|
-
const result = await sut.resolve(moduleBName)
|
|
118
|
-
expect(result).toBeDefined()
|
|
119
|
-
})
|
|
120
|
-
it('resolves module in both resolvers', async () => {
|
|
121
|
-
const result = await sut.resolve(moduleCName)
|
|
122
|
-
expect(result).toBeDefined()
|
|
123
|
-
})
|
|
124
|
-
})
|
|
125
|
-
})
|
|
126
|
-
})
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import '@xylabs/vitest-extended'
|
|
2
|
-
|
|
3
|
-
import { asAddress } from '@xylabs/hex'
|
|
4
|
-
import type { ModuleInstance } from '@xyo-network/module-model'
|
|
5
|
-
import { ModuleConfigSchema, ModuleStateQuerySchema } from '@xyo-network/module-model'
|
|
6
|
-
import type { MockedObject } from 'vitest'
|
|
7
|
-
import {
|
|
8
|
-
beforeEach, describe, expect,
|
|
9
|
-
it,
|
|
10
|
-
vi,
|
|
11
|
-
} from 'vitest'
|
|
12
|
-
|
|
13
|
-
import { SimpleModuleResolver } from '../SimpleModuleResolver.ts'
|
|
14
|
-
|
|
15
|
-
const moduleAName = 'moduleA'
|
|
16
|
-
const moduleBName = 'moduleB'
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @group module
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
describe('SimpleModuleResolver', () => {
|
|
23
|
-
describe('with multiple resolvers', () => {
|
|
24
|
-
let moduleA: MockedObject<ModuleInstance>
|
|
25
|
-
let moduleB: MockedObject<ModuleInstance>
|
|
26
|
-
let sut: SimpleModuleResolver
|
|
27
|
-
beforeEach(() => {
|
|
28
|
-
moduleA = vi.mocked<Partial<ModuleInstance>>({
|
|
29
|
-
address: asAddress('b0e75b722e6cb03bbae3f488ed1e5a82bd7c381a', true),
|
|
30
|
-
config: { name: moduleAName, schema: ModuleConfigSchema },
|
|
31
|
-
modName: moduleAName,
|
|
32
|
-
manifest: vi.fn(),
|
|
33
|
-
state: vi.fn(),
|
|
34
|
-
queries: [ModuleStateQuerySchema],
|
|
35
|
-
query: vi.fn(),
|
|
36
|
-
}, true) as MockedObject<ModuleInstance>
|
|
37
|
-
moduleB = vi.mocked<Partial<ModuleInstance>>({
|
|
38
|
-
address: asAddress('b0e75b722e6cb03bbae3f488ed1e5a82bd7c381b', true),
|
|
39
|
-
config: { name: moduleBName, schema: ModuleConfigSchema },
|
|
40
|
-
manifest: vi.fn(),
|
|
41
|
-
state: vi.fn(),
|
|
42
|
-
modName: moduleBName,
|
|
43
|
-
queries: [ModuleStateQuerySchema],
|
|
44
|
-
query: vi.fn(),
|
|
45
|
-
}, true) as MockedObject<ModuleInstance>
|
|
46
|
-
sut = new SimpleModuleResolver({ root: moduleA })
|
|
47
|
-
sut.add(moduleA)
|
|
48
|
-
})
|
|
49
|
-
describe('add', () => {
|
|
50
|
-
it('adds module to resolver', async () => {
|
|
51
|
-
const mod = moduleB
|
|
52
|
-
const address = mod.address
|
|
53
|
-
const name = moduleBName
|
|
54
|
-
expect(sut.add(mod)).toEqual(sut)
|
|
55
|
-
expect(await sut.resolve(address)).toBeDefined()
|
|
56
|
-
expect(await sut.resolve(name)).toBeDefined()
|
|
57
|
-
})
|
|
58
|
-
})
|
|
59
|
-
describe('remove', () => {
|
|
60
|
-
it('removes module from resolver', async () => {
|
|
61
|
-
const address = moduleA.address
|
|
62
|
-
const name = moduleAName
|
|
63
|
-
expect(sut.remove(address)).toEqual(sut)
|
|
64
|
-
expect(await sut.resolve(moduleA.address)).toBeUndefined()
|
|
65
|
-
expect(await sut.resolve(name)).toBeUndefined()
|
|
66
|
-
})
|
|
67
|
-
})
|
|
68
|
-
describe('resolve', () => {
|
|
69
|
-
it('resolves module', async () => {
|
|
70
|
-
const result = await sut.resolve(moduleAName)
|
|
71
|
-
expect(result).toBeDefined()
|
|
72
|
-
})
|
|
73
|
-
})
|
|
74
|
-
describe('tryResolve', () => {
|
|
75
|
-
it('resolves module', async () => {
|
|
76
|
-
const result = await sut.resolve(moduleAName)
|
|
77
|
-
expect(result).toBeDefined()
|
|
78
|
-
})
|
|
79
|
-
})
|
|
80
|
-
})
|
|
81
|
-
})
|