proxy-facades 1.3.0 → 1.4.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.
@@ -4,6 +4,15 @@ type Retsync2promiseOptions = {
4
4
  */
5
5
  checkSaved?: boolean;
6
6
  };
7
+ declare class Retsync2promiseCall {
8
+ }
9
+ /**
10
+ * Global state. Shared with frameworks.
11
+ */
12
+ export declare const _global: {
13
+ resolvedPromiseValues: WeakMap<Promise<any>, unknown>;
14
+ retsync2promiseCall?: Retsync2promiseCall;
15
+ };
7
16
  /**
8
17
  * Let's you run retsync code and wait, till it is finished.
9
18
  * @param repeatableFn
@@ -1 +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"}
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;AAED,cAAM,mBAAmB;CAExB;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;;0BAEM,mBAAmB;CAC5C,CAAA;AAED;;;;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"}
@@ -5,14 +5,22 @@
5
5
  // Semantics: Retsync code must be repeatable. It can change state, as long as that leads to the same result when repeated.
6
6
  // 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.
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.RetsyncWaitsForPromiseException = void 0;
8
+ exports.RetsyncWaitsForPromiseException = exports._global = void 0;
9
9
  exports.retsync2promise = retsync2promise;
10
10
  exports.promise2retsync = promise2retsync;
11
11
  exports.asyncResource2retsync = asyncResource2retsync;
12
12
  exports.checkThatCallerHandlesRetsync = checkThatCallerHandlesRetsync;
13
13
  const Util_1 = require("./Util");
14
- const resolvedPromiseValues = new WeakMap();
15
- let callerHandlesRetsync = false;
14
+ class Retsync2promiseCall {
15
+ }
16
+ /**
17
+ * Global state. Shared with frameworks.
18
+ */
19
+ exports._global = new class {
20
+ constructor() {
21
+ this.resolvedPromiseValues = new WeakMap();
22
+ }
23
+ };
16
24
  /**
17
25
  * Let's you run retsync code and wait, till it is finished.
18
26
  * @param repeatableFn
@@ -20,16 +28,16 @@ let callerHandlesRetsync = false;
20
28
  */
21
29
  async function retsync2promise(repeatableFn, options = {}) {
22
30
  /**
23
- * ...while setting the callerHandlesRetsync indicator
31
+ * ...while indicating that it is being called
24
32
  */
25
33
  function runRepeatableFn() {
26
- const orig_callerHandlesRetsync = callerHandlesRetsync;
34
+ const orig_retsync2promiseCall = exports._global.retsync2promiseCall;
27
35
  try {
28
- callerHandlesRetsync = true;
36
+ exports._global.retsync2promiseCall = new Retsync2promiseCall();
29
37
  return repeatableFn();
30
38
  }
31
39
  finally {
32
- callerHandlesRetsync = orig_callerHandlesRetsync;
40
+ exports._global.retsync2promiseCall = orig_retsync2promiseCall;
33
41
  }
34
42
  }
35
43
  while (true) {
@@ -59,7 +67,7 @@ async function retsync2promise(repeatableFn, options = {}) {
59
67
  }
60
68
  }
61
69
  }
62
- resolvedPromiseValues.set(e.promise, await e.promise);
70
+ exports._global.resolvedPromiseValues.set(e.promise, await e.promise);
63
71
  // Try again. Now it will hit the resolved value
64
72
  }
