proxy-facades 1.2.8 → 1.3.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/Util.ts +37 -9
- package/class-trackers/Array.ts +2 -5
- package/dist/{browser → commonjs}/Util.d.ts +17 -4
- package/dist/commonjs/Util.d.ts.map +1 -0
- package/dist/{default → commonjs}/Util.js +31 -5
- package/dist/commonjs/Util.js.map +1 -0
- package/dist/{browser → commonjs}/class-trackers/Array.d.ts +2 -2
- package/dist/commonjs/class-trackers/Array.d.ts.map +1 -0
- package/dist/{default → commonjs}/class-trackers/Array.js +0 -2
- package/dist/commonjs/class-trackers/Array.js.map +1 -0
- package/dist/{browser → commonjs}/class-trackers/Map.d.ts +1 -1
- package/dist/{browser → commonjs}/class-trackers/Set.d.ts +1 -1
- package/dist/{browser → commonjs}/proxyFacade.d.ts +1 -1
- package/dist/{browser → commonjs}/proxyFacade.d.ts.map +1 -1
- package/dist/{default → commonjs}/proxyFacade.js +0 -1
- package/dist/{default → commonjs}/proxyFacade.js.map +1 -1
- package/dist/commonjs/retsync.d.ts +44 -0
- package/dist/commonjs/retsync.d.ts.map +1 -0
- package/dist/commonjs/retsync.js +139 -0
- package/dist/commonjs/retsync.js.map +1 -0
- package/dist/{default → esm}/Util.d.ts +17 -4
- package/dist/esm/Util.d.ts.map +1 -0
- package/dist/{browser → esm}/Util.js +28 -4
- package/dist/esm/Util.js.map +1 -0
- package/dist/{default → esm}/class-trackers/Array.d.ts +2 -2
- package/dist/esm/class-trackers/Array.d.ts.map +1 -0
- package/dist/{browser → esm}/class-trackers/Array.js +0 -2
- package/dist/esm/class-trackers/Array.js.map +1 -0
- package/dist/{default → esm}/class-trackers/Map.d.ts +1 -1
- package/dist/{default → esm}/class-trackers/Set.d.ts +1 -1
- package/dist/{default → esm}/proxyFacade.d.ts +1 -1
- package/dist/{default → esm}/proxyFacade.d.ts.map +1 -1
- package/dist/{browser → esm}/proxyFacade.js +0 -1
- package/dist/{browser → esm}/proxyFacade.js.map +1 -1
- package/dist/esm/retsync.d.ts +44 -0
- package/dist/esm/retsync.d.ts.map +1 -0
- package/dist/esm/retsync.js +131 -0
- package/dist/esm/retsync.js.map +1 -0
- package/package.json +10 -5
- package/proxyFacade.ts +1 -2
- package/readme.md +1 -1
- package/retsync.ts +162 -0
- package/dist/browser/Util.d.ts.map +0 -1
- package/dist/browser/Util.js.map +0 -1
- package/dist/browser/class-trackers/Array.d.ts.map +0 -1
- package/dist/browser/class-trackers/Array.js.map +0 -1
- package/dist/default/Util.d.ts.map +0 -1
- package/dist/default/Util.js.map +0 -1
- package/dist/default/class-trackers/Array.d.ts.map +0 -1
- package/dist/default/class-trackers/Array.js.map +0 -1
- package/index_esm.mjs +0 -46
- /package/dist/{browser → commonjs}/RecordedReadOnProxiedObjectExt.d.ts +0 -0
- /package/dist/{browser → commonjs}/RecordedReadOnProxiedObjectExt.d.ts.map +0 -0
- /package/dist/{default → commonjs}/RecordedReadOnProxiedObjectExt.js +0 -0
- /package/dist/{default → commonjs}/RecordedReadOnProxiedObjectExt.js.map +0 -0
- /package/dist/{browser → commonjs}/class-trackers/Iterator.d.ts +0 -0
- /package/dist/{browser → commonjs}/class-trackers/Iterator.d.ts.map +0 -0
- /package/dist/{default → commonjs}/class-trackers/Iterator.js +0 -0
- /package/dist/{default → commonjs}/class-trackers/Iterator.js.map +0 -0
- /package/dist/{browser → commonjs}/class-trackers/Map.d.ts.map +0 -0
- /package/dist/{default → commonjs}/class-trackers/Map.js +0 -0
- /package/dist/{default → commonjs}/class-trackers/Map.js.map +0 -0
- /package/dist/{browser → commonjs}/class-trackers/Set.d.ts.map +0 -0
- /package/dist/{default → commonjs}/class-trackers/Set.js +0 -0
- /package/dist/{default → commonjs}/class-trackers/Set.js.map +0 -0
- /package/dist/{browser → commonjs}/class-trackers/index.d.ts +0 -0
- /package/dist/{browser → commonjs}/class-trackers/index.d.ts.map +0 -0
- /package/dist/{default → commonjs}/class-trackers/index.js +0 -0
- /package/dist/{default → commonjs}/class-trackers/index.js.map +0 -0
- /package/dist/{browser → commonjs}/common.d.ts +0 -0
- /package/dist/{browser → commonjs}/common.d.ts.map +0 -0
- /package/dist/{default → commonjs}/common.js +0 -0
- /package/dist/{default → commonjs}/common.js.map +0 -0
- /package/dist/{browser → commonjs}/dev_generateEsRuntimeBehaviourCheckerCode.d.ts +0 -0
- /package/dist/{browser → commonjs}/dev_generateEsRuntimeBehaviourCheckerCode.d.ts.map +0 -0
- /package/dist/{browser → commonjs}/dev_generateEsRuntimeBehaviourCheckerCode.js +0 -0
- /package/dist/{browser → commonjs}/dev_generateEsRuntimeBehaviourCheckerCode.js.map +0 -0
- /package/dist/{browser → commonjs}/index.d.ts +0 -0
- /package/dist/{browser → commonjs}/index.d.ts.map +0 -0
- /package/dist/{default → commonjs}/index.js +0 -0
- /package/dist/{default → commonjs}/index.js.map +0 -0
- /package/dist/{browser → commonjs}/objectChangeTracking.d.ts +0 -0
- /package/dist/{browser → commonjs}/objectChangeTracking.d.ts.map +0 -0
- /package/dist/{default → commonjs}/objectChangeTracking.js +0 -0
- /package/dist/{default → commonjs}/objectChangeTracking.js.map +0 -0
- /package/dist/{browser → commonjs}/origChangeTracking.d.ts +0 -0
- /package/dist/{browser → commonjs}/origChangeTracking.d.ts.map +0 -0
- /package/dist/{default → commonjs}/origChangeTracking.js +0 -0
- /package/dist/{default → commonjs}/origChangeTracking.js.map +0 -0
- /package/dist/{browser → commonjs}/watchedProxyFacade.d.ts +0 -0
- /package/dist/{browser → commonjs}/watchedProxyFacade.d.ts.map +0 -0
- /package/dist/{default → commonjs}/watchedProxyFacade.js +0 -0
- /package/dist/{default → commonjs}/watchedProxyFacade.js.map +0 -0
- /package/dist/{default → esm}/RecordedReadOnProxiedObjectExt.d.ts +0 -0
- /package/dist/{default → esm}/RecordedReadOnProxiedObjectExt.d.ts.map +0 -0
- /package/dist/{browser → esm}/RecordedReadOnProxiedObjectExt.js +0 -0
- /package/dist/{browser → esm}/RecordedReadOnProxiedObjectExt.js.map +0 -0
- /package/dist/{default → esm}/class-trackers/Iterator.d.ts +0 -0
- /package/dist/{default → esm}/class-trackers/Iterator.d.ts.map +0 -0
- /package/dist/{browser → esm}/class-trackers/Iterator.js +0 -0
- /package/dist/{browser → esm}/class-trackers/Iterator.js.map +0 -0
- /package/dist/{default → esm}/class-trackers/Map.d.ts.map +0 -0
- /package/dist/{browser → esm}/class-trackers/Map.js +0 -0
- /package/dist/{browser → esm}/class-trackers/Map.js.map +0 -0
- /package/dist/{default → esm}/class-trackers/Set.d.ts.map +0 -0
- /package/dist/{browser → esm}/class-trackers/Set.js +0 -0
- /package/dist/{browser → esm}/class-trackers/Set.js.map +0 -0
- /package/dist/{default → esm}/class-trackers/index.d.ts +0 -0
- /package/dist/{default → esm}/class-trackers/index.d.ts.map +0 -0
- /package/dist/{browser → esm}/class-trackers/index.js +0 -0
- /package/dist/{browser → esm}/class-trackers/index.js.map +0 -0
- /package/dist/{default → esm}/common.d.ts +0 -0
- /package/dist/{default → esm}/common.d.ts.map +0 -0
- /package/dist/{browser → esm}/common.js +0 -0
- /package/dist/{browser → esm}/common.js.map +0 -0
- /package/dist/{default → esm}/dev_generateEsRuntimeBehaviourCheckerCode.d.ts +0 -0
- /package/dist/{default → esm}/dev_generateEsRuntimeBehaviourCheckerCode.d.ts.map +0 -0
- /package/dist/{default → esm}/dev_generateEsRuntimeBehaviourCheckerCode.js +0 -0
- /package/dist/{default → esm}/dev_generateEsRuntimeBehaviourCheckerCode.js.map +0 -0
- /package/dist/{default → esm}/index.d.ts +0 -0
- /package/dist/{default → esm}/index.d.ts.map +0 -0
- /package/dist/{browser → esm}/index.js +0 -0
- /package/dist/{browser → esm}/index.js.map +0 -0
- /package/dist/{default → esm}/objectChangeTracking.d.ts +0 -0
- /package/dist/{default → esm}/objectChangeTracking.d.ts.map +0 -0
- /package/dist/{browser → esm}/objectChangeTracking.js +0 -0
- /package/dist/{browser → esm}/objectChangeTracking.js.map +0 -0
- /package/dist/{default → esm}/origChangeTracking.d.ts +0 -0
- /package/dist/{default → esm}/origChangeTracking.d.ts.map +0 -0
- /package/dist/{browser → esm}/origChangeTracking.js +0 -0
- /package/dist/{browser → esm}/origChangeTracking.js.map +0 -0
- /package/dist/{default → esm}/watchedProxyFacade.d.ts +0 -0
- /package/dist/{default → esm}/watchedProxyFacade.d.ts.map +0 -0
- /package/dist/{browser → esm}/watchedProxyFacade.js +0 -0
- /package/dist/{browser → esm}/watchedProxyFacade.js.map +0 -0
|
@@ -81,7 +81,20 @@ export class DefaultMap extends Map {
|
|
|
81
81
|
get(key) {
|
|
82
82
|
let result = super.get(key);
|
|
83
83
|
if (result === undefined) {
|
|
84
|
-
result = this.createDefaultValue();
|
|
84
|
+
result = this.createDefaultValue(key);
|
|
85
|
+
this.set(key, result);
|
|
86
|
+
}
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* This Map does not return empty values, so there's always a default value created
|
|
92
|
+
*/
|
|
93
|
+
export class DefaultWeakMap extends WeakMap {
|
|
94
|
+
get(key) {
|
|
95
|
+
let result = super.get(key);
|
|
96
|
+
if (result === undefined) {
|
|
97
|
+
result = this.createDefaultValue(key);
|
|
85
98
|
this.set(key, result);
|
|
86
99
|
}
|
|
87
100
|
return result;
|
|
@@ -94,8 +107,20 @@ export class DefaultMap extends Map {
|
|
|
94
107
|
*/
|
|
95
108
|
export function newDefaultMap(createDefaultValueFn) {
|
|
96
109
|
return new class extends DefaultMap {
|
|
97
|
-
createDefaultValue() {
|
|
98
|
-
return createDefaultValueFn();
|
|
110
|
+
createDefaultValue(key) {
|
|
111
|
+
return createDefaultValueFn(key);
|
|
112
|
+
}
|
|
113
|
+
}();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
*
|
|
117
|
+
* @param createDefaultValueFn
|
|
118
|
+
* @returns a WeakMap that creates and inserts a default value when that value does not exist. So the #get method always returns something.
|
|
119
|
+
*/
|
|
120
|
+
export function newDefaultWeakMap(createDefaultValueFn) {
|
|
121
|
+
return new class extends DefaultMap {
|
|
122
|
+
createDefaultValue(key) {
|
|
123
|
+
return createDefaultValueFn(key);
|
|
99
124
|
}
|
|
100
125
|
}();
|
|
101
126
|
}
|
|
@@ -105,7 +130,6 @@ export function newDefaultMap(createDefaultValueFn) {
|
|
|
105
130
|
export class WeakMapSet extends MapSet {
|
|
106
131
|
constructor() {
|
|
107
132
|
super(...arguments);
|
|
108
|
-
//@ts-ignore
|
|
109
133
|
this.map = new WeakMap();
|
|
110
134
|
}
|
|
111
135
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Util.js","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,8 @@ export declare class ArrayChangeTracker<T> extends Array<T> implements DualUseTr
|
|
|
28
28
|
*/
|
|
29
29
|
get ["constructor"](): ArrayConstructor;
|
|
30
30
|
shift(...args: any[]): T | undefined;
|
|
31
|
-
sort(...args: any[]):
|
|
32
|
-
fill(...args: any[]):
|
|
31
|
+
sort(...args: any[]): this;
|
|
32
|
+
fill(...args: any[]): this;
|
|
33
33
|
}
|
|
34
34
|
export declare class RecordedArrayValuesRead extends RecordedReadOnProxiedObjectExt {
|
|
35
35
|
values: unknown[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../../class-trackers/Array.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,MAAM,EACN,YAAY,EAEf,MAAM,WAAW,CAAC;AAOnB,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,8BAA8B,EAAC,MAAM,mCAAmC,CAAC;AACjF,OAAO,EACH,cAAc,EACd,sBAAsB,EACtB,2BAA2B,EAG9B,MAAM,gBAAgB,CAAC;AAGxB;;;;GAIG;AACH,cAAM,gBAAgB;CAErB;AAED,eAAO,MAAM,mBAAmB,sCAA6C,CAAC;AAC9E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,oBAMtD;AAED;;;GAGG;AACH,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAKnF,IAAI,oBAAoB,IAAI,2BAA2B,GAAG,SAAS,CAElE;IAED,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAMxD,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIlB;;OAEG;IACH,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAEtB;IAED;;OAEG;IACH,IAAI,CAAC,aAAa,CAAC,qBAElB;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;IAIpC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI1B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAI7B;AAED,qBAAa,uBAAwB,SAAQ,8BAA8B;IACvE,MAAM,EAAE,OAAO,EAAE,CAAC;IAEV,OAAO,EAAE,OAAO,EAAE,CAAC;gBAGf,MAAM,EAAE,OAAO,EAAE;IAK7B,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IAQ/C,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAQpC,IAAI,SAAS,IAAI,OAAO,CAEvB;CAGJ;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAE,YAAW,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzF,IAAI,oBAAoB,IAAI,mBAAmB,CAE9C;IAED,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAEtB;IAED,SAAS,CAAC,oBAAoB;IAK9B;;OAEG;IACH,IAAI,CAAC,aAAa,CAAC,qBAElB;IAED,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;IAM1B,OAAO,IAAI,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAMrC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;IAMrC,IAAI,MAAM,IAAI,MAAM,CAInB;IAGD,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAcpB;;;OAGG;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAOtB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;CAcrC;AAED,eAAO,MAAM,MAAM;;;;IAIf;;;;OAIG;2BAC+T,GAAG,CAAC,MAAM,CAAC;IAE7U;;OAEG;qBAC0J,GAAG,CAAC,MAAM,CAAC;IAExK;;OAEG;oBACqE,GAAG,CAAC,MAAM,CAAC;IAEnF;;OAEG;;;;;;;CAIN,CAAA"}
|
|
@@ -49,11 +49,9 @@ export class ArrayChangeTracker extends Array {
|
|
|
49
49
|
shift(...args) {
|
|
50
50
|
return this._withUnspecificChange(() => super.shift());
|
|
51
51
|
}
|
|
52
|
-
//@ts-ignore
|
|
53
52
|
sort(...args) {
|
|
54
53
|
return this._withUnspecificChange(() => super.sort());
|
|
55
54
|
}
|
|
56
|
-
//@ts-ignore
|
|
57
55
|
fill(...args) {
|
|
58
56
|
return this._withUnspecificChange(() => super.fill(...args));
|
|
59
57
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Array.js","sourceRoot":"","sources":["../../../class-trackers/Array.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ export declare class MapChangeTracker<K, V> extends Map<K, V> implements DualUse
|
|
|
32
32
|
get ["constructor"](): MapConstructor;
|
|
33
33
|
set(key: K, value: V): this;
|
|
34
34
|
delete(key: K): boolean;
|
|
35
|
-
clear():
|
|
35
|
+
clear(): any;
|
|
36
36
|
}
|
|
37
37
|
export declare class RecordedMap_get extends RecordedReadOnProxiedObjectExt {
|
|
38
38
|
key: unknown;
|
|
@@ -30,7 +30,7 @@ export declare class SetChangeTracker<T> extends Set<T> implements DualUseTracke
|
|
|
30
30
|
get ["constructor"](): SetConstructor;
|
|
31
31
|
add(value: T): this;
|
|
32
32
|
delete(value: T): boolean;
|
|
33
|
-
clear():
|
|
33
|
+
clear(): any;
|
|
34
34
|
}
|
|
35
35
|
export declare class RecordedSet_has extends RecordedReadOnProxiedObjectExt {
|
|
36
36
|
value: unknown;
|
|
@@ -78,7 +78,7 @@ export interface DualUseTracker<T> {
|
|
|
78
78
|
*/
|
|
79
79
|
get _target(): T;
|
|
80
80
|
}
|
|
81
|
-
export declare function dualUseTracker_callOrigMethodOnTarget<O extends object, M extends keyof O>(tracker: DualUseTracker<O>, methodName: M, args: unknown[]):
|
|
81
|
+
export declare function dualUseTracker_callOrigMethodOnTarget<O extends object, M extends keyof O>(tracker: DualUseTracker<O>, methodName: M, args: unknown[]): any;
|
|
82
82
|
/**
|
|
83
83
|
* Informs hooksToServe's beforeListeners + executes changeOperation + informs hooksToServe's afterListeners.
|
|
84
84
|
* All this while preventing listeners from beeing called twice (this is the main purpose of this function!). Even during the same operation (call) that spans a call stack (the stack can go through multiple proxy layers)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxyFacade.d.ts","sourceRoot":"","sources":["../../proxyFacade.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAEH,eAAe,EACf,SAAS,EAIT,MAAM,EACN,YAAY,EACZ,YAAY,EAEf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAGzD,8BAAsB,WAAW,CAAC,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,CAAE,SAAQ,YAAY;IAE3F;;OAEG;IACI,2BAA2B,UAAQ;IACnC,gBAAgB,UAAS;IAGhC,SAAS,CAAC,sBAAsB,2BAAkC;IAGlE;;OAEG;IACI,sBAAsB,CAAC,EAAE,UAAU,CAAC;IAE3C,QAAQ,SAAiB;IAEzB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO;IAErE,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAwB3B;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAYjC,aAAa,CAAC,GAAG,EAAE,MAAM,GAC4B,OAAO;CAG/D;AAED,8BAAsB,kBAAkB,CAAC,MAAM,SAAS,WAAW,CAAC,GAAG,CAAC,CAAE,YAAW,YAAY,CAAC,MAAM,CAAC;IACrG,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBAEH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAU1C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAK7D,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO;IAIlG,GAAG,CAAE,WAAW,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAC,GAAG;IA0CxD,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKvC,GAAG,CAAC,WAAW,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAG,MAAM,EAAE,KAAK,EAAC,GAAG,EAAE,QAAQ,EAAC,GAAG;IAoBlE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,iBAAiB,EAAE,GAAG;CAOjE;AAQD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,WAE5C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,QAqC3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAMzD;AAED,8BAAsB,2BAA4B,SAAQ,YAAY;IAClE,YAAY,EAAG,mBAAmB,CAAA;IAClC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB,IAAI,KAAK,WAER;CACJ;AAED,MAAM,WAAW,2BAA2B;IACxC;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAEvD,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAE7B;;OAEG;IACH,IAAI,oBAAoB,IAAI,2BAA2B,GAAG,SAAS,CAAC;IAEpE;;OAEG;IACH,IAAI,OAAO,IAAI,CAAC,CAAA;CACnB;
|
|
1
|
+
{"version":3,"file":"proxyFacade.d.ts","sourceRoot":"","sources":["../../proxyFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -200,7 +200,6 @@ export class RecordedReadOnProxiedObject extends RecordedRead {
|
|
|
200
200
|
return this.proxyHandler.proxy;
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
|
-
//@ts-ignore
|
|
204
203
|
export function dualUseTracker_callOrigMethodOnTarget(tracker, methodName, args) {
|
|
205
204
|
const target = tracker._target;
|
|
206
205
|
const method = tracker._watchedProxyHandler !== undefined ? target[methodName] : Object.getPrototypeOf(Object.getPrototypeOf(tracker))[methodName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxyFacade.js","sourceRoot":"","sources":["../../proxyFacade.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"proxyFacade.js","sourceRoot":"","sources":["../../proxyFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
type Retsync2promiseOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* Whenever retsyncFn hits a promise2retsync. it is run again and checked, if it behaves fine and repeatable and hits that same promise again (saves it properly)
|
|
4
|
+
*/
|
|
5
|
+
checkSaved?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Let's you run retsync code and wait, till it is finished.
|
|
9
|
+
* @param repeatableFn
|
|
10
|
+
* @param options
|
|
11
|
+
*/
|
|
12
|
+
export declare function retsync2promise<T>(repeatableFn: () => T, options?: Retsync2promiseOptions): Promise<T>;
|
|
13
|
+
/**
|
|
14
|
+
* Makes a promise usable in retsync code.
|
|
15
|
+
* @param savedPromise You must save/fix the promise somewhere, so you reuse it the next time you encounter it.
|
|
16
|
+
*/
|
|
17
|
+
export declare function promise2retsync<T>(savedPromise: Promise<T>): T;
|
|
18
|
+
/**
|
|
19
|
+
* Makes async code usable in retsync code.
|
|
20
|
+
* <p>
|
|
21
|
+
* Because retsync code is repeatable. This call must be associated a certain **identifiable resource**, so we know if that resource is already at loading progress.
|
|
22
|
+
* Therefore, you have the idObj and idKey parameters. Example:
|
|
23
|
+
* <code>asyncResource2retsync( async() => {...load the avatar...}, myUser, "getAvatar");</code>
|
|
24
|
+
* So the User#getAvatar is, what uniquely identifies the loaderFn here.
|
|
25
|
+
* </p>
|
|
26
|
+
* @param loaderFn
|
|
27
|
+
* @param idObj object to associate this call to. undefined means globally and the idKey primitive value is the only key.
|
|
28
|
+
* @param idKey Additional primitive key under idObj.
|
|
29
|
+
*/
|
|
30
|
+
export declare function asyncResource2retsync<T>(loaderFn: () => Promise<T>, idObj: object | undefined, idKey?: (string | number)): T;
|
|
31
|
+
export declare class RetsyncWaitsForPromiseException extends Error {
|
|
32
|
+
promise: Promise<any>;
|
|
33
|
+
/**
|
|
34
|
+
* Overrides {@link Retsync2promiseOptions#checkSaved}
|
|
35
|
+
*/
|
|
36
|
+
checkSaved?: boolean;
|
|
37
|
+
constructor(promise: Promise<any>);
|
|
38
|
+
}
|
|
39
|
+
export declare function checkThatCallerHandlesRetsync(): void;
|
|
40
|
+
export {};
|
|
41
|
+
/**
|
|
42
|
+
* Makes a an async function usable in retsync code.
|
|
43
|
+
*/
|
|
44
|
+
//# sourceMappingURL=retsync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retsync.d.ts","sourceRoot":"","sources":["../../retsync.ts"],"names":[],"mappings":"AASA,KAAK,sBAAsB,GAAG;IAC1B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAKD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,CAAC,CAAC,CA0DhH;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAM9D;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,GAAC,MAAM,CAAC,GAAG,CAAC,CAoBzH;AAID,qBAAa,+BAAgC,SAAQ,KAAK;IACtD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;gBAET,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;CAIpC;AAED,wBAAgB,6BAA6B,SAI5C;;AAID;;GAEG"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// Retsync means: retryable-synchronous.
|
|
2
|
+
// retsync code is synchronous code, which when deep inside, it needs to wait for some Promise, it makes the ancestor await it and re-run that code again.
|
|
3
|
+
// The "ancestor" is a retsync2promise call
|
|
4
|
+
// Semantics: Retsync code must be repeatable. It can change state, as long as that leads to the same result when repeated.
|
|
5
|
+
// It does not mean strictly deterministic (may be for while in the same sync block??) because resources that are fetched, can change over time. Therefore some inner user's retsync code might subscribe to change events and invalidate asyncResource2retsync's cached promises when there are such changes.
|
|
6
|
+
import { newDefaultWeakMap } from "./Util";
|
|
7
|
+
const resolvedPromiseValues = new WeakMap();
|
|
8
|
+
let callerHandlesRetsync = false;
|
|
9
|
+
/**
|
|
10
|
+
* Let's you run retsync code and wait, till it is finished.
|
|
11
|
+
* @param repeatableFn
|
|
12
|
+
* @param options
|
|
13
|
+
*/
|
|
14
|
+
export async function retsync2promise(repeatableFn, options = {}) {
|
|
15
|
+
/**
|
|
16
|
+
* ...while setting the callerHandlesRetsync indicator
|
|
17
|
+
*/
|
|
18
|
+
function runRepeatableFn() {
|
|
19
|
+
const orig_callerHandlesRetsync = callerHandlesRetsync;
|
|
20
|
+
try {
|
|
21
|
+
callerHandlesRetsync = true;
|
|
22
|
+
return repeatableFn();
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
callerHandlesRetsync = orig_callerHandlesRetsync;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
while (true) {
|
|
29
|
+
try {
|
|
30
|
+
return runRepeatableFn();
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
if (e instanceof RetsyncWaitsForPromiseException) {
|
|
34
|
+
if (e.checkSaved || (e.checkSaved === undefined && options.checkSaved !== false)) {
|
|
35
|
+
const optionHint = `Hint: See also: Retsync2promiseOptions#checkSaved`;
|
|
36
|
+
// Check if repeatableFn is behaving in repeatable symantics and saves the promise
|
|
37
|
+
try {
|
|
38
|
+
runRepeatableFn();
|
|
39
|
+
throw new Error(`repeatableFn is not repeatable. On the first run, it was waiting for a Promise by calling promise2retsync (see cause). After a second immediate test run, it returned successful without such.\n${optionHint}`, { cause: e });
|
|
40
|
+
}
|
|
41
|
+
catch (eChecked) {
|
|
42
|
+
if (!(eChecked !== null && eChecked instanceof RetsyncWaitsForPromiseException)) {
|
|
43
|
+
throw new Error(`repeatableFn is not repeatable. On the first run, it was waiting for a Promise by calling promise2retsync. After a second immediate test run, it threw.\n ${optionHint}\n First run's stack: \n${e.stack}\n 2nd run's stack: See cause`, { cause: eChecked });
|
|
44
|
+
}
|
|
45
|
+
eChecked.promise.then().catch(); // Make sure, that promise is caught once, to prevent unhandledRejections, just because of our checking functionality.
|
|
46
|
+
if (fixStack(eChecked.stack) !== fixStack(e.stack)) {
|
|
47
|
+
throw new Error(`repeatableFn is not repeatable. On the first run, it was waiting for a Promise by calling promise2retsync. After a second immediate test run, it behaved diffently.\n ${optionHint}\n First run's stack: \n${e.stack}\n 2nd run's stack: See cause`, { cause: eChecked });
|
|
48
|
+
}
|
|
49
|
+
if (eChecked.promise !== e.promise) {
|
|
50
|
+
e.message = `The savedPromise was not saved = you provided a different instance on a second run,... \n ${optionHint}`, { cause: new Error("...or repeatableFn does not behave repeatable") };
|
|
51
|
+
throw e;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
resolvedPromiseValues.set(e.promise, await e.promise);
|
|
56
|
+
// Try again. Now it will hit the resolved value
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
throw e;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* removes the retsync2promise lines. Cause we call repeatableFn from multiple lines here
|
|
65
|
+
* @param stack
|
|
66
|
+
*/
|
|
67
|
+
function fixStack(stack) {
|
|
68
|
+
return stack === null || stack === void 0 ? void 0 : stack.replaceAll(/^.*retsync2promise.*$/gm, "");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Makes a promise usable in retsync code.
|
|
73
|
+
* @param savedPromise You must save/fix the promise somewhere, so you reuse it the next time you encounter it.
|
|
74
|
+
*/
|
|
75
|
+
export function promise2retsync(savedPromise) {
|
|
76
|
+
if (resolvedPromiseValues.has(savedPromise)) {
|
|
77
|
+
return resolvedPromiseValues.get(savedPromise);
|
|
78
|
+
}
|
|
79
|
+
throw new RetsyncWaitsForPromiseException(savedPromise);
|
|
80
|
+
}
|
|
81
|
+
const globalObj = {};
|
|
82
|
+
const resourcePromises = newDefaultWeakMap((key) => new Map());
|
|
83
|
+
/**
|
|
84
|
+
* Makes async code usable in retsync code.
|
|
85
|
+
* <p>
|
|
86
|
+
* Because retsync code is repeatable. This call must be associated a certain **identifiable resource**, so we know if that resource is already at loading progress.
|
|
87
|
+
* Therefore, you have the idObj and idKey parameters. Example:
|
|
88
|
+
* <code>asyncResource2retsync( async() => {...load the avatar...}, myUser, "getAvatar");</code>
|
|
89
|
+
* So the User#getAvatar is, what uniquely identifies the loaderFn here.
|
|
90
|
+
* </p>
|
|
91
|
+
* @param loaderFn
|
|
92
|
+
* @param idObj object to associate this call to. undefined means globally and the idKey primitive value is the only key.
|
|
93
|
+
* @param idKey Additional primitive key under idObj.
|
|
94
|
+
*/
|
|
95
|
+
export function asyncResource2retsync(loaderFn, idObj, idKey) {
|
|
96
|
+
idObj = idObj || globalObj;
|
|
97
|
+
const promisesForIdObj = resourcePromises.get(idObj);
|
|
98
|
+
let promise = promisesForIdObj.get(idKey);
|
|
99
|
+
if (!promise) {
|
|
100
|
+
promise = loaderFn();
|
|
101
|
+
promisesForIdObj.set(idKey, promise);
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
return promise2retsync(promise);
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
// Flag as no-check-needed to save time (it's not necessary):
|
|
108
|
+
if (e instanceof RetsyncWaitsForPromiseException) {
|
|
109
|
+
e.checkSaved = false;
|
|
110
|
+
}
|
|
111
|
+
throw e;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export class RetsyncWaitsForPromiseException extends Error {
|
|
115
|
+
constructor(promise) {
|
|
116
|
+
super("Some retsync style code (see call stack / caller of promise2retsync) wants to await an async operation. To make this possible, you need to wrapt it at some ancestor caller level with retsync2promise. I.e. 'const result = await retsync2promise(() => {...your **retryable*** - synchronous code...}});");
|
|
117
|
+
this.promise = promise;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export function checkThatCallerHandlesRetsync() {
|
|
121
|
+
if (!callerHandlesRetsync) {
|
|
122
|
+
throw new Error("The method, you are calling uses retsync code and needs to be wrapped at some ancestor caller level with retsync2promise. I.e. 'const result = await retsync2promise(() => {...call the function that (deep inside) uses **retryable*** - synchronous code...}});");
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Makes a an async function usable in retsync code.
|
|
127
|
+
*/
|
|
128
|
+
//export function asyncFn2retsync<T>(asyncFn: () => Promise<T>): T {
|
|
129
|
+
// The call must be re-identified. It's only possible, when all reads were recorded, like with react-deepwatch. See react-deepwatch.txt
|
|
130
|
+
//}
|
|
131
|
+
//# sourceMappingURL=retsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retsync.js","sourceRoot":"","sources":["../../retsync.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "proxy-facades",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"proxy",
|
|
@@ -14,18 +14,23 @@
|
|
|
14
14
|
"url": "https://github.com/bogeeee/proxy-facades.git"
|
|
15
15
|
},
|
|
16
16
|
"license": "MIT",
|
|
17
|
-
"main": "./dist/
|
|
17
|
+
"main": "./dist/commonjs/index.js",
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
20
|
-
"
|
|
21
|
-
"
|
|
20
|
+
"import": "./dist/esm/index.js",
|
|
21
|
+
"require": "./dist/commonjs/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./retsync": {
|
|
24
|
+
"import": "./dist/esm/retsync.js",
|
|
25
|
+
"require": "./dist/commonjs/retsync.js"
|
|
22
26
|
}
|
|
23
27
|
},
|
|
24
28
|
"scripts": {
|
|
25
29
|
"dev:playground.ts": "tsx devPlayground.ts",
|
|
26
30
|
"dev:generateEsRuntimeBehaviourCheckerCode": "tsx dev_generateEsRuntimeBehaviourCheckerCode.ts",
|
|
27
31
|
"clean": "tsc --build --clean && rimraf dist",
|
|
28
|
-
"build": "tsc --build --force && tsc -module ES6 --outDir dist/
|
|
32
|
+
"build": "tsc --build --force && tsc -module ES6 --outDir dist/esm && npm run verify_d.ts",
|
|
33
|
+
"verify_d.ts": "tsc dist/**/*.d.ts -noEmit",
|
|
29
34
|
"test": "npm run clean && vitest --clearScreen --hideSkippedTests --poolOptions.threads.singleThread",
|
|
30
35
|
"test_specific": "npm run clean && vitest --clearScreen --hideSkippedTests --poolOptions.threads.singleThread --testNamePattern \"add.*should behave normally. With writes through installed write tracker\"",
|
|
31
36
|
"prepublish": "npm run clean && npm run build",
|
package/proxyFacade.ts
CHANGED
|
@@ -290,8 +290,7 @@ export interface DualUseTracker<T> {
|
|
|
290
290
|
get _target(): T
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
|
|
294
|
-
export function dualUseTracker_callOrigMethodOnTarget<O extends object, M extends keyof O>(tracker: DualUseTracker<O>, methodName: M, args: unknown[]): ReturnType<O[M]> {
|
|
293
|
+
export function dualUseTracker_callOrigMethodOnTarget<O extends object, M extends keyof O>(tracker: DualUseTracker<O>, methodName: M, args: unknown[]): any /* ReturnType<O[M]> would be better than any, but i don't get this compiled */ {
|
|
295
294
|
const target = tracker._target;
|
|
296
295
|
const method = tracker._watchedProxyHandler !== undefined ? target[methodName] : Object.getPrototypeOf(Object.getPrototypeOf(tracker))[methodName];
|
|
297
296
|
return method.apply(target, args);
|
package/readme.md
CHANGED
|
@@ -46,7 +46,7 @@ proxy.users[1].active=false; // Modify some deep value -> will log "something ha
|
|
|
46
46
|
````
|
|
47
47
|
|
|
48
48
|
### Watch for changes of precisely those values, that you've read before
|
|
49
|
-
This variant of a proxy facade is used in [react-deepwatch](). With this, you have a hook for an event when some (deep) value changes of precisely the data, that was read by you.
|
|
49
|
+
This variant of a proxy facade is used in [react-deepwatch](https://github.com/bogeeee/react-deepwatch). With this, you have a hook for an event when some (deep) value changes of precisely the data, that was read by you.
|
|
50
50
|
|
|
51
51
|
This examples records all your **reads** and watches them for changes afterwards:
|
|
52
52
|
|
package/retsync.ts
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// Retsync means: retryable-synchronous.
|
|
2
|
+
// retsync code is synchronous code, which when deep inside, it needs to wait for some Promise, it makes the ancestor await it and re-run that code again.
|
|
3
|
+
// The "ancestor" is a retsync2promise call
|
|
4
|
+
// Semantics: Retsync code must be repeatable. It can change state, as long as that leads to the same result when repeated.
|
|
5
|
+
// It does not mean strictly deterministic (may be for while in the same sync block??) because resources that are fetched, can change over time. Therefore some inner user's retsync code might subscribe to change events and invalidate asyncResource2retsync's cached promises when there are such changes.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
import {newDefaultWeakMap} from "./Util";
|
|
9
|
+
|
|
10
|
+
type Retsync2promiseOptions = {
|
|
11
|
+
/**
|
|
12
|
+
* Whenever retsyncFn hits a promise2retsync. it is run again and checked, if it behaves fine and repeatable and hits that same promise again (saves it properly)
|
|
13
|
+
*/
|
|
14
|
+
checkSaved?: boolean
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const resolvedPromiseValues = new WeakMap<Promise<any>, unknown>();
|
|
18
|
+
|
|
19
|
+
let callerHandlesRetsync = false
|
|
20
|
+
/**
|
|
21
|
+
* Let's you run retsync code and wait, till it is finished.
|
|
22
|
+
* @param repeatableFn
|
|
23
|
+
* @param options
|
|
24
|
+
*/
|
|
25
|
+
export async function retsync2promise<T>(repeatableFn: () => T, options: Retsync2promiseOptions = {}): Promise<T> {
|
|
26
|
+
/**
|
|
27
|
+
* ...while setting the callerHandlesRetsync indicator
|
|
28
|
+
*/
|
|
29
|
+
function runRepeatableFn() {
|
|
30
|
+
const orig_callerHandlesRetsync = callerHandlesRetsync;
|
|
31
|
+
try {
|
|
32
|
+
callerHandlesRetsync = true;
|
|
33
|
+
return repeatableFn();
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
callerHandlesRetsync = orig_callerHandlesRetsync;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
while(true) {
|
|
41
|
+
try {
|
|
42
|
+
return runRepeatableFn();
|
|
43
|
+
} catch (e) {
|
|
44
|
+
if (e instanceof RetsyncWaitsForPromiseException) {
|
|
45
|
+
if (e.checkSaved || (e.checkSaved === undefined && options.checkSaved !== false)) {
|
|
46
|
+
const optionHint = `Hint: See also: Retsync2promiseOptions#checkSaved`
|
|
47
|
+
// Check if repeatableFn is behaving in repeatable symantics and saves the promise
|
|
48
|
+
try {
|
|
49
|
+
runRepeatableFn();
|
|
50
|
+
throw new Error(`repeatableFn is not repeatable. On the first run, it was waiting for a Promise by calling promise2retsync (see cause). After a second immediate test run, it returned successful without such.\n${optionHint}`, {cause: e});
|
|
51
|
+
} catch (eChecked) {
|
|
52
|
+
if (!(eChecked !== null && eChecked instanceof RetsyncWaitsForPromiseException)) {
|
|
53
|
+
throw new Error(`repeatableFn is not repeatable. On the first run, it was waiting for a Promise by calling promise2retsync. After a second immediate test run, it threw.\n ${optionHint}\n First run's stack: \n${e.stack}\n 2nd run's stack: See cause`, {cause: eChecked});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
eChecked.promise.then().catch(); // Make sure, that promise is caught once, to prevent unhandledRejections, just because of our checking functionality.
|
|
57
|
+
|
|
58
|
+
if (fixStack(eChecked.stack) !== fixStack(e.stack)) {
|
|
59
|
+
throw new Error(`repeatableFn is not repeatable. On the first run, it was waiting for a Promise by calling promise2retsync. After a second immediate test run, it behaved diffently.\n ${optionHint}\n First run's stack: \n${e.stack}\n 2nd run's stack: See cause`, {cause: eChecked});
|
|
60
|
+
}
|
|
61
|
+
if (eChecked.promise !== e.promise) {
|
|
62
|
+
e.message = `The savedPromise was not saved = you provided a different instance on a second run,... \n ${optionHint}`, {cause: new Error("...or repeatableFn does not behave repeatable")};
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
resolvedPromiseValues.set(e.promise, await e.promise);
|
|
69
|
+
// Try again. Now it will hit the resolved value
|
|
70
|
+
} else {
|
|
71
|
+
throw e;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* removes the retsync2promise lines. Cause we call repeatableFn from multiple lines here
|
|
78
|
+
* @param stack
|
|
79
|
+
*/
|
|
80
|
+
function fixStack(stack?: string) {
|
|
81
|
+
return stack?.replaceAll(/^.*retsync2promise.*$/gm,"")
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Makes a promise usable in retsync code.
|
|
87
|
+
* @param savedPromise You must save/fix the promise somewhere, so you reuse it the next time you encounter it.
|
|
88
|
+
*/
|
|
89
|
+
export function promise2retsync<T>(savedPromise: Promise<T>): T {
|
|
90
|
+
if(resolvedPromiseValues.has(savedPromise)) {
|
|
91
|
+
return resolvedPromiseValues.get(savedPromise) as T;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
throw new RetsyncWaitsForPromiseException(savedPromise)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const globalObj = {};
|
|
98
|
+
const resourcePromises = newDefaultWeakMap((key) => new Map<string | number | undefined, Promise<unknown>>())
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Makes async code usable in retsync code.
|
|
102
|
+
* <p>
|
|
103
|
+
* Because retsync code is repeatable. This call must be associated a certain **identifiable resource**, so we know if that resource is already at loading progress.
|
|
104
|
+
* Therefore, you have the idObj and idKey parameters. Example:
|
|
105
|
+
* <code>asyncResource2retsync( async() => {...load the avatar...}, myUser, "getAvatar");</code>
|
|
106
|
+
* So the User#getAvatar is, what uniquely identifies the loaderFn here.
|
|
107
|
+
* </p>
|
|
108
|
+
* @param loaderFn
|
|
109
|
+
* @param idObj object to associate this call to. undefined means globally and the idKey primitive value is the only key.
|
|
110
|
+
* @param idKey Additional primitive key under idObj.
|
|
111
|
+
*/
|
|
112
|
+
export function asyncResource2retsync<T>(loaderFn: ()=> Promise<T>, idObj: object | undefined, idKey?: (string|number)): T {
|
|
113
|
+
idObj = idObj || globalObj;
|
|
114
|
+
|
|
115
|
+
const promisesForIdObj = resourcePromises.get(idObj);
|
|
116
|
+
|
|
117
|
+
let promise = promisesForIdObj.get(idKey);
|
|
118
|
+
if(!promise) {
|
|
119
|
+
promise = loaderFn();
|
|
120
|
+
promisesForIdObj.set(idKey, promise);
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
return promise2retsync(promise as Promise<T>);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
// Flag as no-check-needed to save time (it's not necessary):
|
|
127
|
+
if(e instanceof RetsyncWaitsForPromiseException) {
|
|
128
|
+
e.checkSaved = false;
|
|
129
|
+
}
|
|
130
|
+
throw e;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
export class RetsyncWaitsForPromiseException extends Error {
|
|
137
|
+
promise: Promise<any>;
|
|
138
|
+
/**
|
|
139
|
+
* Overrides {@link Retsync2promiseOptions#checkSaved}
|
|
140
|
+
*/
|
|
141
|
+
checkSaved?: boolean;
|
|
142
|
+
|
|
143
|
+
constructor(promise: Promise<any>) {
|
|
144
|
+
super("Some retsync style code (see call stack / caller of promise2retsync) wants to await an async operation. To make this possible, you need to wrapt it at some ancestor caller level with retsync2promise. I.e. 'const result = await retsync2promise(() => {...your **retryable*** - synchronous code...}});");
|
|
145
|
+
this.promise = promise;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export function checkThatCallerHandlesRetsync() {
|
|
150
|
+
if(!callerHandlesRetsync) {
|
|
151
|
+
throw new Error("The method, you are calling uses retsync code and needs to be wrapped at some ancestor caller level with retsync2promise. I.e. 'const result = await retsync2promise(() => {...call the function that (deep inside) uses **retryable*** - synchronous code...}});");
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Makes a an async function usable in retsync code.
|
|
159
|
+
*/
|
|
160
|
+
//export function asyncFn2retsync<T>(asyncFn: () => Promise<T>): T {
|
|
161
|
+
// The call must be re-identified. It's only possible, when all reads were recorded, like with react-deepwatch. See react-deepwatch.txt
|
|
162
|
+
//}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,UAAU,CAAC;AAE/B,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,QAK3C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,QAUvD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,mBAEtC;AAED;;GAEG;AACH,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC;IACpB,GAAG,iBAAuB;IAE1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IASpB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAUvB,GAAG,CAAC,GAAG,EAAE,CAAC;IAIV;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,CAAC;CAuBjB;AAED;;GAEG;AACH,8BAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,kBAAkB,IAAI,CAAC;IAEhC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;CAQjB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAMlF;AAED;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9C,GAAG,qBAA4B;CAClC;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,KAAK,OAAO,WAUlG;AACD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,CAAC,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,GAAG,CAAA;CAAC,CAAC;AAGvJ,KAAK,mBAAmB,GAAG;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AASD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,EAAG,SAAS,GAAE,OAAO,GAAG,SAAiB,GAAG,CAAC,CAqChO;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,QAI9B;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,WAUjE;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAa5G;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,WAOhE"}
|