proxy-facades 1.2.9 → 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.
Files changed (129) hide show
  1. package/Util.ts +35 -6
  2. package/dist/{browser → commonjs}/Util.d.ts +15 -2
  3. package/dist/commonjs/Util.d.ts.map +1 -0
  4. package/dist/{default → commonjs}/Util.js +31 -4
  5. package/dist/commonjs/Util.js.map +1 -0
  6. package/dist/commonjs/retsync.d.ts +53 -0
  7. package/dist/commonjs/retsync.d.ts.map +1 -0
  8. package/dist/commonjs/retsync.js +147 -0
  9. package/dist/commonjs/retsync.js.map +1 -0
  10. package/dist/{default → esm}/Util.d.ts +15 -2
  11. package/dist/esm/Util.d.ts.map +1 -0
  12. package/dist/{browser → esm}/Util.js +28 -3
  13. package/dist/esm/Util.js.map +1 -0
  14. package/dist/esm/retsync.d.ts +53 -0
  15. package/dist/esm/retsync.d.ts.map +1 -0
  16. package/dist/esm/retsync.js +139 -0
  17. package/dist/esm/retsync.js.map +1 -0
  18. package/package.json +9 -5
  19. package/readme.md +1 -1
  20. package/retsync.ts +171 -0
  21. package/dist/browser/Util.d.ts.map +0 -1
  22. package/dist/browser/Util.js.map +0 -1
  23. package/dist/default/Util.d.ts.map +0 -1
  24. package/dist/default/Util.js.map +0 -1
  25. package/index_esm.mjs +0 -46
  26. /package/dist/{browser → commonjs}/RecordedReadOnProxiedObjectExt.d.ts +0 -0
  27. /package/dist/{browser → commonjs}/RecordedReadOnProxiedObjectExt.d.ts.map +0 -0
  28. /package/dist/{default → commonjs}/RecordedReadOnProxiedObjectExt.js +0 -0
  29. /package/dist/{default → commonjs}/RecordedReadOnProxiedObjectExt.js.map +0 -0
  30. /package/dist/{browser → commonjs}/class-trackers/Array.d.ts +0 -0
  31. /package/dist/{browser → commonjs}/class-trackers/Array.d.ts.map +0 -0
  32. /package/dist/{default → commonjs}/class-trackers/Array.js +0 -0
  33. /package/dist/{default → commonjs}/class-trackers/Array.js.map +0 -0
  34. /package/dist/{browser → commonjs}/class-trackers/Iterator.d.ts +0 -0
  35. /package/dist/{browser → commonjs}/class-trackers/Iterator.d.ts.map +0 -0
  36. /package/dist/{default → commonjs}/class-trackers/Iterator.js +0 -0
  37. /package/dist/{default → commonjs}/class-trackers/Iterator.js.map +0 -0
  38. /package/dist/{browser → commonjs}/class-trackers/Map.d.ts +0 -0
  39. /package/dist/{browser → commonjs}/class-trackers/Map.d.ts.map +0 -0
  40. /package/dist/{default → commonjs}/class-trackers/Map.js +0 -0
  41. /package/dist/{default → commonjs}/class-trackers/Map.js.map +0 -0
  42. /package/dist/{browser → commonjs}/class-trackers/Set.d.ts +0 -0
  43. /package/dist/{browser → commonjs}/class-trackers/Set.d.ts.map +0 -0
  44. /package/dist/{default → commonjs}/class-trackers/Set.js +0 -0
  45. /package/dist/{default → commonjs}/class-trackers/Set.js.map +0 -0
  46. /package/dist/{browser → commonjs}/class-trackers/index.d.ts +0 -0
  47. /package/dist/{browser → commonjs}/class-trackers/index.d.ts.map +0 -0
  48. /package/dist/{default → commonjs}/class-trackers/index.js +0 -0
  49. /package/dist/{default → commonjs}/class-trackers/index.js.map +0 -0
  50. /package/dist/{browser → commonjs}/common.d.ts +0 -0
  51. /package/dist/{browser → commonjs}/common.d.ts.map +0 -0
  52. /package/dist/{default → commonjs}/common.js +0 -0
  53. /package/dist/{default → commonjs}/common.js.map +0 -0
  54. /package/dist/{browser → commonjs}/dev_generateEsRuntimeBehaviourCheckerCode.d.ts +0 -0
  55. /package/dist/{browser → commonjs}/dev_generateEsRuntimeBehaviourCheckerCode.d.ts.map +0 -0
  56. /package/dist/{browser → commonjs}/dev_generateEsRuntimeBehaviourCheckerCode.js +0 -0
  57. /package/dist/{browser → commonjs}/dev_generateEsRuntimeBehaviourCheckerCode.js.map +0 -0
  58. /package/dist/{browser → commonjs}/index.d.ts +0 -0
  59. /package/dist/{browser → commonjs}/index.d.ts.map +0 -0
  60. /package/dist/{default → commonjs}/index.js +0 -0
  61. /package/dist/{default → commonjs}/index.js.map +0 -0
  62. /package/dist/{browser → commonjs}/objectChangeTracking.d.ts +0 -0
  63. /package/dist/{browser → commonjs}/objectChangeTracking.d.ts.map +0 -0
  64. /package/dist/{default → commonjs}/objectChangeTracking.js +0 -0
  65. /package/dist/{default → commonjs}/objectChangeTracking.js.map +0 -0
  66. /package/dist/{browser → commonjs}/origChangeTracking.d.ts +0 -0
  67. /package/dist/{browser → commonjs}/origChangeTracking.d.ts.map +0 -0
  68. /package/dist/{default → commonjs}/origChangeTracking.js +0 -0
  69. /package/dist/{default → commonjs}/origChangeTracking.js.map +0 -0
  70. /package/dist/{browser → commonjs}/proxyFacade.d.ts +0 -0
  71. /package/dist/{browser → commonjs}/proxyFacade.d.ts.map +0 -0
  72. /package/dist/{default → commonjs}/proxyFacade.js +0 -0
  73. /package/dist/{default → commonjs}/proxyFacade.js.map +0 -0
  74. /package/dist/{browser → commonjs}/watchedProxyFacade.d.ts +0 -0
  75. /package/dist/{browser → commonjs}/watchedProxyFacade.d.ts.map +0 -0
  76. /package/dist/{default → commonjs}/watchedProxyFacade.js +0 -0
  77. /package/dist/{default → commonjs}/watchedProxyFacade.js.map +0 -0
  78. /package/dist/{default → esm}/RecordedReadOnProxiedObjectExt.d.ts +0 -0
  79. /package/dist/{default → esm}/RecordedReadOnProxiedObjectExt.d.ts.map +0 -0
  80. /package/dist/{browser → esm}/RecordedReadOnProxiedObjectExt.js +0 -0
  81. /package/dist/{browser → esm}/RecordedReadOnProxiedObjectExt.js.map +0 -0
  82. /package/dist/{default → esm}/class-trackers/Array.d.ts +0 -0
  83. /package/dist/{default → esm}/class-trackers/Array.d.ts.map +0 -0
  84. /package/dist/{browser → esm}/class-trackers/Array.js +0 -0
  85. /package/dist/{browser → esm}/class-trackers/Array.js.map +0 -0
  86. /package/dist/{default → esm}/class-trackers/Iterator.d.ts +0 -0
  87. /package/dist/{default → esm}/class-trackers/Iterator.d.ts.map +0 -0
  88. /package/dist/{browser → esm}/class-trackers/Iterator.js +0 -0
  89. /package/dist/{browser → esm}/class-trackers/Iterator.js.map +0 -0
  90. /package/dist/{default → esm}/class-trackers/Map.d.ts +0 -0
  91. /package/dist/{default → esm}/class-trackers/Map.d.ts.map +0 -0
  92. /package/dist/{browser → esm}/class-trackers/Map.js +0 -0
  93. /package/dist/{browser → esm}/class-trackers/Map.js.map +0 -0
  94. /package/dist/{default → esm}/class-trackers/Set.d.ts +0 -0
  95. /package/dist/{default → esm}/class-trackers/Set.d.ts.map +0 -0
  96. /package/dist/{browser → esm}/class-trackers/Set.js +0 -0
  97. /package/dist/{browser → esm}/class-trackers/Set.js.map +0 -0
  98. /package/dist/{default → esm}/class-trackers/index.d.ts +0 -0
  99. /package/dist/{default → esm}/class-trackers/index.d.ts.map +0 -0
  100. /package/dist/{browser → esm}/class-trackers/index.js +0 -0
  101. /package/dist/{browser → esm}/class-trackers/index.js.map +0 -0
  102. /package/dist/{default → esm}/common.d.ts +0 -0
  103. /package/dist/{default → esm}/common.d.ts.map +0 -0
  104. /package/dist/{browser → esm}/common.js +0 -0
  105. /package/dist/{browser → esm}/common.js.map +0 -0
  106. /package/dist/{default → esm}/dev_generateEsRuntimeBehaviourCheckerCode.d.ts +0 -0
  107. /package/dist/{default → esm}/dev_generateEsRuntimeBehaviourCheckerCode.d.ts.map +0 -0
  108. /package/dist/{default → esm}/dev_generateEsRuntimeBehaviourCheckerCode.js +0 -0
  109. /package/dist/{default → esm}/dev_generateEsRuntimeBehaviourCheckerCode.js.map +0 -0
  110. /package/dist/{default → esm}/index.d.ts +0 -0
  111. /package/dist/{default → esm}/index.d.ts.map +0 -0
  112. /package/dist/{browser → esm}/index.js +0 -0
  113. /package/dist/{browser → esm}/index.js.map +0 -0
  114. /package/dist/{default → esm}/objectChangeTracking.d.ts +0 -0
  115. /package/dist/{default → esm}/objectChangeTracking.d.ts.map +0 -0
  116. /package/dist/{browser → esm}/objectChangeTracking.js +0 -0
  117. /package/dist/{browser → esm}/objectChangeTracking.js.map +0 -0
  118. /package/dist/{default → esm}/origChangeTracking.d.ts +0 -0
  119. /package/dist/{default → esm}/origChangeTracking.d.ts.map +0 -0
  120. /package/dist/{browser → esm}/origChangeTracking.js +0 -0
  121. /package/dist/{browser → esm}/origChangeTracking.js.map +0 -0
  122. /package/dist/{default → esm}/proxyFacade.d.ts +0 -0
  123. /package/dist/{default → esm}/proxyFacade.d.ts.map +0 -0
  124. /package/dist/{browser → esm}/proxyFacade.js +0 -0
  125. /package/dist/{browser → esm}/proxyFacade.js.map +0 -0
  126. /package/dist/{default → esm}/watchedProxyFacade.d.ts +0 -0
  127. /package/dist/{default → esm}/watchedProxyFacade.d.ts.map +0 -0
  128. /package/dist/{browser → esm}/watchedProxyFacade.js +0 -0
  129. /package/dist/{browser → esm}/watchedProxyFacade.js.map +0 -0
