@xyo-network/api 2.38.16 → 2.38.18
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/Diviner/SchemaListApiDiviner/Payload.d.ts +6 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/Payload.d.ts.map +1 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/Payload.js +3 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/Payload.js.map +1 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.d.ts +20 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.d.ts.map +1 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.js +54 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.js.map +1 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.d.ts +9 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.d.ts.map +1 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.js +5 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.js.map +1 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/index.d.ts +4 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/index.d.ts.map +1 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/index.js +7 -0
- package/dist/cjs/Diviner/SchemaListApiDiviner/index.js.map +1 -0
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/index.d.ts +1 -0
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/index.d.ts.map +1 -1
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/index.js +1 -0
- package/dist/cjs/Diviner/SchemaStatsApiDiviner/index.js.map +1 -1
- package/dist/cjs/Diviner/index.d.ts +3 -0
- package/dist/cjs/Diviner/index.d.ts.map +1 -1
- package/dist/cjs/Diviner/index.js +3 -0
- package/dist/cjs/Diviner/index.js.map +1 -1
- package/dist/docs.json +10312 -2604
- package/dist/esm/Diviner/SchemaListApiDiviner/Payload.d.ts +6 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/Payload.d.ts.map +1 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/Payload.js +2 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/Payload.js.map +1 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.d.ts +20 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.d.ts.map +1 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.js +36 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.js.map +1 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.d.ts +9 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.d.ts.map +1 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.js +2 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.js.map +1 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/index.d.ts +4 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/index.d.ts.map +1 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/index.js +4 -0
- package/dist/esm/Diviner/SchemaListApiDiviner/index.js.map +1 -0
- package/dist/esm/Diviner/SchemaStatsApiDiviner/index.d.ts +1 -0
- package/dist/esm/Diviner/SchemaStatsApiDiviner/index.d.ts.map +1 -1
- package/dist/esm/Diviner/SchemaStatsApiDiviner/index.js +1 -0
- package/dist/esm/Diviner/SchemaStatsApiDiviner/index.js.map +1 -1
- package/dist/esm/Diviner/index.d.ts +3 -0
- package/dist/esm/Diviner/index.d.ts.map +1 -1
- package/dist/esm/Diviner/index.js +3 -0
- package/dist/esm/Diviner/index.js.map +1 -1
- package/package.json +9 -9
- package/src/Diviner/SchemaListApiDiviner/Payload.ts +9 -0
- package/src/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.spec.ts +23 -0
- package/src/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.ts +51 -0
- package/src/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.ts +13 -0
- package/src/Diviner/SchemaListApiDiviner/index.ts +3 -0
- package/src/Diviner/SchemaStatsApiDiviner/index.ts +1 -0
- package/src/Diviner/index.ts +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/SchemaListApiDiviner/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEpE,oBAAY,UAAU,GAAG,UAAU,CACjC;IACE,IAAI,EAAE,MAAM,CAAA;CACb,EACD,eAAe,CAChB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Payload.js","sourceRoot":"","sources":["../../../../src/Diviner/SchemaListApiDiviner/Payload.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { XyoDiviner } from '@xyo-network/diviner';
|
|
2
|
+
import { XyoModuleParams } from '@xyo-network/module';
|
|
3
|
+
import { XyoArchivistApi } from '../../Api';
|
|
4
|
+
import { SchemaList } from './Payload';
|
|
5
|
+
import { XyoSchemaListApiDivinerConfig } from './SchemaListApiDivinerConfig';
|
|
6
|
+
export declare type XyoSchemaListApiDivinerParams = XyoModuleParams<XyoSchemaListApiDivinerConfig> & {
|
|
7
|
+
api: XyoArchivistApi;
|
|
8
|
+
};
|
|
9
|
+
export declare class SchemaListApiDiviner extends XyoDiviner<XyoSchemaListApiDivinerConfig> {
|
|
10
|
+
static configSchema: "network.xyo.diviner.schema.list.api.config";
|
|
11
|
+
static targetSchema: "network.xyo.schema";
|
|
12
|
+
protected readonly api: XyoArchivistApi;
|
|
13
|
+
protected constructor(params: XyoSchemaListApiDivinerParams);
|
|
14
|
+
get archive(): string;
|
|
15
|
+
static create(params: XyoSchemaListApiDivinerParams): Promise<SchemaListApiDiviner>;
|
|
16
|
+
divine(): Promise<SchemaList[]>;
|
|
17
|
+
queries(): string[];
|
|
18
|
+
protected start(): Promise<this>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SchemaListApiDiviner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaListApiDiviner.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA+B,MAAM,sBAAsB,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,6BAA6B,EAAuC,MAAM,8BAA8B,CAAA;AAEjH,oBAAY,6BAA6B,GAAG,eAAe,CAAC,6BAA6B,CAAC,GAAG;IAAE,GAAG,EAAE,eAAe,CAAA;CAAE,CAAA;AAErH,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,6BAA6B,CAAC;IACjF,OAAgB,YAAY,+CAAsC;IAClE,OAAgB,YAAY,uBAAkB;IAE9C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAA;IAEvC,SAAS,aAAa,MAAM,EAAE,6BAA6B;IAK3D,IAAI,OAAO,WAEV;WAEqB,MAAM,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIrF,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAYnC,OAAO;cAIS,KAAK;CAI/B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/sdk-js';
|
|
2
|
+
import { XyoDiviner, XyoDivinerDivineQuerySchema } from '@xyo-network/diviner';
|
|
3
|
+
import { XyoSchemaSchema } from '@xyo-network/schema-payload-plugin';
|
|
4
|
+
import { XyoSchemaListApiDivinerConfigSchema } from './SchemaListApiDivinerConfig';
|
|
5
|
+
export class SchemaListApiDiviner extends XyoDiviner {
|
|
6
|
+
static configSchema = XyoSchemaListApiDivinerConfigSchema;
|
|
7
|
+
static targetSchema = XyoSchemaSchema;
|
|
8
|
+
api;
|
|
9
|
+
constructor(params) {
|
|
10
|
+
super(params);
|
|
11
|
+
this.api = params.api;
|
|
12
|
+
}
|
|
13
|
+
get archive() {
|
|
14
|
+
return assertEx(this.config?.archive, `config required [${this.config}]`);
|
|
15
|
+
}
|
|
16
|
+
static async create(params) {
|
|
17
|
+
return (await super.create(params));
|
|
18
|
+
}
|
|
19
|
+
async divine() {
|
|
20
|
+
const apiResult = (await this.api.archive(this.archive)?.payload.schema.get()) ?? [];
|
|
21
|
+
return (apiResult.map((schema) => {
|
|
22
|
+
return {
|
|
23
|
+
name: schema,
|
|
24
|
+
schema: XyoSchemaSchema,
|
|
25
|
+
};
|
|
26
|
+
}) ?? []);
|
|
27
|
+
}
|
|
28
|
+
queries() {
|
|
29
|
+
return [XyoDivinerDivineQuerySchema, ...super.queries()];
|
|
30
|
+
}
|
|
31
|
+
async start() {
|
|
32
|
+
await super.start();
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=SchemaListApiDiviner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaListApiDiviner.js","sourceRoot":"","sources":["../../../../src/Diviner/SchemaListApiDiviner/SchemaListApiDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAIpE,OAAO,EAAiC,mCAAmC,EAAE,MAAM,8BAA8B,CAAA;AAIjH,MAAM,OAAO,oBAAqB,SAAQ,UAAyC;IACjF,MAAM,CAAU,YAAY,GAAG,mCAAmC,CAAA;IAClE,MAAM,CAAU,YAAY,GAAG,eAAe,CAAA;IAE3B,GAAG,CAAiB;IAEvC,YAAsB,MAAqC;QACzD,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IACvB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,oBAAoB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAqC;QAChE,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAyB,CAAA;IAC7D,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;QACpF,OAAO,CACL,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACvB,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,eAAe;aACxB,CAAA;QACH,CAAC,CAAC,IAAI,EAAE,CACT,CAAA;IACH,CAAC;IAEQ,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEkB,KAAK,CAAC,KAAK;QAC5B,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { XyoDivinerConfig } from '@xyo-network/diviner';
|
|
2
|
+
import { XyoPayload } from '@xyo-network/payload';
|
|
3
|
+
export declare type XyoSchemaListApiDivinerConfigSchema = 'network.xyo.diviner.schema.list.api.config';
|
|
4
|
+
export declare const XyoSchemaListApiDivinerConfigSchema: XyoSchemaListApiDivinerConfigSchema;
|
|
5
|
+
export declare type XyoSchemaListApiDivinerConfig<T extends XyoPayload = XyoPayload> = XyoDivinerConfig<XyoPayload, T & {
|
|
6
|
+
schema: XyoSchemaListApiDivinerConfigSchema;
|
|
7
|
+
archive: string;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=SchemaListApiDivinerConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaListApiDivinerConfig.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,oBAAY,mCAAmC,GAAG,4CAA4C,CAAA;AAC9F,eAAO,MAAM,mCAAmC,EAAE,mCAAkF,CAAA;AAEpI,oBAAY,6BAA6B,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,gBAAgB,CAC7F,UAAU,EACV,CAAC,GAAG;IACF,MAAM,EAAE,mCAAmC,CAAA;IAC3C,OAAO,EAAE,MAAM,CAAA;CAChB,CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaListApiDivinerConfig.js","sourceRoot":"","sources":["../../../../src/Diviner/SchemaListApiDiviner/SchemaListApiDivinerConfig.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,mCAAmC,GAAwC,4CAA4C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/SchemaListApiDiviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Diviner/SchemaListApiDiviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/SchemaStatsApiDiviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/SchemaStatsApiDiviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Diviner/SchemaStatsApiDiviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Diviner/SchemaStatsApiDiviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA"}
|
package/package.json
CHANGED
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
"@xylabs/assert": "^2.6.9",
|
|
13
13
|
"@xylabs/delay": "^2.6.9",
|
|
14
14
|
"@xylabs/sdk-js": "^2.6.9",
|
|
15
|
-
"@xyo-network/account": "^2.38.
|
|
16
|
-
"@xyo-network/archivist": "^2.38.
|
|
17
|
-
"@xyo-network/boundwitness": "^2.38.
|
|
18
|
-
"@xyo-network/core": "^2.38.
|
|
19
|
-
"@xyo-network/diviner": "^2.38.
|
|
20
|
-
"@xyo-network/module": "^2.38.
|
|
21
|
-
"@xyo-network/payload": "^2.38.
|
|
22
|
-
"@xyo-network/schema-payload-plugin": "^2.38.
|
|
15
|
+
"@xyo-network/account": "^2.38.18",
|
|
16
|
+
"@xyo-network/archivist": "^2.38.18",
|
|
17
|
+
"@xyo-network/boundwitness": "^2.38.18",
|
|
18
|
+
"@xyo-network/core": "^2.38.18",
|
|
19
|
+
"@xyo-network/diviner": "^2.38.18",
|
|
20
|
+
"@xyo-network/module": "^2.38.18",
|
|
21
|
+
"@xyo-network/payload": "^2.38.18",
|
|
22
|
+
"@xyo-network/schema-payload-plugin": "^2.38.18",
|
|
23
23
|
"tslib": "^2.4.0"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
},
|
|
67
67
|
"sideEffects": false,
|
|
68
68
|
"types": "dist/esm/index.d.ts",
|
|
69
|
-
"version": "2.38.
|
|
69
|
+
"version": "2.38.18"
|
|
70
70
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { XyoArchivistApi } from '../../Api'
|
|
2
|
+
import { XyoApiConfig } from '../../models'
|
|
3
|
+
import { SchemaListApiDiviner } from './SchemaListApiDiviner'
|
|
4
|
+
import { XyoSchemaListApiDivinerConfigSchema } from './SchemaListApiDivinerConfig'
|
|
5
|
+
|
|
6
|
+
const configData: XyoApiConfig = {
|
|
7
|
+
apiDomain: process.env.API_DOMAIN || 'https://beta.api.archivist.xyo.network',
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
test('SchemaListApiDiviner', async () => {
|
|
11
|
+
const api = new XyoArchivistApi(configData)
|
|
12
|
+
const diviner = await SchemaListApiDiviner.create({
|
|
13
|
+
api,
|
|
14
|
+
config: { archive: 'temp', schema: XyoSchemaListApiDivinerConfigSchema },
|
|
15
|
+
logger: console,
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
expect(diviner).toBeDefined()
|
|
19
|
+
|
|
20
|
+
const result = await diviner.divine()
|
|
21
|
+
|
|
22
|
+
expect(result.length).toBeGreaterThan(0)
|
|
23
|
+
})
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/sdk-js'
|
|
2
|
+
import { XyoDiviner, XyoDivinerDivineQuerySchema } from '@xyo-network/diviner'
|
|
3
|
+
import { XyoModuleParams } from '@xyo-network/module'
|
|
4
|
+
import { XyoSchemaSchema } from '@xyo-network/schema-payload-plugin'
|
|
5
|
+
|
|
6
|
+
import { XyoArchivistApi } from '../../Api'
|
|
7
|
+
import { SchemaList } from './Payload'
|
|
8
|
+
import { XyoSchemaListApiDivinerConfig, XyoSchemaListApiDivinerConfigSchema } from './SchemaListApiDivinerConfig'
|
|
9
|
+
|
|
10
|
+
export type XyoSchemaListApiDivinerParams = XyoModuleParams<XyoSchemaListApiDivinerConfig> & { api: XyoArchivistApi }
|
|
11
|
+
|
|
12
|
+
export class SchemaListApiDiviner extends XyoDiviner<XyoSchemaListApiDivinerConfig> {
|
|
13
|
+
static override configSchema = XyoSchemaListApiDivinerConfigSchema
|
|
14
|
+
static override targetSchema = XyoSchemaSchema
|
|
15
|
+
|
|
16
|
+
protected readonly api: XyoArchivistApi
|
|
17
|
+
|
|
18
|
+
protected constructor(params: XyoSchemaListApiDivinerParams) {
|
|
19
|
+
super(params)
|
|
20
|
+
this.api = params.api
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
get archive() {
|
|
24
|
+
return assertEx(this.config?.archive, `config required [${this.config}]`)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static override async create(params: XyoSchemaListApiDivinerParams): Promise<SchemaListApiDiviner> {
|
|
28
|
+
return (await super.create(params)) as SchemaListApiDiviner
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public async divine(): Promise<SchemaList[]> {
|
|
32
|
+
const apiResult = (await this.api.archive(this.archive)?.payload.schema.get()) ?? []
|
|
33
|
+
return (
|
|
34
|
+
apiResult.map((schema) => {
|
|
35
|
+
return {
|
|
36
|
+
name: schema,
|
|
37
|
+
schema: XyoSchemaSchema,
|
|
38
|
+
}
|
|
39
|
+
}) ?? []
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
override queries() {
|
|
44
|
+
return [XyoDivinerDivineQuerySchema, ...super.queries()]
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
protected override async start() {
|
|
48
|
+
await super.start()
|
|
49
|
+
return this
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { XyoDivinerConfig } from '@xyo-network/diviner'
|
|
2
|
+
import { XyoPayload } from '@xyo-network/payload'
|
|
3
|
+
|
|
4
|
+
export type XyoSchemaListApiDivinerConfigSchema = 'network.xyo.diviner.schema.list.api.config'
|
|
5
|
+
export const XyoSchemaListApiDivinerConfigSchema: XyoSchemaListApiDivinerConfigSchema = 'network.xyo.diviner.schema.list.api.config'
|
|
6
|
+
|
|
7
|
+
export type XyoSchemaListApiDivinerConfig<T extends XyoPayload = XyoPayload> = XyoDivinerConfig<
|
|
8
|
+
XyoPayload,
|
|
9
|
+
T & {
|
|
10
|
+
schema: XyoSchemaListApiDivinerConfigSchema
|
|
11
|
+
archive: string
|
|
12
|
+
}
|
|
13
|
+
>
|