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/initSelector.ts
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
- class CircularDependencyError extends Error {
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 CircularDependencyError;
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 CircularDependencyError)
360
+ if (e instanceof SelectorEvaluationError)
341
361
  e.track(selector);
342
362
  throw e;
343
363
  }
@@ -0,0 +1,5 @@
1
+ import { SelectorEvaluationError } from "./SelectorEvaluationError";
2
+ export declare class SelectorCircularDependencyError extends SelectorEvaluationError {
3
+ constructor();
4
+ get message(): string;
5
+ }
@@ -0,0 +1,7 @@
1
+ import type { Selector } from "../types/Selector";
2
+ export declare class SelectorEvaluationError extends Error {
3
+ selectors: any[];
4
+ constructor(cause?: any);
5
+ track(selector: Selector<any>): void;
6
+ get message(): string;
7
+ }
@@ -0,0 +1,2 @@
1
+ import type { Selector } from "../../types/Selector";
2
+ export declare const generateSelectorTrace: (selectors: Selector[]) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valdres",
3
- "version": "0.2.0-alpha.61",
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": "083c7d5aa913e9a641d1456e82276c20d8162f0e"
39
+ "gitHead": "67a3f371cec994d7f7a83931e625d85cf156c21d"
40
40
  }