valdres 0.2.0-alpha.61 → 0.2.0-alpha.63
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/index.js
CHANGED
|
@@ -235,14 +235,7 @@ var findClosestStoreWithAtomInitialized = (atom, data) => {
|
|
|
235
235
|
return findClosestStoreWithAtomInitialized(atom, data.parent);
|
|
236
236
|
};
|
|
237
237
|
|
|
238
|
-
// src/lib/
|
|
239
|
-
class SuspendAndWaitForResolveError extends Error {
|
|
240
|
-
promise;
|
|
241
|
-
constructor(promise) {
|
|
242
|
-
super();
|
|
243
|
-
this.promise = promise;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
238
|
+
// src/errors/lib/generateSelectorTrace.ts
|
|
246
239
|
var generateSelectorTrace = (selectors) => {
|
|
247
240
|
const lastIndex = selectors.length - 1;
|
|
248
241
|
return [...selectors].reverse().map((selector, index) => {
|
|
@@ -258,21 +251,46 @@ var generateSelectorTrace = (selectors) => {
|
|
|
258
251
|
`);
|
|
259
252
|
};
|
|
260
253
|
|
|
261
|
-
|
|
254
|
+
// src/errors/SelectorEvaluationError.ts
|
|
255
|
+
class SelectorEvaluationError extends Error {
|
|
262
256
|
selectors;
|
|
263
|
-
constructor() {
|
|
257
|
+
constructor(cause) {
|
|
258
|
+
console.log("EIGIL`1: asdfasdfasdf");
|
|
264
259
|
super();
|
|
260
|
+
console.log("EIGIL: asdfasdfasdf");
|
|
261
|
+
this.cause = cause;
|
|
265
262
|
this.selectors = [];
|
|
266
263
|
}
|
|
267
264
|
track(selector) {
|
|
268
265
|
this.selectors.push(selector);
|
|
269
266
|
}
|
|
267
|
+
get message() {
|
|
268
|
+
const firstSelectorName = this.selectors[0].name ?? "Anonymous Selector";
|
|
269
|
+
return `Selector eval crashed in '${firstSelectorName}'
|
|
270
|
+
${generateSelectorTrace(this.selectors)}`;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// src/errors/SelectorCircularDependencyError.ts
|
|
275
|
+
class SelectorCircularDependencyError extends SelectorEvaluationError {
|
|
276
|
+
constructor() {
|
|
277
|
+
super();
|
|
278
|
+
}
|
|
270
279
|
get message() {
|
|
271
280
|
const firstSelectorName = this.selectors[0].name ?? "Anonymous Selector";
|
|
272
281
|
return `Circular dependency detected in '${firstSelectorName}'
|
|
273
282
|
${generateSelectorTrace(this.selectors)}`;
|
|
274
283
|
}
|
|
275
284
|
}
|
|
285
|
+
|
|
286
|
+
// src/lib/initSelector.ts
|
|
287
|
+
class SuspendAndWaitForResolveError extends Error {
|
|
288
|
+
promise;
|
|
289
|
+
constructor(promise) {
|
|
290
|
+
super();
|
|
291
|
+
this.promise = promise;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
276
294
|
var getOrInitConsumersSet = (state, data) => {
|
|
277
295
|
const set = data.stateConsumers.get(state);
|
|
278
296
|
if (set)
|
|
@@ -284,7 +302,7 @@ var getOrInitConsumersSet = (state, data) => {
|
|
|
284
302
|
var evaluateSelector = (selector, data, circularDependencyMap = new WeakSet) => {
|
|
285
303
|
const updatedDependencies = new Set;
|
|
286
304
|
if (circularDependencyMap.has(selector)) {
|
|
287
|
-
throw new
|
|
305
|
+
throw new SelectorCircularDependencyError;
|
|
288
306
|
}
|
|
289
307
|
circularDependencyMap.add(selector);
|
|
290
308
|
let result;
|
|
@@ -299,8 +317,10 @@ var evaluateSelector = (selector, data, circularDependencyMap = new WeakSet) =>
|
|
|
299
317
|
} catch (error) {
|
|
300
318
|
if (error instanceof SuspendAndWaitForResolveError) {
|
|
301
319
|
result = error;
|
|
302
|
-
} else {
|
|
320
|
+
} else if (error instanceof SelectorEvaluationError) {
|
|
303
321
|
throw error;
|
|
322
|
+
} else {
|
|
323
|
+
throw new SelectorEvaluationError(error);
|
|
304
324
|
}
|
|
305
325
|
}
|
|
306
326
|
const currentDependencies = data.stateDependencies.get(selector) ?? new Set;
|
|
@@ -337,7 +357,7 @@ var initSelector = (selector, data, circularDependencySet = new WeakSet) => {
|
|
|
337
357
|
try {
|
|
338
358
|
tmpValue = evaluateSelector(selector, data, circularDependencySet);
|
|
339
359
|
} catch (e) {
|
|
340
|
-
if (e instanceof
|
|
360
|
+
if (e instanceof SelectorEvaluationError)
|
|
341
361
|
e.track(selector);
|
|
342
362
|
throw e;
|
|
343
363
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "valdres",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.63",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Eigil Sagafos"
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"access": "public",
|
|
37
37
|
"registry": "https://registry.npmjs.org/"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "67a3f371cec994d7f7a83931e625d85cf156c21d"
|
|
40
40
|
}
|