@xyo-network/module-model 2.64.6 → 2.64.8
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/cjs/Queries/{ModuleAccount → ModuleAddress}/Payload.js.map +1 -1
- package/dist/cjs/Queries/ModuleAddress/Query.js +5 -0
- package/dist/cjs/Queries/ModuleAddress/Query.js.map +1 -0
- package/dist/cjs/Queries/ModuleAddress/index.js.map +1 -0
- package/dist/cjs/Queries/index.js +1 -1
- package/dist/cjs/asModule.js +28 -0
- package/dist/cjs/asModule.js.map +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/isModule.js +46 -9
- package/dist/cjs/isModule.js.map +1 -1
- package/dist/cjs/withModule.js +4 -3
- package/dist/cjs/withModule.js.map +1 -1
- package/dist/docs.json +5751 -2708
- package/dist/esm/Queries/{ModuleAccount → ModuleAddress}/Payload.js.map +1 -1
- package/dist/esm/Queries/ModuleAddress/Query.js +2 -0
- package/dist/esm/Queries/ModuleAddress/Query.js.map +1 -0
- package/dist/esm/Queries/ModuleAddress/index.js.map +1 -0
- package/dist/esm/Queries/index.js +1 -1
- package/dist/esm/asModule.js +25 -0
- package/dist/esm/asModule.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/isModule.js +41 -8
- package/dist/esm/isModule.js.map +1 -1
- package/dist/esm/withModule.js +4 -3
- package/dist/esm/withModule.js.map +1 -1
- package/dist/types/Module.d.ts +15 -7
- package/dist/types/Module.d.ts.map +1 -1
- package/dist/types/Queries/{ModuleAccount → ModuleAddress}/Payload.d.ts.map +1 -1
- package/dist/types/Queries/ModuleAddress/Query.d.ts +7 -0
- package/dist/types/Queries/{ModuleAccount → ModuleAddress}/Query.d.ts.map +1 -1
- package/dist/types/Queries/ModuleAddress/index.d.ts.map +1 -0
- package/dist/types/Queries/index.d.ts +3 -3
- package/dist/types/Query/QueryBoundWitness.d.ts +2 -0
- package/dist/types/Query/QueryBoundWitness.d.ts.map +1 -1
- package/dist/types/asModule.d.ts +16 -0
- package/dist/types/asModule.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/isModule.d.ts +12 -4
- package/dist/types/isModule.d.ts.map +1 -1
- package/dist/types/withModule.d.ts +5 -5
- package/dist/types/withModule.d.ts.map +1 -1
- package/package.json +11 -10
- package/src/Module.ts +25 -8
- package/src/Queries/ModuleAddress/Query.ts +8 -0
- package/src/Queries/index.ts +3 -3
- package/src/asModule.ts +39 -0
- package/src/index.ts +1 -0
- package/src/isModule.ts +59 -14
- package/src/withModule.ts +7 -7
- package/dist/cjs/Queries/ModuleAccount/Query.js +0 -5
- package/dist/cjs/Queries/ModuleAccount/Query.js.map +0 -1
- package/dist/cjs/Queries/ModuleAccount/index.js.map +0 -1
- package/dist/esm/Queries/ModuleAccount/Query.js +0 -2
- package/dist/esm/Queries/ModuleAccount/Query.js.map +0 -1
- package/dist/esm/Queries/ModuleAccount/index.js.map +0 -1
- package/dist/types/Queries/ModuleAccount/Query.d.ts +0 -7
- package/dist/types/Queries/ModuleAccount/index.d.ts.map +0 -1
- package/src/Queries/ModuleAccount/Query.ts +0 -8
- /package/dist/cjs/Queries/{ModuleAccount → ModuleAddress}/Payload.js +0 -0
- /package/dist/cjs/Queries/{ModuleAccount → ModuleAddress}/index.js +0 -0
- /package/dist/esm/Queries/{ModuleAccount → ModuleAddress}/Payload.js +0 -0
- /package/dist/esm/Queries/{ModuleAccount → ModuleAddress}/index.js +0 -0
- /package/dist/types/Queries/{ModuleAccount → ModuleAddress}/Payload.d.ts +0 -0
- /package/dist/types/Queries/{ModuleAccount → ModuleAddress}/index.d.ts +0 -0
- /package/src/Queries/{ModuleAccount → ModuleAddress}/Payload.ts +0 -0
- /package/src/Queries/{ModuleAccount → ModuleAddress}/index.ts +0 -0
package/src/isModule.ts
CHANGED
|
@@ -1,24 +1,69 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { Module, ModuleInstance } from './Module'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
export type InstanceTypeCheck<T extends object = object> = (module: object) => module is T
|
|
5
|
+
|
|
6
|
+
export type ModuleTypeCheck<T extends Module = Module> = InstanceTypeCheck<T>
|
|
7
|
+
|
|
8
|
+
export type FieldType = 'string' | 'number' | 'object' | 'symbol' | 'symbol' | 'undefined' | 'null' | 'array' | 'function' | 'payload'
|
|
9
|
+
|
|
10
|
+
export type InstanceTypeShape = Record<string | number | symbol, FieldType>
|
|
11
|
+
|
|
12
|
+
export const isType = (value: any, expectedType: FieldType) => {
|
|
13
|
+
if (expectedType === 'array') {
|
|
14
|
+
return Array.isArray(value)
|
|
15
|
+
} else if (expectedType === 'payload') {
|
|
16
|
+
return typeof value === 'object' && typeof value.schema === 'string'
|
|
17
|
+
} else {
|
|
18
|
+
return typeof value === expectedType
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const IsInstanceFactory = {
|
|
23
|
+
create: <T extends object = object>(shape?: InstanceTypeShape, additionalCheck?: (module: any) => boolean): InstanceTypeCheck<T> => {
|
|
24
|
+
return (module: any = {}): module is T => {
|
|
25
|
+
return (
|
|
26
|
+
(additionalCheck?.(module) ?? true) &&
|
|
27
|
+
(Object.entries(shape ?? {}).reduce((prev, [key, type]) => prev && isType(module[key], type), true) ?? true)
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
}
|
|
5
32
|
|
|
6
33
|
export const IsModuleFactory = {
|
|
7
|
-
create: <T extends
|
|
8
|
-
|
|
9
|
-
expectedFunctions?: string[],
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
-
additionalCheck?: (module: any) => boolean,
|
|
12
|
-
): ModuleTypeCheck<T> => {
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
-
return (module: any): module is T => {
|
|
34
|
+
create: <T extends ModuleInstance = ModuleInstance>(expectedQueries?: string[], additionalCheck?: (module: any) => boolean): ModuleTypeCheck<T> => {
|
|
35
|
+
return (module: any = {}): module is T => {
|
|
15
36
|
return (
|
|
16
|
-
(
|
|
37
|
+
isModuleInstance(module) &&
|
|
17
38
|
(additionalCheck?.(module) ?? true) &&
|
|
18
|
-
(
|
|
39
|
+
(expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true)
|
|
19
40
|
)
|
|
20
41
|
}
|
|
21
42
|
},
|
|
22
43
|
}
|
|
23
44
|
|
|
24
|
-
export const
|
|
45
|
+
export const isModuleInstance: InstanceTypeCheck<ModuleInstance> = IsInstanceFactory.create<ModuleInstance>({
|
|
46
|
+
account: 'object',
|
|
47
|
+
address: 'string',
|
|
48
|
+
config: 'object',
|
|
49
|
+
discover: 'function',
|
|
50
|
+
downResolver: 'object',
|
|
51
|
+
manifest: 'function',
|
|
52
|
+
params: 'object',
|
|
53
|
+
queries: 'array',
|
|
54
|
+
query: 'function',
|
|
55
|
+
queryable: 'function',
|
|
56
|
+
upResolver: 'object',
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
export const isModule = <T extends Module = Module>(
|
|
60
|
+
module: any = {},
|
|
61
|
+
expectedQueries?: string[],
|
|
62
|
+
additionalCheck?: (module: any) => boolean,
|
|
63
|
+
): module is T => {
|
|
64
|
+
return (
|
|
65
|
+
isModuleInstance(module) &&
|
|
66
|
+
(additionalCheck?.(module) ?? true) &&
|
|
67
|
+
(expectedQueries?.reduce((prev, query) => prev && module.queries.includes(query), true) ?? true)
|
|
68
|
+
)
|
|
69
|
+
}
|
package/src/withModule.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { isModule,
|
|
2
|
-
import { Module } from './Module'
|
|
1
|
+
import { InstanceTypeCheck, isModule, isModuleInstance } from './isModule'
|
|
3
2
|
|
|
4
|
-
export const
|
|
5
|
-
create: <T extends
|
|
6
|
-
return <R
|
|
3
|
+
export const WithFactory = {
|
|
4
|
+
create: <T extends object>(typeCheck: InstanceTypeCheck<T>) => {
|
|
5
|
+
return <R>(
|
|
7
6
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
7
|
module: any,
|
|
9
8
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
-
closure: (module:
|
|
9
|
+
closure: (module: T) => R,
|
|
11
10
|
): R | undefined => {
|
|
12
11
|
return typeCheck(module) ? closure(module) : undefined
|
|
13
12
|
}
|
|
14
13
|
},
|
|
15
14
|
}
|
|
16
15
|
|
|
17
|
-
export const withModule =
|
|
16
|
+
export const withModule = WithFactory.create(isModule)
|
|
17
|
+
export const withModuleInstance = WithFactory.create(isModuleInstance)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Query.js","sourceRoot":"","sources":["../../../../src/Queries/ModuleAccount/Query.ts"],"names":[],"mappings":";;;AAGa,QAAA,wBAAwB,GAA6B,kCAAkC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Queries/ModuleAccount/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,kDAAuB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Query.js","sourceRoot":"","sources":["../../../../src/Queries/ModuleAccount/Query.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,wBAAwB,GAA6B,kCAAkC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Queries/ModuleAccount/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Query } from '../../Query';
|
|
2
|
-
export type ModuleAccountQuerySchema = 'network.xyo.query.module.account';
|
|
3
|
-
export declare const ModuleAccountQuerySchema: ModuleAccountQuerySchema;
|
|
4
|
-
export type ModuleAccountQuery = Query<{
|
|
5
|
-
schema: ModuleAccountQuerySchema;
|
|
6
|
-
}>;
|
|
7
|
-
//# sourceMappingURL=Query.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Queries/ModuleAccount/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Query } from '../../Query'
|
|
2
|
-
|
|
3
|
-
export type ModuleAccountQuerySchema = 'network.xyo.query.module.account'
|
|
4
|
-
export const ModuleAccountQuerySchema: ModuleAccountQuerySchema = 'network.xyo.query.module.account'
|
|
5
|
-
|
|
6
|
-
export type ModuleAccountQuery = Query<{
|
|
7
|
-
schema: ModuleAccountQuerySchema
|
|
8
|
-
}>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|