@xyo-network/schema-cache 3.3.0 → 3.3.1
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.
|
@@ -3,6 +3,10 @@ import type { SchemaPayload } from '@xyo-network/schema-payload-plugin';
|
|
|
3
3
|
import type { SchemaNameToValidatorMap } from './SchemaNameToValidatorMap.ts';
|
|
4
4
|
export type SchemaCacheEntry = FetchedPayload<SchemaPayload>;
|
|
5
5
|
export declare class SchemaCache<T extends SchemaNameToValidatorMap = SchemaNameToValidatorMap> {
|
|
6
|
+
/**
|
|
7
|
+
* Object representing `null` since LRU Cache types
|
|
8
|
+
* only allow for types that derive from object
|
|
9
|
+
*/
|
|
6
10
|
protected static readonly NULL: SchemaCacheEntry;
|
|
7
11
|
private static _instance?;
|
|
8
12
|
onSchemaCached?: (name: string, entry: SchemaCacheEntry) => void;
|
|
@@ -12,6 +16,11 @@ export declare class SchemaCache<T extends SchemaNameToValidatorMap = SchemaName
|
|
|
12
16
|
private getDebounce;
|
|
13
17
|
private constructor();
|
|
14
18
|
static get instance(): SchemaCache<SchemaNameToValidatorMap>;
|
|
19
|
+
/**
|
|
20
|
+
* A map of cached schema (by name) to payload validators for the schema. A schema
|
|
21
|
+
* must be cached via `get('schema.name')` before it's validator can be used as
|
|
22
|
+
* they are compiled dynamically at runtime upon retrieval.
|
|
23
|
+
*/
|
|
15
24
|
get validators(): T;
|
|
16
25
|
get(schema?: string): Promise<SchemaCacheEntry | undefined | null>;
|
|
17
26
|
private cacheSchemaIfValid;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaCache.d.ts","sourceRoot":"","sources":["../../src/SchemaCache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAQvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAQ7E,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;AAE5D,qBAAa,WAAW,CAAC,CAAC,SAAS,wBAAwB,GAAG,wBAAwB;
|
|
1
|
+
{"version":3,"file":"SchemaCache.d.ts","sourceRoot":"","sources":["../../src/SchemaCache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAQvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAQ7E,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;AAE5D,qBAAa,WAAW,CAAC,CAAC,SAAS,wBAAwB,GAAG,wBAAwB;IACpF;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAwD;IAExG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAa;IAEtC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,OAAO,CAAC,MAAM,CAA2E;IACzF,OAAO,CAAC,WAAW,CAAa;IAGhC,OAAO,CAAC,WAAW,CAAiB;IAEpC,OAAO;IAIP,MAAM,KAAK,QAAQ,0CAKlB;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,CAAC,CAElB;IAEK,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC;IAcxE,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,YAAY;YAMN,WAAW;CAqB1B"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import type { DomainPayload, DomainSchema } from '@xyo-network/domain-payload-plugin';
|
|
2
2
|
import type { Payload, PayloadSchema } from '@xyo-network/payload-model';
|
|
3
3
|
import type { SchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin';
|
|
4
|
+
/**
|
|
5
|
+
* Used in conjunction with schema validation to support compile time type assertion
|
|
6
|
+
* for known schema types.
|
|
7
|
+
*/
|
|
4
8
|
export type NarrowPayload<T extends Payload = Payload> = ((x: Payload) => x is T) | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Used to map known schemas (byt their string name) to the validators which assert their types
|
|
11
|
+
*/
|
|
5
12
|
export interface SchemaNameToValidatorMap {
|
|
6
13
|
[DomainSchema]: NarrowPayload<DomainPayload>;
|
|
7
14
|
[PayloadSchema]: NarrowPayload<Payload>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaNameToValidatorMap.d.ts","sourceRoot":"","sources":["../../src/SchemaNameToValidatorMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"SchemaNameToValidatorMap.d.ts","sourceRoot":"","sources":["../../src/SchemaNameToValidatorMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAErF;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;AAE7F;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;CAC7C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/schema-cache",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.1",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -29,22 +29,22 @@
|
|
|
29
29
|
"module": "dist/neutral/index.mjs",
|
|
30
30
|
"types": "dist/neutral/index.d.ts",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@xylabs/delay": "^4.
|
|
33
|
-
"@xylabs/error": "^4.
|
|
34
|
-
"@xyo-network/domain-payload-plugin": "^3.3.
|
|
35
|
-
"@xyo-network/huri": "^3.3.
|
|
36
|
-
"@xyo-network/payload-model": "^3.3.
|
|
37
|
-
"@xyo-network/schema-payload-plugin": "^3.3.
|
|
32
|
+
"@xylabs/delay": "^4.3.2",
|
|
33
|
+
"@xylabs/error": "^4.3.2",
|
|
34
|
+
"@xyo-network/domain-payload-plugin": "^3.3.1",
|
|
35
|
+
"@xyo-network/huri": "^3.3.1",
|
|
36
|
+
"@xyo-network/payload-model": "^3.3.1",
|
|
37
|
+
"@xyo-network/schema-payload-plugin": "^3.3.1",
|
|
38
38
|
"ajv": "^8.17.1",
|
|
39
39
|
"axios": "^1.7.7",
|
|
40
40
|
"lru-cache": "^11.0.1"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@xylabs/assert": "^4.
|
|
44
|
-
"@xylabs/ts-scripts-yarn3": "^4.2.
|
|
45
|
-
"@xylabs/tsconfig-dom": "^4.2.
|
|
46
|
-
"@xyo-network/network": "^3.3.
|
|
47
|
-
"@xyo-network/payload-builder": "^3.3.
|
|
43
|
+
"@xylabs/assert": "^4.3.2",
|
|
44
|
+
"@xylabs/ts-scripts-yarn3": "^4.2.3",
|
|
45
|
+
"@xylabs/tsconfig-dom": "^4.2.3",
|
|
46
|
+
"@xyo-network/network": "^3.3.1",
|
|
47
|
+
"@xyo-network/payload-builder": "^3.3.1",
|
|
48
48
|
"typescript": "^5.6.3"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|