@beecode/msh-entity 0.1.1-alpha → 0.2.0
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/entity-cache/memory.d.ts +27 -0
- package/dist/entity-cache/memory.d.ts.map +1 -0
- package/dist/entity-cache/memory.js +46 -0
- package/dist/entity-cache/promise-service.d.ts +16 -0
- package/dist/entity-cache/promise-service.d.ts.map +1 -0
- package/dist/entity-cache/promise-service.js +31 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/lib/entity-cache/memory.d.ts.map +1 -1
- package/lib/entity-cache/memory.js +75 -39
- package/lib/entity-cache/promise-service.d.ts +3 -3
- package/lib/entity-cache/promise-service.d.ts.map +1 -1
- package/lib/entity-cache/promise-service.js +90 -32
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +25 -17
- package/lib/package.json +1 -0
- package/package.json +150 -122
- package/lib/entity-cache/memory.js.map +0 -1
- package/lib/entity-cache/promise-service.js.map +0 -1
- package/lib/index.js.map +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Subject } from 'rxjs/internal/Subject';
|
|
2
|
+
export type EntityCache<ENTITY> = {
|
|
3
|
+
id: string;
|
|
4
|
+
entity: ENTITY;
|
|
5
|
+
};
|
|
6
|
+
export type EntityCacheCallBack<ENTITY> = (cbParams: EntityCache<ENTITY>) => void;
|
|
7
|
+
export type EntityCacheSubscription = {
|
|
8
|
+
unsubscribe: () => void;
|
|
9
|
+
};
|
|
10
|
+
export declare class EntityCacheMemory<ENTITY> {
|
|
11
|
+
protected _memory: {
|
|
12
|
+
[k: string]: {
|
|
13
|
+
entity?: ENTITY;
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
protected _subject: Subject<EntityCache<ENTITY>>;
|
|
18
|
+
getById(id: string): {
|
|
19
|
+
needToFetch?: boolean;
|
|
20
|
+
entity?: ENTITY;
|
|
21
|
+
};
|
|
22
|
+
set(params: EntityCache<ENTITY>, timeoutOffsetMs?: number): void;
|
|
23
|
+
subscribeById(id: string, callback: (par: EntityCache<ENTITY>) => void): EntityCacheSubscription;
|
|
24
|
+
protected _calculateTimeout(timeoutOffsetMs?: number): number | undefined;
|
|
25
|
+
protected _timeoutExpired(timeoutMs?: number): boolean;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/entity-cache/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG/C,MAAM,MAAM,WAAW,CAAC,MAAM,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE,MAAM,MAAM,mBAAmB,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;AAEjF,MAAM,MAAM,uBAAuB,GAAG;IAAE,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;AAEjE,qBAAa,iBAAiB,CAAC,MAAM;IACpC,SAAS,CAAC,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAK;IAChF,SAAS,CAAC,QAAQ,+BAAqC;IAEvD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAc/D,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAOhE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,uBAAuB;IAYhG,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IASzE,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;CAQtD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TimeUtil } from '@beecode/msh-util/time-util';
|
|
2
|
+
import { Subject } from 'rxjs/internal/Subject';
|
|
3
|
+
import { filter } from 'rxjs/operators';
|
|
4
|
+
export class EntityCacheMemory {
|
|
5
|
+
_memory = {};
|
|
6
|
+
_subject = new Subject();
|
|
7
|
+
getById(id) {
|
|
8
|
+
const memo = this._memory[id];
|
|
9
|
+
if (!memo) {
|
|
10
|
+
this._memory[id] = {};
|
|
11
|
+
return { needToFetch: true };
|
|
12
|
+
}
|
|
13
|
+
const needToFetch = this._timeoutExpired(memo.timeoutMs);
|
|
14
|
+
return { entity: memo.entity, needToFetch };
|
|
15
|
+
}
|
|
16
|
+
set(params, timeoutOffsetMs) {
|
|
17
|
+
const { id, entity } = params;
|
|
18
|
+
const timeoutMs = this._calculateTimeout(timeoutOffsetMs);
|
|
19
|
+
this._memory[id] = { entity, timeoutMs };
|
|
20
|
+
this._subject.next({ entity, id });
|
|
21
|
+
}
|
|
22
|
+
subscribeById(id, callback) {
|
|
23
|
+
return this._subject
|
|
24
|
+
.pipe(filter((o) => {
|
|
25
|
+
return o.id === id;
|
|
26
|
+
}))
|
|
27
|
+
.subscribe((p) => {
|
|
28
|
+
callback(p);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
_calculateTimeout(timeoutOffsetMs) {
|
|
32
|
+
if (timeoutOffsetMs === undefined) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
const timeUtil = new TimeUtil();
|
|
36
|
+
return timeUtil.dateToUnix(timeUtil.now()) + timeoutOffsetMs;
|
|
37
|
+
}
|
|
38
|
+
_timeoutExpired(timeoutMs) {
|
|
39
|
+
if (timeoutMs === undefined) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const timeUtil = new TimeUtil();
|
|
43
|
+
return timeUtil.dateToUnix(timeUtil.now()) > timeoutMs;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VudGl0eS1jYWNoZS9tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFRdkMsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixPQUFPLEdBQTZELEVBQUUsQ0FBQTtJQUN0RSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUE7SUFFdkQsT0FBTyxDQUFDLEVBQVU7UUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUU3QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUVyQixPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFBO1FBQzdCLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUV4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUE7SUFDNUMsQ0FBQztJQUVELEdBQUcsQ0FBQyxNQUEyQixFQUFFLGVBQXdCO1FBQ3hELE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVLEVBQUUsUUFBNEM7UUFDckUsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNsQixJQUFJLENBQ0osTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDWixPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFBO1FBQ25CLENBQUMsQ0FBQyxDQUNGO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDaEIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ1osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRVMsaUJBQWlCLENBQUMsZUFBd0I7UUFDbkQsSUFBSSxlQUFlLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsT0FBTyxTQUFTLENBQUE7UUFDakIsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUE7UUFFL0IsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQTtJQUM3RCxDQUFDO0lBRVMsZUFBZSxDQUFDLFNBQWtCO1FBQzNDLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sS0FBSyxDQUFBO1FBQ2IsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUE7UUFFL0IsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQTtJQUN2RCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaW1lVXRpbCB9IGZyb20gJ0BiZWVjb2RlL21zaC11dGlsL3RpbWUtdXRpbCdcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzL2ludGVybmFsL1N1YmplY3QnXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuZXhwb3J0IHR5cGUgRW50aXR5Q2FjaGU8RU5USVRZPiA9IHsgaWQ6IHN0cmluZzsgZW50aXR5OiBFTlRJVFkgfVxuXG5leHBvcnQgdHlwZSBFbnRpdHlDYWNoZUNhbGxCYWNrPEVOVElUWT4gPSAoY2JQYXJhbXM6IEVudGl0eUNhY2hlPEVOVElUWT4pID0+IHZvaWRcblxuZXhwb3J0IHR5cGUgRW50aXR5Q2FjaGVTdWJzY3JpcHRpb24gPSB7IHVuc3Vic2NyaWJlOiAoKSA9PiB2b2lkIH1cblxuZXhwb3J0IGNsYXNzIEVudGl0eUNhY2hlTWVtb3J5PEVOVElUWT4ge1xuXHRwcm90ZWN0ZWQgX21lbW9yeTogeyBbazogc3RyaW5nXTogeyBlbnRpdHk/OiBFTlRJVFk7IHRpbWVvdXRNcz86IG51bWJlciB9IH0gPSB7fVxuXHRwcm90ZWN0ZWQgX3N1YmplY3QgPSBuZXcgU3ViamVjdDxFbnRpdHlDYWNoZTxFTlRJVFk+PigpXG5cblx0Z2V0QnlJZChpZDogc3RyaW5nKTogeyBuZWVkVG9GZXRjaD86IGJvb2xlYW47IGVudGl0eT86IEVOVElUWSB9IHtcblx0XHRjb25zdCBtZW1vID0gdGhpcy5fbWVtb3J5W2lkXVxuXG5cdFx0aWYgKCFtZW1vKSB7XG5cdFx0XHR0aGlzLl9tZW1vcnlbaWRdID0ge31cblxuXHRcdFx0cmV0dXJuIHsgbmVlZFRvRmV0Y2g6IHRydWUgfVxuXHRcdH1cblxuXHRcdGNvbnN0IG5lZWRUb0ZldGNoID0gdGhpcy5fdGltZW91dEV4cGlyZWQobWVtby50aW1lb3V0TXMpXG5cblx0XHRyZXR1cm4geyBlbnRpdHk6IG1lbW8uZW50aXR5LCBuZWVkVG9GZXRjaCB9XG5cdH1cblxuXHRzZXQocGFyYW1zOiBFbnRpdHlDYWNoZTxFTlRJVFk+LCB0aW1lb3V0T2Zmc2V0TXM/OiBudW1iZXIpOiB2b2lkIHtcblx0XHRjb25zdCB7IGlkLCBlbnRpdHkgfSA9IHBhcmFtc1xuXHRcdGNvbnN0IHRpbWVvdXRNcyA9IHRoaXMuX2NhbGN1bGF0ZVRpbWVvdXQodGltZW91dE9mZnNldE1zKVxuXHRcdHRoaXMuX21lbW9yeVtpZF0gPSB7IGVudGl0eSwgdGltZW91dE1zIH1cblx0XHR0aGlzLl9zdWJqZWN0Lm5leHQoeyBlbnRpdHksIGlkIH0pXG5cdH1cblxuXHRzdWJzY3JpYmVCeUlkKGlkOiBzdHJpbmcsIGNhbGxiYWNrOiAocGFyOiBFbnRpdHlDYWNoZTxFTlRJVFk+KSA9PiB2b2lkKTogRW50aXR5Q2FjaGVTdWJzY3JpcHRpb24ge1xuXHRcdHJldHVybiB0aGlzLl9zdWJqZWN0XG5cdFx0XHQucGlwZShcblx0XHRcdFx0ZmlsdGVyKChvKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIG8uaWQgPT09IGlkXG5cdFx0XHRcdH0pXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKChwKSA9PiB7XG5cdFx0XHRcdGNhbGxiYWNrKHApXG5cdFx0XHR9KVxuXHR9XG5cblx0cHJvdGVjdGVkIF9jYWxjdWxhdGVUaW1lb3V0KHRpbWVvdXRPZmZzZXRNcz86IG51bWJlcik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRpbWVvdXRPZmZzZXRNcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkXG5cdFx0fVxuXHRcdGNvbnN0IHRpbWVVdGlsID0gbmV3IFRpbWVVdGlsKClcblxuXHRcdHJldHVybiB0aW1lVXRpbC5kYXRlVG9Vbml4KHRpbWVVdGlsLm5vdygpKSArIHRpbWVvdXRPZmZzZXRNc1xuXHR9XG5cblx0cHJvdGVjdGVkIF90aW1lb3V0RXhwaXJlZCh0aW1lb3V0TXM/OiBudW1iZXIpOiBib29sZWFuIHtcblx0XHRpZiAodGltZW91dE1zID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiBmYWxzZVxuXHRcdH1cblx0XHRjb25zdCB0aW1lVXRpbCA9IG5ldyBUaW1lVXRpbCgpXG5cblx0XHRyZXR1cm4gdGltZVV0aWwuZGF0ZVRvVW5peCh0aW1lVXRpbC5ub3coKSkgPiB0aW1lb3V0TXNcblx0fVxufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EntityCacheCallBack, EntityCacheMemory, EntityCacheSubscription } from '#src/entity-cache/memory';
|
|
2
|
+
export declare abstract class EntityCachePromiseService<ENTITY, ID extends string | number = string> {
|
|
3
|
+
protected readonly _dao: EntityCacheMemory<ENTITY>;
|
|
4
|
+
protected abstract readonly _timeoutOffsetMs?: number;
|
|
5
|
+
protected abstract _entityAsync(id: ID): Promise<ENTITY>;
|
|
6
|
+
protected constructor(dao?: EntityCacheMemory<ENTITY>);
|
|
7
|
+
/**
|
|
8
|
+
* Subscribe to entity cache change and retrieve cached value if not undefined
|
|
9
|
+
* @param {ID} id - entity unique identifier
|
|
10
|
+
* @param {EntityCacheCallBack<ENTITY>} callback -
|
|
11
|
+
* @returns {EntityCacheSubscription}
|
|
12
|
+
*/
|
|
13
|
+
subscribeToEntityChangeById(id: ID, callback: EntityCacheCallBack<ENTITY>): Promise<EntityCacheSubscription>;
|
|
14
|
+
forceRefresh(id: ID): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=promise-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise-service.d.ts","sourceRoot":"","sources":["../../src/entity-cache/promise-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAE1G,8BAAsB,yBAAyB,CAAC,MAAM,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAC1F,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAElD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACrD,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAExD,SAAS,aAAa,GAAG,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC;IAIrD;;;;;OAKG;IACG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAc5G,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAKzC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EntityCacheMemory } from '#src/entity-cache/memory';
|
|
2
|
+
export class EntityCachePromiseService {
|
|
3
|
+
_dao;
|
|
4
|
+
constructor(dao) {
|
|
5
|
+
this._dao = dao ?? new EntityCacheMemory();
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Subscribe to entity cache change and retrieve cached value if not undefined
|
|
9
|
+
* @param {ID} id - entity unique identifier
|
|
10
|
+
* @param {EntityCacheCallBack<ENTITY>} callback -
|
|
11
|
+
* @returns {EntityCacheSubscription}
|
|
12
|
+
*/
|
|
13
|
+
async subscribeToEntityChangeById(id, callback) {
|
|
14
|
+
const idString = id.toString();
|
|
15
|
+
const subscription = this._dao.subscribeById(idString, callback);
|
|
16
|
+
const { entity, needToFetch = false } = this._dao.getById(idString);
|
|
17
|
+
if (entity !== undefined) {
|
|
18
|
+
callback({ entity, id: idString });
|
|
19
|
+
}
|
|
20
|
+
if (needToFetch) {
|
|
21
|
+
await this.forceRefresh(id);
|
|
22
|
+
}
|
|
23
|
+
return subscription;
|
|
24
|
+
}
|
|
25
|
+
async forceRefresh(id) {
|
|
26
|
+
await this._entityAsync(id).then((entity) => {
|
|
27
|
+
return this._dao.set({ entity, id: id.toString() }, this._timeoutOffsetMs);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VudGl0eS1jYWNoZS9wcm9taXNlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixpQkFBaUIsRUFBMkIsTUFBTSwwQkFBMEIsQ0FBQTtBQUUxRyxNQUFNLE9BQWdCLHlCQUF5QjtJQUMzQixJQUFJLENBQTJCO0lBS2xELFlBQXNCLEdBQStCO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksaUJBQWlCLEVBQVUsQ0FBQTtJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBTSxFQUFFLFFBQXFDO1FBQzlFLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUM5QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDaEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkUsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFDRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM1QixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUE7SUFDcEIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBTTtRQUN4QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDM0UsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlDYWNoZUNhbGxCYWNrLCBFbnRpdHlDYWNoZU1lbW9yeSwgRW50aXR5Q2FjaGVTdWJzY3JpcHRpb24gfSBmcm9tICcjc3JjL2VudGl0eS1jYWNoZS9tZW1vcnknXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlDYWNoZVByb21pc2VTZXJ2aWNlPEVOVElUWSwgSUQgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIgPSBzdHJpbmc+IHtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9kYW86IEVudGl0eUNhY2hlTWVtb3J5PEVOVElUWT5cblxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgX3RpbWVvdXRPZmZzZXRNcz86IG51bWJlclxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgX2VudGl0eUFzeW5jKGlkOiBJRCk6IFByb21pc2U8RU5USVRZPlxuXG5cdHByb3RlY3RlZCBjb25zdHJ1Y3RvcihkYW8/OiBFbnRpdHlDYWNoZU1lbW9yeTxFTlRJVFk+KSB7XG5cdFx0dGhpcy5fZGFvID0gZGFvID8/IG5ldyBFbnRpdHlDYWNoZU1lbW9yeTxFTlRJVFk+KClcblx0fVxuXG5cdC8qKlxuXHQgKiBTdWJzY3JpYmUgdG8gZW50aXR5IGNhY2hlIGNoYW5nZSBhbmQgcmV0cmlldmUgY2FjaGVkIHZhbHVlIGlmIG5vdCB1bmRlZmluZWRcblx0ICogQHBhcmFtIHtJRH0gaWQgLSBlbnRpdHkgdW5pcXVlIGlkZW50aWZpZXJcblx0ICogQHBhcmFtIHtFbnRpdHlDYWNoZUNhbGxCYWNrPEVOVElUWT59IGNhbGxiYWNrIC1cblx0ICogQHJldHVybnMge0VudGl0eUNhY2hlU3Vic2NyaXB0aW9ufVxuXHQgKi9cblx0YXN5bmMgc3Vic2NyaWJlVG9FbnRpdHlDaGFuZ2VCeUlkKGlkOiBJRCwgY2FsbGJhY2s6IEVudGl0eUNhY2hlQ2FsbEJhY2s8RU5USVRZPik6IFByb21pc2U8RW50aXR5Q2FjaGVTdWJzY3JpcHRpb24+IHtcblx0XHRjb25zdCBpZFN0cmluZyA9IGlkLnRvU3RyaW5nKClcblx0XHRjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLl9kYW8uc3Vic2NyaWJlQnlJZChpZFN0cmluZywgY2FsbGJhY2spXG5cdFx0Y29uc3QgeyBlbnRpdHksIG5lZWRUb0ZldGNoID0gZmFsc2UgfSA9IHRoaXMuX2Rhby5nZXRCeUlkKGlkU3RyaW5nKVxuXHRcdGlmIChlbnRpdHkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y2FsbGJhY2soeyBlbnRpdHksIGlkOiBpZFN0cmluZyB9KVxuXHRcdH1cblx0XHRpZiAobmVlZFRvRmV0Y2gpIHtcblx0XHRcdGF3YWl0IHRoaXMuZm9yY2VSZWZyZXNoKGlkKVxuXHRcdH1cblxuXHRcdHJldHVybiBzdWJzY3JpcHRpb25cblx0fVxuXG5cdGFzeW5jIGZvcmNlUmVmcmVzaChpZDogSUQpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLl9lbnRpdHlBc3luYyhpZCkudGhlbigoZW50aXR5KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fZGFvLnNldCh7IGVudGl0eSwgaWQ6IGlkLnRvU3RyaW5nKCkgfSwgdGhpcy5fdGltZW91dE9mZnNldE1zKVxuXHRcdH0pXG5cdH1cbn1cbiJdfQ==
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AAEjD,cAAc,0BAA0B,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from '#src/entity-cache/promise-service';
|
|
2
|
+
export * from '#src/entity-cache/memory';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQTtBQUVqRCxjQUFjLDBCQUEwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnI3NyYy9lbnRpdHktY2FjaGUvcHJvbWlzZS1zZXJ2aWNlJ1xuXG5leHBvcnQgKiBmcm9tICcjc3JjL2VudGl0eS1jYWNoZS9tZW1vcnknXG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/entity-cache/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG/C,MAAM,MAAM,WAAW,CAAC,MAAM,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE,MAAM,MAAM,mBAAmB,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;AAEjF,MAAM,MAAM,uBAAuB,GAAG;IAAE,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;AAEjE,qBAAa,iBAAiB,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/entity-cache/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG/C,MAAM,MAAM,WAAW,CAAC,MAAM,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE,MAAM,MAAM,mBAAmB,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;AAEjF,MAAM,MAAM,uBAAuB,GAAG;IAAE,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;AAEjE,qBAAa,iBAAiB,CAAC,MAAM;IACpC,SAAS,CAAC,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAK;IAChF,SAAS,CAAC,QAAQ,+BAAqC;IAEvD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAc/D,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAOhE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,uBAAuB;IAYhG,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IASzE,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;CAQtD"}
|
|
@@ -1,46 +1,82 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
3
6
|
exports.EntityCacheMemory = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
var _timeUtil = require("@beecode/msh-util/time-util");
|
|
8
|
+
var _Subject = require("rxjs/internal/Subject");
|
|
9
|
+
var _operators = require("rxjs/operators");
|
|
10
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
11
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
12
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
13
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
14
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
16
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17
|
+
var EntityCacheMemory = exports.EntityCacheMemory = /*#__PURE__*/function () {
|
|
18
|
+
function EntityCacheMemory() {
|
|
19
|
+
_classCallCheck(this, EntityCacheMemory);
|
|
20
|
+
_defineProperty(this, "_memory", {});
|
|
21
|
+
_defineProperty(this, "_subject", new _Subject.Subject());
|
|
22
|
+
}
|
|
23
|
+
return _createClass(EntityCacheMemory, [{
|
|
24
|
+
key: "getById",
|
|
25
|
+
value: function getById(id) {
|
|
26
|
+
var memo = this._memory[id];
|
|
27
|
+
if (!memo) {
|
|
28
|
+
this._memory[id] = {};
|
|
29
|
+
return {
|
|
30
|
+
needToFetch: true
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
var needToFetch = this._timeoutExpired(memo.timeoutMs);
|
|
34
|
+
return {
|
|
35
|
+
entity: memo.entity,
|
|
36
|
+
needToFetch: needToFetch
|
|
37
|
+
};
|
|
11
38
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
39
|
+
}, {
|
|
40
|
+
key: "set",
|
|
41
|
+
value: function set(params, timeoutOffsetMs) {
|
|
42
|
+
var id = params.id,
|
|
43
|
+
entity = params.entity;
|
|
44
|
+
var timeoutMs = this._calculateTimeout(timeoutOffsetMs);
|
|
45
|
+
this._memory[id] = {
|
|
46
|
+
entity: entity,
|
|
47
|
+
timeoutMs: timeoutMs
|
|
48
|
+
};
|
|
49
|
+
this._subject.next({
|
|
50
|
+
entity: entity,
|
|
51
|
+
id: id
|
|
52
|
+
});
|
|
20
53
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
54
|
+
}, {
|
|
55
|
+
key: "subscribeById",
|
|
56
|
+
value: function subscribeById(id, callback) {
|
|
57
|
+
return this._subject.pipe((0, _operators.filter)(function (o) {
|
|
58
|
+
return o.id === id;
|
|
59
|
+
})).subscribe(function (p) {
|
|
60
|
+
callback(p);
|
|
61
|
+
});
|
|
26
62
|
}
|
|
27
|
-
|
|
28
|
-
|
|
63
|
+
}, {
|
|
64
|
+
key: "_calculateTimeout",
|
|
65
|
+
value: function _calculateTimeout(timeoutOffsetMs) {
|
|
66
|
+
if (timeoutOffsetMs === undefined) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
var timeUtil = new _timeUtil.TimeUtil();
|
|
70
|
+
return timeUtil.dateToUnix(timeUtil.now()) + timeoutOffsetMs;
|
|
29
71
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
72
|
+
}, {
|
|
73
|
+
key: "_timeoutExpired",
|
|
74
|
+
value: function _timeoutExpired(timeoutMs) {
|
|
75
|
+
if (timeoutMs === undefined) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
var timeUtil = new _timeUtil.TimeUtil();
|
|
79
|
+
return timeUtil.dateToUnix(timeUtil.now()) > timeoutMs;
|
|
36
80
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
const timeUtil = new time_util_1.TimeUtil();
|
|
42
|
-
return timeUtil.dateToUnix(timeUtil.now()) > timeoutMs;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.EntityCacheMemory = EntityCacheMemory;
|
|
46
|
-
//# sourceMappingURL=memory.js.map
|
|
81
|
+
}]);
|
|
82
|
+
}();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityCacheCallBack, EntityCacheMemory, EntityCacheSubscription } from '../entity-cache/memory';
|
|
1
|
+
import { EntityCacheCallBack, EntityCacheMemory, EntityCacheSubscription } from '../entity-cache/memory.js';
|
|
2
2
|
export declare abstract class EntityCachePromiseService<ENTITY, ID extends string | number = string> {
|
|
3
3
|
protected readonly _dao: EntityCacheMemory<ENTITY>;
|
|
4
4
|
protected abstract readonly _timeoutOffsetMs?: number;
|
|
@@ -10,7 +10,7 @@ export declare abstract class EntityCachePromiseService<ENTITY, ID extends strin
|
|
|
10
10
|
* @param {EntityCacheCallBack<ENTITY>} callback -
|
|
11
11
|
* @returns {EntityCacheSubscription}
|
|
12
12
|
*/
|
|
13
|
-
subscribeToEntityChangeById(id: ID, callback: EntityCacheCallBack<ENTITY>): EntityCacheSubscription
|
|
14
|
-
forceRefresh(id: ID): void
|
|
13
|
+
subscribeToEntityChangeById(id: ID, callback: EntityCacheCallBack<ENTITY>): Promise<EntityCacheSubscription>;
|
|
14
|
+
forceRefresh(id: ID): Promise<void>;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=promise-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-service.d.ts","sourceRoot":"","sources":["../../src/entity-cache/promise-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"promise-service.d.ts","sourceRoot":"","sources":["../../src/entity-cache/promise-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAE1G,8BAAsB,yBAAyB,CAAC,MAAM,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAC1F,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAElD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACrD,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAExD,SAAS,aAAa,GAAG,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC;IAIrD;;;;;OAKG;IACG,2BAA2B,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAc5G,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAKzC"}
|
|
@@ -1,34 +1,92 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
3
6
|
exports.EntityCachePromiseService = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
7
|
+
var _memory = require("../entity-cache/memory.js");
|
|
8
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
9
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
10
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
11
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
12
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
13
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
14
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
16
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17
|
+
var EntityCachePromiseService = exports.EntityCachePromiseService = /*#__PURE__*/function () {
|
|
18
|
+
function EntityCachePromiseService(dao) {
|
|
19
|
+
_classCallCheck(this, EntityCachePromiseService);
|
|
20
|
+
this._dao = dao !== null && dao !== void 0 ? dao : new _memory.EntityCacheMemory();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Subscribe to entity cache change and retrieve cached value if not undefined
|
|
25
|
+
* @param {ID} id - entity unique identifier
|
|
26
|
+
* @param {EntityCacheCallBack<ENTITY>} callback -
|
|
27
|
+
* @returns {EntityCacheSubscription}
|
|
28
|
+
*/
|
|
29
|
+
return _createClass(EntityCachePromiseService, [{
|
|
30
|
+
key: "subscribeToEntityChangeById",
|
|
31
|
+
value: (function () {
|
|
32
|
+
var _subscribeToEntityChangeById = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(id, callback) {
|
|
33
|
+
var idString, subscription, _this$_dao$getById, entity, _this$_dao$getById$ne, needToFetch;
|
|
34
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
35
|
+
while (1) switch (_context.prev = _context.next) {
|
|
36
|
+
case 0:
|
|
37
|
+
idString = id.toString();
|
|
38
|
+
subscription = this._dao.subscribeById(idString, callback);
|
|
39
|
+
_this$_dao$getById = this._dao.getById(idString), entity = _this$_dao$getById.entity, _this$_dao$getById$ne = _this$_dao$getById.needToFetch, needToFetch = _this$_dao$getById$ne === void 0 ? false : _this$_dao$getById$ne;
|
|
40
|
+
if (entity !== undefined) {
|
|
41
|
+
callback({
|
|
42
|
+
entity: entity,
|
|
43
|
+
id: idString
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (!needToFetch) {
|
|
47
|
+
_context.next = 7;
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
_context.next = 7;
|
|
51
|
+
return this.forceRefresh(id);
|
|
52
|
+
case 7:
|
|
53
|
+
return _context.abrupt("return", subscription);
|
|
54
|
+
case 8:
|
|
55
|
+
case "end":
|
|
56
|
+
return _context.stop();
|
|
57
|
+
}
|
|
58
|
+
}, _callee, this);
|
|
59
|
+
}));
|
|
60
|
+
function subscribeToEntityChangeById(_x, _x2) {
|
|
61
|
+
return _subscribeToEntityChangeById.apply(this, arguments);
|
|
62
|
+
}
|
|
63
|
+
return subscribeToEntityChangeById;
|
|
64
|
+
}())
|
|
65
|
+
}, {
|
|
66
|
+
key: "forceRefresh",
|
|
67
|
+
value: function () {
|
|
68
|
+
var _forceRefresh = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(id) {
|
|
69
|
+
var _this = this;
|
|
70
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
71
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
72
|
+
case 0:
|
|
73
|
+
_context2.next = 2;
|
|
74
|
+
return this._entityAsync(id).then(function (entity) {
|
|
75
|
+
return _this._dao.set({
|
|
76
|
+
entity: entity,
|
|
77
|
+
id: id.toString()
|
|
78
|
+
}, _this._timeoutOffsetMs);
|
|
79
|
+
});
|
|
80
|
+
case 2:
|
|
81
|
+
case "end":
|
|
82
|
+
return _context2.stop();
|
|
83
|
+
}
|
|
84
|
+
}, _callee2, this);
|
|
85
|
+
}));
|
|
86
|
+
function forceRefresh(_x3) {
|
|
87
|
+
return _forceRefresh.apply(this, arguments);
|
|
88
|
+
}
|
|
89
|
+
return forceRefresh;
|
|
90
|
+
}()
|
|
91
|
+
}]);
|
|
92
|
+
}();
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './entity-cache/promise-service';
|
|
2
|
-
export * from './entity-cache/memory';
|
|
1
|
+
export * from './entity-cache/promise-service.js';
|
|
2
|
+
export * from './entity-cache/memory.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AAEjD,cAAc,0BAA0B,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _promiseService = require("./entity-cache/promise-service.js");
|
|
7
|
+
Object.keys(_promiseService).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _promiseService[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _promiseService[key];
|
|
7
14
|
}
|
|
8
|
-
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _memory = require("./entity-cache/memory.js");
|
|
18
|
+
Object.keys(_memory).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _memory[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function get() {
|
|
24
|
+
return _memory[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
package/lib/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|
package/package.json
CHANGED
|
@@ -1,124 +1,152 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
2
|
+
"name": "@beecode/msh-entity",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"keywords": [],
|
|
6
|
+
"homepage": "https://github.com/beecode-rs/msh-entity#readme",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/beecode-rs/msh-entity/issues"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/beecode-rs/msh-entity.git"
|
|
13
|
+
},
|
|
14
|
+
"license": "mit",
|
|
15
|
+
"author": "Milos Bugarinovic <milos.bugarinovic@gmail.com> (https://milos.bugarinovic.com)",
|
|
16
|
+
"type": "module",
|
|
17
|
+
"imports": {
|
|
18
|
+
"#packageJson": "./package.json",
|
|
19
|
+
"#src": "./dist/index.js",
|
|
20
|
+
"#src/*": "./dist/*.js"
|
|
21
|
+
},
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"import": "./dist/index.js",
|
|
25
|
+
"require": "./lib/index.js",
|
|
26
|
+
"types": "./dist/index.d.ts"
|
|
27
|
+
},
|
|
28
|
+
"./*": {
|
|
29
|
+
"import": "./dist/*.js",
|
|
30
|
+
"types": "./dist/*.d.ts"
|
|
31
|
+
},
|
|
32
|
+
"./lib/*": {
|
|
33
|
+
"require": "./lib/*.js",
|
|
34
|
+
"types": "./lib/*.d.ts"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"main": "./lib/index.js",
|
|
38
|
+
"module": "./dist/index.js",
|
|
39
|
+
"types": "./dist/index.d.ts",
|
|
40
|
+
"files": [
|
|
41
|
+
"./dist",
|
|
42
|
+
"./lib"
|
|
43
|
+
],
|
|
44
|
+
"scripts": {
|
|
45
|
+
"babel": "npx babel --extensions .ts",
|
|
46
|
+
"build": "npm run clean && npm run tsc",
|
|
47
|
+
"build-cjs": "npm run clean-cjs && npm run tsc-cjs && npm run tsc-types && npm run tsc-types-alias && npm run fix-hybrid-lib-cjs",
|
|
48
|
+
"clean": "rimraf ./dist",
|
|
49
|
+
"clean-cjs": "rimraf ./lib",
|
|
50
|
+
"doc": "concurrently -c auto 'npm:doc:*'",
|
|
51
|
+
"doc:api": "npx typedoc --tsconfig tsconfig.build.json",
|
|
52
|
+
"doc:toc": "npx markdown-toc -i ./README.md",
|
|
53
|
+
"docker-build": "docker build -f ./resource/docker/Dockerfile -t bc-msh-entity ./",
|
|
54
|
+
"docker-rmi": "docker rmi bc-msh-entity",
|
|
55
|
+
"docker-run-package-lock-update": "docker run --rm -v ./:/usr/app/ milosbugarinovic/msh-lib-base:node20.12.2-alpine3.19 npm i --package-lock-only",
|
|
56
|
+
"docker-run-sh": "docker run --rm -it bc-msh-entity sh",
|
|
57
|
+
"fix-hybrid-lib-cjs": "mkdir -p ./lib && echo '{\"type\": \"commonjs\"}' > ./lib/package.json",
|
|
58
|
+
"init": "concurrently -c auto 'npm:init:*'",
|
|
59
|
+
"init:git-config": "git config include.path ./.git-config",
|
|
60
|
+
"init:husky": "npx husky install",
|
|
61
|
+
"lint": "npm run lint-prettier && npm run lint-eslint && npm run lint-json",
|
|
62
|
+
"lint-eslint": "eslint ./ --quiet",
|
|
63
|
+
"lint-eslint-fix": "npm run lint-eslint -- --fix",
|
|
64
|
+
"lint-fix": "npm run lint-prettier-fix && npm run lint-eslint-fix && npm run lint-json-fix",
|
|
65
|
+
"lint-json": "npm run lint-json-fix -- -c",
|
|
66
|
+
"lint-json-fix": "jsonsort * .*.json '!./dist' '!./lib' '!./test/node_modules' '!./resource' '!**/.env*' '!**/.gitignore' -t",
|
|
67
|
+
"lint-prettier": "prettier --check {**/*,*}.{js,jsx,ts,tsx}",
|
|
68
|
+
"lint-prettier-fix": "prettier --write {**/*,*}.{js,jsx,ts,tsx}",
|
|
69
|
+
"npm-bump-version": "npm --no-git-tag-version version",
|
|
70
|
+
"npm-lock-file-generate": "npm i --package-lock-only --prefix ./",
|
|
71
|
+
"npm-ncu-check": "npx ncu",
|
|
72
|
+
"npm-ncu-update": "npx ncu -u",
|
|
73
|
+
"npm-pack": "mkdir -p packages && npm pack --pack-destination=./packages",
|
|
74
|
+
"npm-semantic-release": "semantic-release",
|
|
75
|
+
"npm-semantic-release-check": "npm run npm-semantic-release -- --dry-run --no-ci",
|
|
76
|
+
"test": "concurrently -c auto 'npm:test:*'",
|
|
77
|
+
"test-coverage-unit": "npm run test:unit -- --coverage",
|
|
78
|
+
"test-coverage-unit-publish": "codecov",
|
|
79
|
+
"test:e2e": "cd test && npm run test",
|
|
80
|
+
"test:int": "vitest --config=./vitest.config.int.ts",
|
|
81
|
+
"test:unit": "vitest --config=./vitest.config.unit.ts",
|
|
82
|
+
"tsc": "tsc -p tsconfig.build.json",
|
|
83
|
+
"tsc-check": "npm run tsc -- --noEmit",
|
|
84
|
+
"tsc-cjs": "npm run babel -- --out-dir ./lib ./src",
|
|
85
|
+
"tsc-cleaner": "ts-cleaner --dist ./dist",
|
|
86
|
+
"tsc-cleaner-watch": "npm run tsc-cleaner -- --watch",
|
|
87
|
+
"tsc-time": "npm run tsc -- --diagnostics",
|
|
88
|
+
"tsc-types": "tsc -p tsconfig.build.json --emitDeclarationOnly --outDir ./lib",
|
|
89
|
+
"tsc-types-alias": "tsc-alias -p tsconfig.build.json --outDir ./lib --resolve-full-paths",
|
|
90
|
+
"tsc-watch": "npm run tsc -- -w --preserveWatchOutput",
|
|
91
|
+
"watch": "concurrently -c auto -n build,clean 'npm run tsc-watch' 'npm run tsc-cleaner-watch'"
|
|
92
|
+
},
|
|
93
|
+
"commitlint": {
|
|
94
|
+
"extends": [
|
|
95
|
+
"@commitlint/config-conventional"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"lint-staged": {
|
|
99
|
+
"**/*.json": [
|
|
100
|
+
"npm run lint-json"
|
|
101
|
+
],
|
|
102
|
+
"**/*.{ts,tsx,js,jsx}": [
|
|
103
|
+
"eslint",
|
|
104
|
+
"prettier --check"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"config": {
|
|
108
|
+
"commitizen": {
|
|
109
|
+
"path": "node_modules/cz-conventional-changelog"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"dependencies": {
|
|
113
|
+
"@beecode/msh-config": "1.1.0",
|
|
114
|
+
"@beecode/msh-util": "2.0.8",
|
|
115
|
+
"rxjs": "7.8.1"
|
|
116
|
+
},
|
|
117
|
+
"devDependencies": {
|
|
118
|
+
"@babel/cli": "7.24.5",
|
|
119
|
+
"@babel/core": "7.24.5",
|
|
120
|
+
"@babel/plugin-proposal-decorators": "7.24.1",
|
|
121
|
+
"@babel/plugin-transform-modules-commonjs": "7.24.1",
|
|
122
|
+
"@babel/preset-env": "7.24.5",
|
|
123
|
+
"@babel/preset-typescript": "7.24.1",
|
|
124
|
+
"@commitlint/cli": "19.3.0",
|
|
125
|
+
"@commitlint/config-conventional": "19.2.2",
|
|
126
|
+
"@commitlint/prompt": "19.3.0",
|
|
127
|
+
"@types/node": "20.12.10",
|
|
128
|
+
"@vitest/coverage-v8": "1.6.0",
|
|
129
|
+
"commitizen": "4.3.0",
|
|
130
|
+
"concurrently": "8.2.2",
|
|
131
|
+
"husky": "9.0.11",
|
|
132
|
+
"json-sort-cli": "4.0.3",
|
|
133
|
+
"lint-staged": "15.2.2",
|
|
134
|
+
"markdown-toc": "1.2.0",
|
|
135
|
+
"prettier": "3.2.5",
|
|
136
|
+
"rimraf": "5.0.5",
|
|
137
|
+
"source-map-support": "0.5.21",
|
|
138
|
+
"ts-cleaner": "1.0.5",
|
|
139
|
+
"ts-node": "10.9.2",
|
|
140
|
+
"tsc-alias": "1.8.8",
|
|
141
|
+
"tsc-watch": "6.2.0",
|
|
142
|
+
"typedoc": "0.25.13",
|
|
143
|
+
"typedoc-plugin-markdown": "4.0.1",
|
|
144
|
+
"typescript": "5.4.5",
|
|
145
|
+
"vite-tsconfig-paths": "4.3.2",
|
|
146
|
+
"vitest": "1.6.0"
|
|
147
|
+
},
|
|
148
|
+
"engines": {
|
|
149
|
+
"node": ">=20.8.1",
|
|
150
|
+
"npm": ">=10.1.0"
|
|
151
|
+
}
|
|
124
152
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/entity-cache/memory.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAC1D,mDAA+C;AAC/C,8CAAuC;AAQvC,MAAa,iBAAiB;IAA9B;QACY,YAAO,GAA6D,EAAE,CAAA;QACtE,aAAQ,GAAG,IAAI,iBAAO,EAAuB,CAAA;IA4CzD,CAAC;IA1CC,OAAO,CAAC,EAAU;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAE7B,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;YAErB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;SAC7B;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAExD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC7C,CAAC;IAED,GAAG,CAAC,MAA2B,EAAE,eAAwB;QACvD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,QAA4C;QACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAA,kBAAM,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC3E,CAAC;IAES,iBAAiB,CAAC,eAAwB;QAClD,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,OAAO,SAAS,CAAA;SACjB;QACD,MAAM,QAAQ,GAAG,IAAI,oBAAQ,EAAE,CAAA;QAE/B,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe,CAAA;IAC9D,CAAC;IAES,eAAe,CAAC,SAAkB;QAC1C,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,OAAO,KAAK,CAAA;SACb;QACD,MAAM,QAAQ,GAAG,IAAI,oBAAQ,EAAE,CAAA;QAE/B,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAA;IACxD,CAAC;CACF;AA9CD,8CA8CC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promise-service.js","sourceRoot":"","sources":["../../src/entity-cache/promise-service.ts"],"names":[],"mappings":";;;AAAA,oDAAyG;AAEzG,MAAsB,yBAAyB;IAM7C,YAAsB,GAA+B;QACnD,IAAI,CAAC,IAAI,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,IAAI,0BAAiB,EAAU,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACH,2BAA2B,CAAC,EAAM,EAAE,QAAqC;QACvE,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAChE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACnE,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;SACnC;QACD,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;SACtB;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,YAAY,CAAC,EAAM;QACjB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAnCD,8DAmCC"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAgD;AAEhD,0DAAuC"}
|