@@ -0,0 +1,139 @@
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
+ 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
+ };
17
+ /**
18
+ * Let's you run retsync code and wait, till it is finished.
19
+ * @param repeatableFn
20
+ * @param options
21
+ */
22
+ export async function retsync2promise(repeatableFn, options = {}) {
23
+ /**
24
+ * ...while indicating that it is being called
25
+ */
26
+ function runRepeatableFn() {
27
+ const orig_retsync2promiseCall = _global.retsync2promiseCall;
28
+ try {
29
+ _global.retsync2promiseCall = new Retsync2promiseCall();
30
+ return repeatableFn();
31
+ }
32
+ finally {
33
+ _global.retsync2promiseCall = orig_retsync2promiseCall;
34
+ }
35
+ }
36
+ while (true) {
37
+ try {
38
+ return runRepeatableFn();
39
+ }
40
+ catch (e) {
41
+ if (e instanceof RetsyncWaitsForPromiseException) {
42
+ if (e.checkSaved || (e.checkSaved === undefined && options.checkSaved !== false)) {
43
+ const optionHint = `Hint: See also: Retsync2promiseOptions#checkSaved`;
44
+ // Check if repeatableFn is behaving in repeatable symantics and saves the promise
45
+ try {
46
+ runRepeatableFn();
47
+ 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 });
48
+ }
49
+ catch (eChecked) {
50
+ if (!(eChecked !== null && eChecked instanceof RetsyncWaitsForPromiseException)) {
51
+ 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 });
52
+ }
53
+ eChecked.promise.then().catch(); // Make sure, that promise is caught once, to prevent unhandledRejections, just because of our checking functionality.
54
+ if (fixStack(eChecked.stack) !== fixStack(e.stack)) {
55
+ 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 });
56
+ }
57
+ if (eChecked.promise !== e.promise) {
58
+ 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") };
59
+ throw e;
60
+ }
61
+ }
62
+ }
63
+ _global.resolvedPromiseValues.set(e.promise, await e.promise);
64
+ // Try again. Now it will hit the resolved value
65
+ }
66
+ else {
67
+ throw e;
68
+ }
69
+ }
70
+ }
71
+ /**
72
+ * removes the retsync2promise lines. Cause we call repeatableFn from multiple lines here
73
+ * @param stack
74
+ */
75
+ function fixStack(stack) {
76
+ return stack === null || stack === void 0 ? void 0 : stack.replaceAll(/^.*retsync2promise.*$/gm, "");
77
+ }
78
+ }
79
+ /**
80
+ * Makes a promise usable in retsync code.
81
+ * @param savedPromise You must save/fix the promise somewhere, so you reuse it the next time you encounter it.
82
+ */
83
+ export function promise2retsync(savedPromise) {
84
+ if (_global.resolvedPromiseValues.has(savedPromise)) {
85
+ return _global.resolvedPromiseValues.get(savedPromise);
86
+ }
87
+ throw new RetsyncWaitsForPromiseException(savedPromise);
88
+ }
89
+ const globalObj = {};
90
+ const resourcePromises = newDefaultWeakMap((key) => new Map());
91
+ /**
92
+ * Makes async code usable in retsync code.
93
+ * <p>
94
+ * 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.
95
+ * Therefore, you have the idObj and idKey parameters. Example:
96
+ * <code>asyncResource2retsync( async() => {...load the avatar...}, myUser, "getAvatar");</code>
97
+ * So the User#getAvatar is, what uniquely identifies the loaderFn here.
98
+ * </p>
99
+ * @param loaderFn
100
+ * @param idObj object to associate this call to. undefined means globally and the idKey primitive value is the only key.
101
+ * @param idKey Additional primitive key under idObj.
102
+ */
103
+ export function asyncResource2retsync(loaderFn, idObj, idKey) {
104
+ idObj = idObj || globalObj;
105
+ const promisesForIdObj = resourcePromises.get(idObj);
106
+ let promise = promisesForIdObj.get(idKey);
107
+ if (!promise) {
108
+ promise = loaderFn();
109
+ promisesForIdObj.set(idKey, promise);
110
+ }
111
+ try {
112
+ return promise2retsync(promise);
113
+ }
114
+ catch (e) {
115
+ // Flag as no-check-needed to save time (it's not necessary):
116
+ if (e instanceof RetsyncWaitsForPromiseException) {
117
+ e.checkSaved = false;
118
+ }
119
+ throw e;
120
+ }
121
+ }
122
+ export class RetsyncWaitsForPromiseException extends Error {
123
+ constructor(promise) {
124
+ 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...}});");
125
+ this.promise = promise;
126
+ }
127
+ }
128
+ export function checkThatCallerHandlesRetsync() {
129
+ if (!_global.retsync2promiseCall) {
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...}});");
131
+ }
132
+ }
133
+ /**
134
+ * Makes a an async function usable in retsync code.
135
+ */
136
+ //export function asyncFn2retsync<T>(asyncFn: () => Promise<T>): T {
137
+ // The call must be re-identified. It's only possible, when all reads were recorded, like with react-deepwatch. See react-deepwatch.txt
138
+ //}
139
+ //# 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.2.9",
3
+ "version": "1.4.0",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "proxy",
@@ -14,18 +14,22 @@
14
14
  "url": "https://github.com/bogeeee/proxy-facades.git"