65
73
  else {
@@ -80,8 +88,8 @@ async function retsync2promise(repeatableFn, options = {}) {
80
88
  * @param savedPromise You must save/fix the promise somewhere, so you reuse it the next time you encounter it.
81
89
  */
82
90
  function promise2retsync(savedPromise) {
83
- if (resolvedPromiseValues.has(savedPromise)) {
84
- return resolvedPromiseValues.get(savedPromise);
91
+ if (exports._global.resolvedPromiseValues.has(savedPromise)) {
92
+ return exports._global.resolvedPromiseValues.get(savedPromise);
85
93
  }
86
94
  throw new RetsyncWaitsForPromiseException(savedPromise);
87
95
  }
@@ -126,7 +134,7 @@ class RetsyncWaitsForPromiseException extends Error {
126
134
  }
127
135
  exports.RetsyncWaitsForPromiseException = RetsyncWaitsForPromiseException;
128
136
  function checkThatCallerHandlesRetsync() {
129
- if (!callerHandlesRetsync) {
137
+ if (!exports._global.retsync2promiseCall) {
130
138
  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...}});");
131
139
  }
132
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retsync.js","sourceRoot":"","sources":["../../retsync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retsync.js","sourceRoot":"","sources":["../../retsync.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,15 @@ type Retsync2promiseOptions = {
4
4
  */
5
5
  checkSaved?: boolean;
6
6
  };
7
+ declare class Retsync2promiseCall {
8
+ }
9
+ /**
10
+ * Global state. Shared with frameworks.
11
+ */
12
+ export declare const _global: {
13
+ resolvedPromiseValues: WeakMap<Promise<any>, unknown>;
14
+ retsync2promiseCall?: Retsync2promiseCall;
15
+ };
7
16
  /**
8
17
  * Let's you run retsync code and wait, till it is finished.
9
18
  * @param repeatableFn
@@ -1 +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"}
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;AAED,cAAM,mBAAmB;CAExB;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;;0BAEM,mBAAmB;CAC5C,CAAA;AAED;;;;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"}
@@ -4,8 +4,16 @@
4
4
  // Semantics: Retsync code must be repeatable. It can change state, as long as that leads to the same result when repeated.
5
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
6
  import { newDefaultWeakMap } from "./Util";
7
- const resolvedPromiseValues = new WeakMap();
8
- let callerHandlesRetsync = false;
7
+ class Retsync2promiseCall {
8
+ }
9
+ /**
10
+ * Global state. Shared with frameworks.
11
+ */
12
+ export const _global = new class {
13
+ constructor() {
14
+ this.resolvedPromiseValues = new WeakMap();
15
+ }
16
+ };
9
17
  /**
10
18
  * Let's you run retsync code and wait, till it is finished.
11
19
  * @param repeatableFn
@@ -13,16 +21,16 @@ let callerHandlesRetsync = false;
13
21
  */
14
22
  export async function retsync2promise(repeatableFn, options = {}) {
15
23
  /**
16
- * ...while setting the callerHandlesRetsync indicator
24
+ * ...while indicating that it is being called
17
25
  */
18
26
  function runRepeatableFn() {
19
- const orig_callerHandlesRetsync = callerHandlesRetsync;
27
+ const orig_retsync2promiseCall = _global.retsync2promiseCall;
20
28
  try {
21
- callerHandlesRetsync = true;
29
+ _global.retsync2promiseCall = new Retsync2promiseCall();
22
30
  return repeatableFn();
23
31
  }
24
32
  finally {
25
- callerHandlesRetsync = orig_callerHandlesRetsync;
33
+ _global.retsync2promiseCall = orig_retsync2promiseCall;
26
34
  }
27
35
  }
28
36
  while (true) {
@@ -52,7 +60,7 @@ export async function retsync2promise(repeatableFn, options = {}) {
52
60
  }
53
61
  }
54
62
  }
55
- resolvedPromiseValues.set(e.promise, await e.promise);
63
+ _global.resolvedPromiseValues.set(e.promise, await e.promise);
56
64
  // Try again. Now it will hit the resolved value
57
65
  }
58
66
  else {
@@ -73,8 +81,8 @@ export async function retsync2promise(repeatableFn, options = {}) {
73
81
  * @param savedPromise You must save/fix the promise somewhere, so you reuse it the next time you encounter it.
74
82
  */
75
83
  export function promise2retsync(savedPromise) {
76
- if (resolvedPromiseValues.has(savedPromise)) {
77
- return resolvedPromiseValues.get(savedPromise);
84
+ if (_global.resolvedPromiseValues.has(savedPromise)) {
85
+ return _global.resolvedPromiseValues.get(savedPromise);
78
86
  }
79
87
  throw new RetsyncWaitsForPromiseException(savedPromise);
80
88
  }
@@ -118,7 +126,7 @@ export class RetsyncWaitsForPromiseException extends Error {
118
126
  }
119
127
  }
120
128
  export function checkThatCallerHandlesRetsync() {
121
- if (!callerHandlesRetsync) {
129
+ if (!_global.retsync2promiseCall) {
122
130
  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
131
  }
124
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retsync.js","sourceRoot":"","sources":["../../retsync.ts"],"names":[],"mappings":"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"}
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.0",
3
+ "version": "1.4.0",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "proxy",
package/retsync.ts CHANGED
@@ -14,9 +14,18 @@ type Retsync2promiseOptions = {
14
14
  checkSaved?: boolean
15
15
  }
16
16
 
17
- const resolvedPromiseValues = new WeakMap<Promise<any>, unknown>();
17
+ class Retsync2promiseCall {
18
+
19
+ }
20
+
21
+ /**
22
+ * Global state. Shared with frameworks.
23
+ */
24
+ export const _global = new class {
25
+ resolvedPromiseValues = new WeakMap<Promise<any>, unknown>();
26
+ retsync2promiseCall?: Retsync2promiseCall;
27
+ }
18
28
 
19
- let callerHandlesRetsync = false
20
29
  /**
21
30
  * Let's you run retsync code and wait, till it is finished.
22
31
  * @param repeatableFn
@@ -24,16 +33,16 @@ let callerHandlesRetsync = false
24
33
  */
25
34
  export async function retsync2promise<T>(repeatableFn: () => T, options: Retsync2promiseOptions = {}): Promise<T> {
26
35
  /**
27
- * ...while setting the callerHandlesRetsync indicator
36
+ * ...while indicating that it is being called
28
37
  */
29
38
  function runRepeatableFn() {
30
- const orig_callerHandlesRetsync = callerHandlesRetsync;
39
+ const orig_retsync2promiseCall = _global.retsync2promiseCall;
31
40
  try {
32
- callerHandlesRetsync = true;
41
+ _global.retsync2promiseCall = new Retsync2promiseCall();
33
42
  return repeatableFn();
34
43
  }
35
44
  finally {
36
- callerHandlesRetsync = orig_callerHandlesRetsync;
45
+ _global.retsync2promiseCall = orig_retsync2promiseCall;
37
46
  }
38
47
  }
39
48
 
@@ -65,7 +74,7 @@ export async function retsync2promise<T>(repeatableFn: () => T, options: Retsync
65
74
  }
66
75
  }
67
76
 
68
- resolvedPromiseValues.set(e.promise, await e.promise);
77
+ _global.resolvedPromiseValues.set(e.promise, await e.promise);
69
78
  // Try again. Now it will hit the resolved value
70
79
  } else {
71
80
  throw e;
@@ -87,8 +96,8 @@ export async function retsync2promise<T>(repeatableFn: () => T, options: Retsync
87
96
  * @param savedPromise You must save/fix the promise somewhere, so you reuse it the next time you encounter it.
88
97
  */
89
98
  export function promise2retsync<T>(savedPromise: Promise<T>): T {
90
- if(resolvedPromiseValues.has(savedPromise)) {
91
- return resolvedPromiseValues.get(savedPromise) as T;
99
+ if(_global.resolvedPromiseValues.has(savedPromise)) {
100
+ return _global.resolvedPromiseValues.get(savedPromise) as T;
92
101
  }
93
102
 
94
103
  throw new RetsyncWaitsForPromiseException(savedPromise)
@@ -147,7 +156,7 @@ export class RetsyncWaitsForPromiseException extends Error {
147
156
  }
148
157
 
149
158
  export function checkThatCallerHandlesRetsync() {
150
- if(!callerHandlesRetsync) {
159
+ if(!_global.retsync2promiseCall) {
151
160
  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
161
  }
153
162
  }