@xyo-network/archivist 2.22.11 → 2.22.12
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/XyoMemoryArchivist.d.ts +12 -6
- package/dist/cjs/XyoMemoryArchivist.js +7 -3
- package/dist/cjs/XyoMemoryArchivist.js.map +1 -1
- package/dist/cjs/model/Archivist.d.ts +21 -7
- package/dist/esm/XyoMemoryArchivist.d.ts +12 -6
- package/dist/esm/XyoMemoryArchivist.js +6 -3
- package/dist/esm/XyoMemoryArchivist.js.map +1 -1
- package/dist/esm/model/Archivist.d.ts +21 -7
- package/package.json +5 -5
- package/src/XyoMemoryArchivist.ts +23 -6
- package/src/model/Archivist.ts +29 -7
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { XyoPayload } from '@xyo-network/payload';
|
|
2
|
+
import { PromisableArray } from './model';
|
|
2
3
|
import { XyoArchivist } from './XyoArchivist';
|
|
3
|
-
import { XyoArchivistConfigWrapper } from './XyoArchivistConfig';
|
|
4
|
+
import { XyoArchivistConfig, XyoArchivistConfigWrapper } from './XyoArchivistConfig';
|
|
4
5
|
import { XyoPayloadFindQuery } from './XyoPayloadFindFilter';
|
|
5
|
-
export
|
|
6
|
+
export interface XyoMemoryArchivistConfig<T extends XyoPayload = XyoPayload> extends XyoArchivistConfig<T> {
|
|
7
|
+
max?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class XyoMemoryArchivist<C extends XyoMemoryArchivistConfig<XyoPayload> = XyoMemoryArchivistConfig<XyoPayload>> extends XyoArchivistConfigWrapper<XyoPayload, C> implements XyoArchivist {
|
|
10
|
+
get max(): number;
|
|
6
11
|
private cache;
|
|
7
|
-
|
|
12
|
+
constructor(config?: C);
|
|
13
|
+
delete(hashes: string[]): PromisableArray<boolean>;
|
|
8
14
|
clear(): void | Promise<void>;
|
|
9
15
|
get(hashes: string[]): Promise<(XyoPayload | null)[]>;
|
|
10
|
-
insert(payloads: XyoPayload[]):
|
|
11
|
-
find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery):
|
|
16
|
+
insert(payloads: XyoPayload[]): PromisableArray<XyoPayload>;
|
|
17
|
+
find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): PromisableArray<R>;
|
|
12
18
|
all(): Promise<XyoPayload[]> | XyoPayload[];
|
|
13
|
-
commit(): Promise<import("@xyo-network/payload").XyoPayloadBase[]
|
|
19
|
+
commit(): Promise<import("@xyo-network/payload").XyoPayloadBase[]>;
|
|
14
20
|
}
|
|
@@ -8,9 +8,13 @@ const payload_1 = require("@xyo-network/payload");
|
|
|
8
8
|
const lru_cache_1 = tslib_1.__importDefault(require("lru-cache"));
|
|
9
9
|
const XyoArchivistConfig_1 = require("./XyoArchivistConfig");
|
|
10
10
|
class XyoMemoryArchivist extends XyoArchivistConfig_1.XyoArchivistConfigWrapper {
|
|
11
|
-
constructor() {
|
|
12
|
-
super(
|
|
13
|
-
this.cache = new lru_cache_1.default({ max:
|
|
11
|
+
constructor(config) {
|
|
12
|
+
super(config);
|
|
13
|
+
this.cache = new lru_cache_1.default({ max: this.max });
|
|
14
|
+
}
|
|
15
|
+
get max() {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
return (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.max) !== null && _b !== void 0 ? _b : 10000;
|
|
14
18
|
}
|
|
15
19
|
delete(hashes) {
|
|
16
20
|
return hashes.map((hash) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,4DAAmF;AACnF,kDAAoE;AACpE,kEAAgC;
|
|
1
|
+
{"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export declare type Promisable<T> = Promise<T> | T;
|
|
2
|
+
export declare type PromisableArray<T> = Promisable<T[]>;
|
|
3
|
+
export declare type OptionalPromisable<T> = Promisable<T | undefined>;
|
|
4
|
+
export declare type OptionalPromisableArray<T> = PromisableArray<T | undefined>;
|
|
5
|
+
export declare type NullablePromisable<T> = Promisable<T | null>;
|
|
6
|
+
export declare type NullablePromisableArray<T> = PromisableArray<T | null>;
|
|
7
|
+
export interface ReadArchivist<TReadResponse, TId = string> {
|
|
8
|
+
get(ids: TId[]): NullablePromisableArray<TReadResponse>;
|
|
9
|
+
all?(): PromisableArray<TReadResponse>;
|
|
10
|
+
}
|
|
11
|
+
export interface WriteArchivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TId = string> {
|
|
12
|
+
insert(item: TWrite[]): PromisableArray<TWriteResponse>;
|
|
13
|
+
delete?(ids: TId[]): PromisableArray<boolean>;
|
|
7
14
|
clear?(): void;
|
|
8
|
-
|
|
15
|
+
}
|
|
16
|
+
export interface QueryArchivist<TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown> {
|
|
17
|
+
find(query: TQuery): PromisableArray<TQueryResponse>;
|
|
18
|
+
}
|
|
19
|
+
export interface StashArchivist<TReadResponse> {
|
|
20
|
+
commit?(): PromisableArray<TReadResponse>;
|
|
21
|
+
}
|
|
22
|
+
export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> extends ReadArchivist<TReadResponse, TId>, QueryArchivist<TReadResponse, TQueryResponse, TQuery>, WriteArchivist<TReadResponse, TWriteResponse, TWrite, TId>, StashArchivist<TReadResponse> {
|
|
9
23
|
}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { XyoPayload } from '@xyo-network/payload';
|
|
2
|
+
import { PromisableArray } from './model';
|
|
2
3
|
import { XyoArchivist } from './XyoArchivist';
|
|
3
|
-
import { XyoArchivistConfigWrapper } from './XyoArchivistConfig';
|
|
4
|
+
import { XyoArchivistConfig, XyoArchivistConfigWrapper } from './XyoArchivistConfig';
|
|
4
5
|
import { XyoPayloadFindQuery } from './XyoPayloadFindFilter';
|
|
5
|
-
export
|
|
6
|
+
export interface XyoMemoryArchivistConfig<T extends XyoPayload = XyoPayload> extends XyoArchivistConfig<T> {
|
|
7
|
+
max?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class XyoMemoryArchivist<C extends XyoMemoryArchivistConfig<XyoPayload> = XyoMemoryArchivistConfig<XyoPayload>> extends XyoArchivistConfigWrapper<XyoPayload, C> implements XyoArchivist {
|
|
10
|
+
get max(): number;
|
|
6
11
|
private cache;
|
|
7
|
-
|
|
12
|
+
constructor(config?: C);
|
|
13
|
+
delete(hashes: string[]): PromisableArray<boolean>;
|
|
8
14
|
clear(): void | Promise<void>;
|
|
9
15
|
get(hashes: string[]): Promise<(XyoPayload | null)[]>;
|
|
10
|
-
insert(payloads: XyoPayload[]):
|
|
11
|
-
find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery):
|
|
16
|
+
insert(payloads: XyoPayload[]): PromisableArray<XyoPayload>;
|
|
17
|
+
find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): PromisableArray<R>;
|
|
12
18
|
all(): Promise<XyoPayload[]> | XyoPayload[];
|
|
13
|
-
commit(): Promise<import("@xyo-network/payload").XyoPayloadBase[]
|
|
19
|
+
commit(): Promise<import("@xyo-network/payload").XyoPayloadBase[]>;
|
|
14
20
|
}
|
|
@@ -4,9 +4,12 @@ import { XyoPayloadWrapper } from '@xyo-network/payload';
|
|
|
4
4
|
import LruCache from 'lru-cache';
|
|
5
5
|
import { XyoArchivistConfigWrapper } from './XyoArchivistConfig';
|
|
6
6
|
export class XyoMemoryArchivist extends XyoArchivistConfigWrapper {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(
|
|
9
|
-
this.cache = new LruCache({ max:
|
|
7
|
+
constructor(config) {
|
|
8
|
+
super(config);
|
|
9
|
+
this.cache = new LruCache({ max: this.max });
|
|
10
|
+
}
|
|
11
|
+
get max() {
|
|
12
|
+
return this.config?.max ?? 10000;
|
|
10
13
|
}
|
|
11
14
|
delete(hashes) {
|
|
12
15
|
return hashes.map((hash) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAmB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACnF,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,QAAQ,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoMemoryArchivist.js","sourceRoot":"","sources":["../../src/XyoMemoryArchivist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export declare type Promisable<T> = Promise<T> | T;
|
|
2
|
+
export declare type PromisableArray<T> = Promisable<T[]>;
|
|
3
|
+
export declare type OptionalPromisable<T> = Promisable<T | undefined>;
|
|
4
|
+
export declare type OptionalPromisableArray<T> = PromisableArray<T | undefined>;
|
|
5
|
+
export declare type NullablePromisable<T> = Promisable<T | null>;
|
|
6
|
+
export declare type NullablePromisableArray<T> = PromisableArray<T | null>;
|
|
7
|
+
export interface ReadArchivist<TReadResponse, TId = string> {
|
|
8
|
+
get(ids: TId[]): NullablePromisableArray<TReadResponse>;
|
|
9
|
+
all?(): PromisableArray<TReadResponse>;
|
|
10
|
+
}
|
|
11
|
+
export interface WriteArchivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TId = string> {
|
|
12
|
+
insert(item: TWrite[]): PromisableArray<TWriteResponse>;
|
|
13
|
+
delete?(ids: TId[]): PromisableArray<boolean>;
|
|
7
14
|
clear?(): void;
|
|
8
|
-
|
|
15
|
+
}
|
|
16
|
+
export interface QueryArchivist<TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown> {
|
|
17
|
+
find(query: TQuery): PromisableArray<TQueryResponse>;
|
|
18
|
+
}
|
|
19
|
+
export interface StashArchivist<TReadResponse> {
|
|
20
|
+
commit?(): PromisableArray<TReadResponse>;
|
|
21
|
+
}
|
|
22
|
+
export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string> extends ReadArchivist<TReadResponse, TId>, QueryArchivist<TReadResponse, TQueryResponse, TQuery>, WriteArchivist<TReadResponse, TWriteResponse, TWrite, TId>, StashArchivist<TReadResponse> {
|
|
9
23
|
}
|
package/package.json
CHANGED
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@xylabs/sdk-js": "^2.6.2",
|
|
13
|
-
"@xyo-network/account": "^2.22.
|
|
14
|
-
"@xyo-network/boundwitness": "^2.22.
|
|
15
|
-
"@xyo-network/core": "^2.22.
|
|
16
|
-
"@xyo-network/payload": "^2.22.
|
|
13
|
+
"@xyo-network/account": "^2.22.12",
|
|
14
|
+
"@xyo-network/boundwitness": "^2.22.12",
|
|
15
|
+
"@xyo-network/core": "^2.22.12",
|
|
16
|
+
"@xyo-network/payload": "^2.22.12",
|
|
17
17
|
"axios": "^0.27.2",
|
|
18
18
|
"lru-cache": "^7.13.1",
|
|
19
19
|
"pako": "^2.0.4"
|
|
@@ -56,6 +56,6 @@
|
|
|
56
56
|
},
|
|
57
57
|
"sideEffects": true,
|
|
58
58
|
"types": "dist/esm/index.d.ts",
|
|
59
|
-
"version": "2.22.
|
|
59
|
+
"version": "2.22.12",
|
|
60
60
|
"packageManager": "yarn@3.1.1"
|
|
61
61
|
}
|
|
@@ -3,14 +3,31 @@ import { XyoBoundWitness, XyoBoundWitnessBuilder } from '@xyo-network/boundwitne
|
|
|
3
3
|
import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
|
|
4
4
|
import LruCache from 'lru-cache'
|
|
5
5
|
|
|
6
|
+
import { PromisableArray } from './model'
|
|
6
7
|
import { XyoArchivist } from './XyoArchivist'
|
|
7
|
-
import { XyoArchivistConfigWrapper } from './XyoArchivistConfig'
|
|
8
|
+
import { XyoArchivistConfig, XyoArchivistConfigWrapper } from './XyoArchivistConfig'
|
|
8
9
|
import { XyoPayloadFindQuery } from './XyoPayloadFindFilter'
|
|
9
10
|
|
|
10
|
-
export
|
|
11
|
-
|
|
11
|
+
export interface XyoMemoryArchivistConfig<T extends XyoPayload = XyoPayload> extends XyoArchivistConfig<T> {
|
|
12
|
+
max?: number
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export class XyoMemoryArchivist<C extends XyoMemoryArchivistConfig<XyoPayload> = XyoMemoryArchivistConfig<XyoPayload>>
|
|
16
|
+
extends XyoArchivistConfigWrapper<XyoPayload, C>
|
|
17
|
+
implements XyoArchivist
|
|
18
|
+
{
|
|
19
|
+
public get max() {
|
|
20
|
+
return this.config?.max ?? 10000
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
private cache: LruCache<string, XyoPayload>
|
|
24
|
+
|
|
25
|
+
constructor(config?: C) {
|
|
26
|
+
super(config)
|
|
27
|
+
this.cache = new LruCache<string, XyoPayload>({ max: this.max })
|
|
28
|
+
}
|
|
12
29
|
|
|
13
|
-
public delete(hashes: string[]):
|
|
30
|
+
public delete(hashes: string[]): PromisableArray<boolean> {
|
|
14
31
|
return hashes.map((hash) => {
|
|
15
32
|
return this.cache.delete(hash)
|
|
16
33
|
})
|
|
@@ -28,7 +45,7 @@ export class XyoMemoryArchivist extends XyoArchivistConfigWrapper<XyoPayload> im
|
|
|
28
45
|
)
|
|
29
46
|
}
|
|
30
47
|
|
|
31
|
-
public insert(payloads: XyoPayload[]):
|
|
48
|
+
public insert(payloads: XyoPayload[]): PromisableArray<XyoPayload> {
|
|
32
49
|
return payloads.map((payload) => {
|
|
33
50
|
const wrapper = new XyoPayloadWrapper(payload)
|
|
34
51
|
const payloadWithmeta = { ...payload, _hash: wrapper.hash, _timestamp: Date.now() }
|
|
@@ -37,7 +54,7 @@ export class XyoMemoryArchivist extends XyoArchivistConfigWrapper<XyoPayload> im
|
|
|
37
54
|
})
|
|
38
55
|
}
|
|
39
56
|
|
|
40
|
-
public find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery):
|
|
57
|
+
public find<R extends XyoPayload = XyoPayload>(query: XyoPayloadFindQuery): PromisableArray<R> {
|
|
41
58
|
const result: R[] = []
|
|
42
59
|
this.cache.forEach((value) => {
|
|
43
60
|
if (value.schema === query.filter.schema) {
|
package/src/model/Archivist.ts
CHANGED
|
@@ -1,9 +1,31 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export type Promisable<T> = Promise<T> | T
|
|
2
|
+
export type PromisableArray<T> = Promisable<T[]>
|
|
3
|
+
export type OptionalPromisable<T> = Promisable<T | undefined>
|
|
4
|
+
export type OptionalPromisableArray<T> = PromisableArray<T | undefined>
|
|
5
|
+
export type NullablePromisable<T> = Promisable<T | null>
|
|
6
|
+
export type NullablePromisableArray<T> = PromisableArray<T | null>
|
|
7
|
+
|
|
8
|
+
export interface ReadArchivist<TReadResponse, TId = string> {
|
|
9
|
+
get(ids: TId[]): NullablePromisableArray<TReadResponse>
|
|
10
|
+
all?(): PromisableArray<TReadResponse>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface WriteArchivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TId = string> {
|
|
14
|
+
insert(item: TWrite[]): PromisableArray<TWriteResponse>
|
|
15
|
+
delete?(ids: TId[]): PromisableArray<boolean>
|
|
7
16
|
clear?(): void
|
|
8
|
-
commit?(): void
|
|
9
17
|
}
|
|
18
|
+
|
|
19
|
+
export interface QueryArchivist<TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown> {
|
|
20
|
+
find(query: TQuery): PromisableArray<TQueryResponse>
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface StashArchivist<TReadResponse> {
|
|
24
|
+
commit?(): PromisableArray<TReadResponse>
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface Archivist<TReadResponse, TWriteResponse = TReadResponse, TWrite = TReadResponse, TQueryResponse = TReadResponse, TQuery = unknown, TId = string>
|
|
28
|
+
extends ReadArchivist<TReadResponse, TId>,
|
|
29
|
+
QueryArchivist<TReadResponse, TQueryResponse, TQuery>,
|
|
30
|
+
WriteArchivist<TReadResponse, TWriteResponse, TWrite, TId>,
|
|
31
|
+
StashArchivist<TReadResponse> {}
|