15
15
  },
16
16
  "license": "MIT",
17
- "main": "./dist/default/index.js",
17
+ "main": "./dist/commonjs/index.js",
18
18
  "exports": {
19
19
  ".": {
20
- "browser": "./dist/browser/index.js",
21
- "default": "./dist/default/index.js"
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/browser && npm run verify_d.ts",
32
+ "build": "tsc --build --force && tsc -module ES6 --outDir dist/esm && npm run verify_d.ts",
29
33
  "verify_d.ts": "tsc dist/**/*.d.ts -noEmit",
30
34
  "test": "npm run clean && vitest --clearScreen --hideSkippedTests --poolOptions.threads.singleThread",
31
35
  "test_specific": "npm run clean && vitest --clearScreen --hideSkippedTests --poolOptions.threads.singleThread --testNamePattern \"add.*should behave normally. With writes through installed write tracker\"",
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,171 @@
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
+ 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
+ }
28
+
29
+ /**
30
+ * Let's you run retsync code and wait, till it is finished.
31
+ * @param repeatableFn
32
+ * @param options
33
+ */
34
+ export async function retsync2promise<T>(repeatableFn: () => T, options: Retsync2promiseOptions = {}): Promise<T> {
35
+ /**
36
+ * ...while indicating that it is being called
37
+ */
38
+ function runRepeatableFn() {
39
+ const orig_retsync2promiseCall = _global.retsync2promiseCall;
40
+ try {
41
+ _global.retsync2promiseCall = new Retsync2promiseCall();
42
+ return repeatableFn();
43
+ }
44
+ finally {
45
+ _global.retsync2promiseCall = orig_retsync2promiseCall;
46
+ }
47
+ }
48
+
49
+ while(true) {
50
+ try {
51
+ return runRepeatableFn();
52
+ } catch (e) {
53
+ if (e instanceof RetsyncWaitsForPromiseException) {
54
+ if (e.checkSaved || (e.checkSaved === undefined && options.checkSaved !== false)) {
55
+ const optionHint = `Hint: See also: Retsync2promiseOptions#checkSaved`
56
+ // Check if repeatableFn is behaving in repeatable symantics and saves the promise
57
+ try {
58
+ runRepeatableFn();
59
+ 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});
60
+ } catch (eChecked) {
61
+ if (!(eChecked !== null && eChecked instanceof RetsyncWaitsForPromiseException)) {
62
+ 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});
63
+ }
64
+
65
+ eChecked.promise.then().catch(); // Make sure, that promise is caught once, to prevent unhandledRejections, just because of our checking functionality.
66
+
67
+ if (fixStack(eChecked.stack) !== fixStack(e.stack)) {
68
+ 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});
69
+ }
70
+ if (eChecked.promise !== e.promise) {
71
+ 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")};
72
+ throw e;
73
+ }
74
+ }
75
+ }
76
+
77
+ _global.resolvedPromiseValues.set(e.promise, await e.promise);
78
+ // Try again. Now it will hit the resolved value
79
+ } else {
80
+ throw e;
81
+ }
82
+ }
83
+ }
84
+
85
+ /**
86
+ * removes the retsync2promise lines. Cause we call repeatableFn from multiple lines here
87
+ * @param stack
88
+ */
89
+ function fixStack(stack?: string) {
90
+ return stack?.replaceAll(/^.*retsync2promise.*$/gm,"")
91
+ }
92
+ }
93
+
94
+ /**
95
+ * Makes a promise usable in retsync code.
96
+ * @param savedPromise You must save/fix the promise somewhere, so you reuse it the next time you encounter it.
97
+ */
98
+ export function promise2retsync<T>(savedPromise: Promise<T>): T {
99
+ if(_global.resolvedPromiseValues.has(savedPromise)) {
100
+ return _global.resolvedPromiseValues.get(savedPromise) as T;
101
+ }
102
+
103
+ throw new RetsyncWaitsForPromiseException(savedPromise)
104
+ }
105
+
106
+ const globalObj = {};
107
+ const resourcePromises = newDefaultWeakMap((key) => new Map<string | number | undefined, Promise<unknown>>())
108
+
109
+ /**
110
+ * Makes async code usable in retsync code.
111
+ * <p>
112
+ * 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.
113
+ * Therefore, you have the idObj and idKey parameters. Example:
114
+ * <code>asyncResource2retsync( async() => {...load the avatar...}, myUser, "getAvatar");</code>
115
+ * So the User#getAvatar is, what uniquely identifies the loaderFn here.
116
+ * </p>
117
+ * @param loaderFn
118
+ * @param idObj object to associate this call to. undefined means globally and the idKey primitive value is the only key.
119
+ * @param idKey Additional primitive key under idObj.
120
+ */
121
+ export function asyncResource2retsync<T>(loaderFn: ()=> Promise<T>, idObj: object | undefined, idKey?: (string|number)): T {
122
+ idObj = idObj || globalObj;
123
+
124
+ const promisesForIdObj = resourcePromises.get(idObj);
125
+
126
+ let promise = promisesForIdObj.get(idKey);
127
+ if(!promise) {
128
+ promise = loaderFn();
129
+ promisesForIdObj.set(idKey, promise);
130
+ }
131
+ try {
132
+ return promise2retsync(promise as Promise<T>);
133
+ }
134
+ catch (e) {
135
+ // Flag as no-check-needed to save time (it's not necessary):
136
+ if(e instanceof RetsyncWaitsForPromiseException) {
137
+ e.checkSaved = false;
138
+ }
139
+ throw e;
140
+ }
141
+ }
142
+
143
+
144
+
145
+ export class RetsyncWaitsForPromiseException extends Error {
146
+ promise: Promise<any>;
147
+ /**
148
+ * Overrides {@link Retsync2promiseOptions#checkSaved}
149
+ */
150
+ checkSaved?: boolean;
151
+
152
+ constructor(promise: Promise<any>) {
153
+ 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...}});");
154
+ this.promise = promise;
155
+ }
156
+ }
157
+
158
+ export function checkThatCallerHandlesRetsync() {
159
+ if(!_global.retsync2promiseCall) {
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...}});");
161
+ }
162
+ }
163
+
164
+
165
+
166
+ /**
167
+ * Makes a an async function usable in retsync code.
168
+ */
169
+ //export function asyncFn2retsync<T>(asyncFn: () => Promise<T>): T {
170
+ // The call must be re-identified. It's only possible, when all reads were recorded, like with react-deepwatch. See react-deepwatch.txt
171
+ //}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Util.js","sourceRoot":"","sources":["../../Util.ts"],"names":[],"mappings":"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"}
package/index_esm.mjs DELETED
@@ -1,46 +0,0 @@
1
- // A wrapper file for ESM to avoid the 'dual package hazard'. See https://nodejs.org/api/packages.html#approach-1-use-an-es-module-wrapper
2
-
3
- import cjsCommon from "./common.js"
4
- export const RecordedRead = cjsCommon.RecordedRead;
5
- export const ClassTrackingConfiguration = cjsCommon.ClassTrackingConfiguration;
6
- export const IteratorReturningProxiedValue = cjsCommon.IteratorReturningProxiedValue;
7
- export const GetIteratorValueProxiedFn = cjsCommon.GetIteratorValueProxiedFn;
8
-
9
-
10
-
11
- import cjsProxyFacade from "./proxyFacade.js"
12
- export const ProxyFacade = cjsProxyFacade.ProxyFacade;
13
- export const FacadeProxyHandler = cjsProxyFacade.FacadeProxyHandler;
14
- export const invalidateObject = cjsProxyFacade.invalidateObject;
15
- export const getGlobalOrig = cjsProxyFacade.getGlobalOrig;
16
- export const deleteProperty = cjsProxyFacade.deleteProperty;
17
- export const changeTrackedOrigObjects = cjsProxyFacade.changeTrackedOrigObjects;
18
- export const ForWatchedProxyHandler = cjsProxyFacade.ForWatchedProxyHandler
19
- export const dualUseTracker_callOrigMethodOnTarget = cjsProxyFacade.dualUseTracker_callOrigMethodOnTarget;
20
- export const DualUseTracker = cjsProxyFacade.DualUseTracker;
21
- export const RecordedReadOnProxiedObject = cjsProxyFacade.RecordedReadOnProxiedObject;
22
-
23
- import cjsOrigChangeTracking from "./origChangeTracking.js"
24
- export const installChangeTracker = cjsOrigChangeTracking.installChangeTracker;
25
-
26
- import cjsClassTrackers_Array from "./class-trackers/Array.js";
27
- export const RecordedArrayValuesRead = cjsClassTrackers_Array.RecordedArrayValuesRead
28
-
29
- import cjsClassTrackers_Map from "./class-trackers/Map.js";
30
- export const RecordedMap_has = cjsClassTrackers_Map.RecordedMap_has;
31
- export const RecordedMap_get = cjsClassTrackers_Map.RecordedMap_get;
32
- export const RecordedMapEntriesRead = cjsClassTrackers_Map.RecordedMapEntriesRead;
33
- export const RecordedMapKeysRead = cjsClassTrackers_Map.RecordedMapKeysRead;
34
- export const RecordedMapValuesRead = cjsClassTrackers_Map.RecordedMapValuesRead;
35
-
36
- import cjsClassTrackers_Set from "./class-trackers/Set.js";
37
- export const RecordedSet_has = cjsClassTrackers_Set.RecordedSet_has;
38
- export const RecordedSetValuesRead = cjsClassTrackers_Set.RecordedSetValuesRead;
39
-
40
- import cjsWatchedProxyFacade from "./watchedProxyFacade.js"
41
- export const RecordedValueRead = cjsWatchedProxyFacade.RecordedValueRead;
42
- export const RecordedUnspecificRead = cjsWatchedProxyFacade.RecordedUnspecificRead;
43
- export const RecordedPropertyRead = cjsWatchedProxyFacade.RecordedPropertyRead;
44
- export const RecordedOwnKeysRead = cjsWatchedProxyFacade.RecordedOwnKeysRead;
45
- export const WatchedProxyFacade = cjsWatchedProxyFacade.WatchedProxyFacade;
46
- export const WatchedProxyHandler = cjsWatchedProxyFacade.WatchedProxyHandler;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes