storion 0.3.0 → 0.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.
package/README.md CHANGED
@@ -315,9 +315,41 @@ export const settingsStore = store({
315
315
 
316
316
  ### Reactive Effects
317
317
 
318
- **The problem:** You need to sync with external systems (WebSocket, localStorage, event listeners) when state changes, and properly clean up when the state changes again or the component unmounts.
318
+ **The problem:** You need to sync with external systems (WebSocket, localStorage) or compute derived state when dependencies change, and properly clean up when needed.
319
319
 
320
- **With Storion:** Effects automatically track which state properties you read and re-run only when those change. Register cleanup with `ctx.onCleanup()`.
320
+ **With Storion:** Effects automatically track which state properties you read and re-run only when those change. Use them for side effects or computed state.
321
+
322
+ **Example 1: Computed/Derived State**
323
+
324
+ ```ts
325
+ import { store, effect } from "storion";
326
+
327
+ export const userStore = store({
328
+ name: "user",
329
+ state: {
330
+ firstName: "",
331
+ lastName: "",
332
+ fullName: "", // Computed from firstName + lastName
333
+ },
334
+ setup({ state }) {
335
+ // Auto-updates fullName when firstName or lastName changes
336
+ effect(() => {
337
+ state.fullName = `${state.firstName} ${state.lastName}`.trim();
338
+ });
339
+
340
+ return {
341
+ setFirstName: (name: string) => {
342
+ state.firstName = name;
343
+ },
344
+ setLastName: (name: string) => {
345
+ state.lastName = name;
346
+ },
347
+ };
348
+ },
349
+ });
350
+ ```
351
+
352
+ **Example 2: External System Sync**
321
353
 
322
354
  ```ts
323
355
  import { store, effect } from "storion";
@@ -330,7 +362,6 @@ export const syncStore = store({
330
362
  },
331
363
  setup({ state }) {
332
364
  effect((ctx) => {
333
- // Effect tracks state.userId and re-runs when it changes
334
365
  if (!state.userId) return;
335
366
 
336
367
  const ws = new WebSocket(`/ws?user=${state.userId}`);
@@ -555,18 +586,24 @@ const userStore = store({
555
586
 
556
587
  ```ts
557
588
  import { container, compose, applyFor, applyExcept } from "storion";
589
+ import type { StoreMiddleware } from "storion";
558
590
 
559
- // Logging middleware
560
- const loggingMiddleware = (spec, next) => {
561
- const instance = next(spec);
562
- console.log(`Store created: ${spec.name}`);
591
+ // Logging middleware - ctx.spec is always available
592
+ const loggingMiddleware: StoreMiddleware = (ctx) => {
593
+ console.log(`Creating store: ${ctx.displayName}`);
594
+ const instance = ctx.next();
595
+ console.log(`Created: ${instance.id}`);
563
596
  return instance;
564
597
  };
565
598
 
566
599
  // Persistence middleware
567
- const persistMiddleware = (spec, next) => {
568
- const instance = next(spec);
569
- // Add persistence logic...
600
+ const persistMiddleware: StoreMiddleware = (ctx) => {
601
+ const instance = ctx.next();
602
+ // Access store-specific options directly
603
+ const isPersistent = ctx.spec.options.meta?.persist === true;
604
+ if (isPersistent) {
605
+ // Add persistence logic...
606
+ }
570
607
  return instance;
571
608
  };
572
609
 
@@ -582,7 +619,10 @@ const app = container({
582
619
  applyFor(["authStore", "settingsStore"], loggingMiddleware),
583
620
 
584
621
  // Apply based on custom condition
585
- applyFor((spec) => spec.options.meta?.persist === true, persistMiddleware)
622
+ applyFor(
623
+ (ctx) => ctx.spec.options.meta?.persist === true,
624
+ persistMiddleware
625
+ )
586
626
  ),
587
627
  });
588
628
  ```
@@ -606,7 +646,7 @@ const app = container({
606
646
 
607
647
  ```ts
608
648
  interface StoreOptions<TState, TActions> {
609
- name?: string; // Store name for debugging
649
+ name?: string; // Store display name for debugging (becomes spec.displayName)
610
650
  state: TState; // Initial state
611
651
  setup: (ctx: StoreContext) => TActions; // Setup function
612
652
  lifetime?: "singleton" | "autoDispose"; // Instance lifetime
@@ -686,6 +726,44 @@ interface AsyncState<T, M extends "fresh" | "stale"> {
686
726
  }
687
727
  ```
688
728
 
729
+ ### Middleware
730
+
731
+ | Export | Description |
732
+ | ------------- | -------------------------------------------------- |
733
+ | `compose` | Compose multiple StoreMiddleware into one |
734
+ | `applyFor` | Apply middleware conditionally (pattern/predicate) |
735
+ | `applyExcept` | Apply middleware except for matching patterns |
736
+
737
+ #### StoreMiddlewareContext
738
+
739
+ Container middleware uses `StoreMiddlewareContext` where `spec` is always available:
740
+
741
+ ```ts
742
+ interface StoreMiddlewareContext<S, A> {
743
+ spec: StoreSpec<S, A>; // The store spec (always present)
744
+ resolver: Resolver; // The resolver/container instance
745
+ next: () => StoreInstance<S, A>; // Call next middleware or create the store
746
+ displayName: string; // Store name (always present for stores)
747
+ }
748
+
749
+ type StoreMiddleware = <S, A>(
750
+ ctx: StoreMiddlewareContext<S, A>
751
+ ) => StoreInstance<S, A>;
752
+ ```
753
+
754
+ For generic resolver middleware (non-container), use `Middleware` with `MiddlewareContext`:
755
+
756
+ ```ts
757
+ interface MiddlewareContext<T> {
758
+ factory: Factory<T>; // The factory being invoked
759
+ resolver: Resolver; // The resolver instance
760
+ next: () => T; // Call next middleware or the factory
761
+ displayName?: string; // Name (from factory.displayName or factory.name)
762
+ }
763
+
764
+ type Middleware = <T>(ctx: MiddlewareContext<T>) => T;
765
+ ```
766
+
689
767
  ### Devtools (`storion/devtools`)
690
768
 
691
769
  ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/core/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAErB,MAAM,UAAU,CAAC;AAUlB,UAAU,uBAAuB;IAC/B,sDAAsD;IACtD,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC;IACxB,qDAAqD;IACrD,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;CAC1B;AAYD;;GAEG;AACH,UAAU,WAAW;IACnB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAAC;IAC7C;;OAEG;IACH,QAAQ,EAAE;QACR,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;QACzC,KAAK,IAAI,IAAI,CAAC;KACf,CAAC;CACH;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,EAAE,WA6SvB,CAAC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/core/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAIrB,MAAM,UAAU,CAAC;AAUlB,UAAU,uBAAuB;IAC/B,sDAAsD;IACtD,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC;IACxB,qDAAqD;IACrD,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;CAC1B;AAYD;;GAEG;AACH,UAAU,WAAW;IACnB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAAC;IAC7C;;OAEG;IACH,QAAQ,EAAE;QACR,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;QACzC,KAAK,IAAI,IAAI,CAAC;KACf,CAAC;CACH;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,EAAE,WA4TvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createResolver.d.ts","sourceRoot":"","sources":["../../src/core/createResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG/E,YAAY,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,eAAe,GAChB,MAAM,UAAU,CAAC;AAMlB;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAuGtE;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAClB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,EACxC,UAAU,EAAE,UAAU,GACrB,UAAU,CAOZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,SAAa,GAAG,UAAU,CAUvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GACpD,UAAU,CAMZ"}
1
+ {"version":3,"file":"createResolver.d.ts","sourceRoot":"","sources":["../../src/core/createResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EAEhB,MAAM,UAAU,CAAC;AAIlB,YAAY,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,eAAe,GAChB,MAAM,UAAU,CAAC;AAmClB;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAoItE;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAClB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,EACxC,UAAU,EAAE,UAAU,GACrB,UAAU,CAOZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,SAAa,GAAG,UAAU,CAUvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GACpD,UAAU,CAMZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../src/core/effect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,2CAA2C;IAC3C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,WAAW,GACX,iBAAiB,GACjB,CAAC,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAMD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAC;IAEhD;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACnC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,GACpC,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,GAAG,SAAS,CAAC;CAC5C;AAmFD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;AAsBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CA6R1E"}
1
+ {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../src/core/effect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,2CAA2C;IAC3C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,WAAW,GACX,iBAAiB,GACjB,CAAC,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAMD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAC;IAEhD;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACnC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,GACpC,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,GAAG,SAAS,CAAC;CAC5C;AAqGD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;AAsBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CA4R1E"}
@@ -1,9 +1,9 @@
1
- import { StoreSpec, StoreMiddleware } from '../types';
1
+ import { StoreMiddleware, StoreMiddlewareContext } from '../types';
2
2
 
3
- /** Pattern type for matching spec names */
3
+ /** Pattern type for matching displayName */
4
4
  export type SpecPattern = string | RegExp;
5
5
  /**
6
- * Compose multiple middleware into one.
6
+ * Compose multiple store middleware into one.
7
7
  * Middleware are applied in order (first middleware wraps the chain).
8
8
  */
9
9
  export declare function compose(...middlewares: StoreMiddleware[]): StoreMiddleware;
@@ -11,11 +11,11 @@ export declare function compose(...middlewares: StoreMiddleware[]): StoreMiddlew
11
11
  * Conditionally apply middleware based on a predicate or pattern(s).
12
12
  *
13
13
  * @overload Apply middleware when predicate returns true
14
- * @param predicate - Function that receives spec and returns whether to apply middleware
14
+ * @param predicate - Function that receives context and returns whether to apply middleware
15
15
  * @param middleware - Middleware or array of middleware to apply
16
16
  *
17
17
  * @overload Apply middleware for matching pattern(s)
18
- * @param patterns - Pattern or array of patterns to match spec names
18
+ * @param patterns - Pattern or array of patterns to match displayName
19
19
  * @param middleware - Middleware or array of middleware to apply
20
20
  *
21
21
  * Pattern types:
@@ -43,7 +43,7 @@ export declare function compose(...middlewares: StoreMiddleware[]): StoreMiddlew
43
43
  *
44
44
  * // Predicate function
45
45
  * applyFor(
46
- * (spec) => spec.options.meta?.persist === true,
46
+ * (ctx) => ctx.spec.options.meta?.persist === true,
47
47
  * persistMiddleware
48
48
  * );
49
49
  *
@@ -51,13 +51,13 @@ export declare function compose(...middlewares: StoreMiddleware[]): StoreMiddlew
51
51
  * applyFor("counterStore", [loggingMiddleware, devtoolsMiddleware]);
52
52
  * ```
53
53
  */
54
- export declare function applyFor(predicate: (spec: StoreSpec<any, any>) => boolean, middleware: StoreMiddleware | StoreMiddleware[]): StoreMiddleware;
54
+ export declare function applyFor(predicate: (ctx: StoreMiddlewareContext) => boolean, middleware: StoreMiddleware | StoreMiddleware[]): StoreMiddleware;
55
55
  export declare function applyFor(patterns: SpecPattern | SpecPattern[], middleware: StoreMiddleware | StoreMiddleware[]): StoreMiddleware;
56
56
  /**
57
57
  * Apply middleware to all stores except those matching predicate or pattern(s).
58
58
  *
59
59
  * @overload Exclude stores matching predicate
60
- * @param predicate - Function that receives spec and returns whether to exclude
60
+ * @param predicate - Function that receives context and returns whether to exclude
61
61
  * @param middleware - Middleware or array of middleware to apply
62
62
  *
63
63
  * @overload Exclude stores matching pattern(s)
@@ -68,7 +68,7 @@ export declare function applyFor(patterns: SpecPattern | SpecPattern[], middlewa
68
68
  * ```ts
69
69
  * // Exclude by predicate
70
70
  * applyExcept(
71
- * (spec) => spec.name.startsWith("_"),
71
+ * (ctx) => ctx.displayName.startsWith("_"),
72
72
  * loggingMiddleware
73
73
  * );
74
74
  *
@@ -83,6 +83,6 @@ export declare function applyFor(patterns: SpecPattern | SpecPattern[], middlewa
83
83
  * applyExcept(/^(temp|cache)/, persistMiddleware);
84
84
  * ```
85
85
  */
86
- export declare function applyExcept(predicate: (spec: StoreSpec<any, any>) => boolean, middleware: StoreMiddleware | StoreMiddleware[]): StoreMiddleware;
86
+ export declare function applyExcept(predicate: (ctx: StoreMiddlewareContext) => boolean, middleware: StoreMiddleware | StoreMiddleware[]): StoreMiddleware;
87
87
  export declare function applyExcept(patterns: SpecPattern | SpecPattern[], middleware: StoreMiddleware | StoreMiddleware[]): StoreMiddleware;
88
88
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/core/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAGV,SAAS,EACT,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB,2CAA2C;AAC3C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAwD1C;;;GAGG;AACH,wBAAgB,OAAO,CACrB,GAAG,WAAW,EAAE,eAAe,EAAE,GAChC,eAAe,CAqBjB;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,EACjD,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,eAAe,CAAC;AACnB,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,EACrC,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,eAAe,CAAC;AA+BnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,EACjD,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,eAAe,CAAC;AACnB,wBAAgB,WAAW,CACzB,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,EACrC,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,eAAe,CAAC"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/core/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EAIvB,MAAM,UAAU,CAAC;AAElB,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAwD1C;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,WAAW,EAAE,eAAe,EAAE,GAAG,eAAe,CA+B1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,OAAO,EACnD,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,eAAe,CAAC;AACnB,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,EACrC,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,eAAe,CAAC;AA0CnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,OAAO,EACnD,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,eAAe,CAAC;AACnB,wBAAgB,WAAW,CACzB,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,EACrC,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,QAAQ,EAKb,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAyBlB;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,MAAM,SAAS,SAAS,EAAE,QAAQ,SAAS,WAAW,EAC1E,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,GACtC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAgB7B;AAYD,0CAA0C;AAC1C,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,SAAS,SAAS,EACxB,QAAQ,SAAS,WAAW,EAE5B,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjC,QAAQ,EAAE,QAAQ,EAClB,eAAe,GAAE,0BAA+B,GAC/C,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CA0rBjC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,QAAQ,EAKb,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAyBlB;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,MAAM,SAAS,SAAS,EAAE,QAAQ,SAAS,WAAW,EAC1E,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,GACtC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAqB7B;AAYD,0CAA0C;AAC1C,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,SAAS,SAAS,EACxB,QAAQ,SAAS,WAAW,EAE5B,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjC,QAAQ,EAAE,QAAQ,EAClB,eAAe,GAAE,0BAA+B,GAC/C,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CA0rBjC"}
@@ -1,4 +1,4 @@
1
- import { e as emitter, c as createStoreInstance, S as STORION_TYPE } from "../store-XP2pujaJ.js";
1
+ import { e as emitter, c as createStoreInstance, S as STORION_TYPE } from "../store-Yv-9gPVf.js";
2
2
  let snapshotIdCounter = 0;
3
3
  let eventIdCounter = 0;
4
4
  const DEFAULT_MAX_EVENTS = 200;
@@ -157,65 +157,75 @@ function devtoolsMiddleware(options = {}) {
157
157
  const registerStore = controller._registerStore;
158
158
  const unregisterStore = controller._unregisterStore;
159
159
  const recordStateChange = controller._recordStateChange;
160
- return (spec, next) => {
161
- const originalSetup = spec.options.setup;
162
- const modifiedOptions = {
163
- ...spec.options,
164
- setup: (context) => {
165
- const originalActions = originalSetup(context);
166
- const devtoolsActions = {
167
- __revertState: (newState) => {
168
- context.update(() => newState);
169
- },
170
- __takeSnapshot: () => {
171
- }
172
- };
173
- return {
174
- ...originalActions,
175
- ...devtoolsActions
176
- };
177
- }
178
- };
179
- const modifiedSpec = function(resolver) {
180
- return createStoreInstance(modifiedSpec, resolver, {});
181
- };
182
- Object.defineProperties(modifiedSpec, {
183
- [STORION_TYPE]: { value: "store.spec", enumerable: false },
184
- name: { value: spec.name, enumerable: true, writable: false },
185
- options: { value: modifiedOptions, enumerable: true, writable: false }
186
- });
187
- const instance = next(modifiedSpec);
188
- registerStore({
189
- id: instance.id,
190
- name: spec.name,
191
- state: { ...instance.state },
192
- disposed: false,
193
- instance,
194
- createdAt: Date.now(),
195
- meta: spec.options.meta
196
- });
197
- let lastAction = null;
198
- const unsubscribeActions = instance.subscribe("@*", (event) => {
199
- const { next: next2 } = event;
200
- if (typeof next2.name === "string" && next2.name.startsWith("__")) return;
201
- lastAction = { name: next2.name, args: next2.args };
202
- });
203
- const unsubscribeState = instance.subscribe(() => {
204
- recordStateChange(
205
- instance.id,
206
- { ...instance.state },
207
- lastAction == null ? void 0 : lastAction.name,
208
- lastAction == null ? void 0 : lastAction.args
209
- );
210
- lastAction = null;
211
- });
212
- instance.onDispose(() => {
213
- unsubscribeActions();
214
- unsubscribeState();
215
- unregisterStore(instance.id);
216
- });
217
- return instance;
160
+ return (ctx) => {
161
+ const { spec, resolver } = ctx;
162
+ return handleStoreCreation(
163
+ spec,
164
+ resolver,
165
+ registerStore,
166
+ unregisterStore,
167
+ recordStateChange
168
+ );
169
+ };
170
+ }
171
+ function handleStoreCreation(spec, resolver, registerStore, unregisterStore, recordStateChange) {
172
+ const originalSetup = spec.options.setup;
173
+ const modifiedOptions = {
174
+ ...spec.options,
175
+ setup: (context) => {
176
+ const originalActions = originalSetup(context);
177
+ const devtoolsActions = {
178
+ __revertState: (newState) => {
179
+ context.update(() => newState);
180
+ },
181
+ __takeSnapshot: () => {
182
+ }
183
+ };
184
+ return {
185
+ ...originalActions,
186
+ ...devtoolsActions
187
+ };
188
+ }
189
+ };
190
+ const modifiedSpec = function(r) {
191
+ return createStoreInstance(modifiedSpec, r, {});
218
192
  };
193
+ Object.defineProperties(modifiedSpec, {
194
+ [STORION_TYPE]: { value: "store.spec", enumerable: false },
195
+ displayName: { value: spec.displayName, enumerable: true, writable: false },
196
+ options: { value: modifiedOptions, enumerable: true, writable: false }
197
+ });
198
+ const instance = modifiedSpec(resolver);
199
+ registerStore({
200
+ id: instance.id,
201
+ name: spec.displayName,
202
+ state: { ...instance.state },
203
+ disposed: false,
204
+ instance,
205
+ createdAt: Date.now(),
206
+ meta: spec.options.meta
207
+ });
208
+ let lastAction = null;
209
+ const unsubscribeActions = instance.subscribe("@*", (event) => {
210
+ const { next } = event;
211
+ if (typeof next.name === "string" && next.name.startsWith("__")) return;
212
+ lastAction = { name: next.name, args: next.args };
213
+ });
214
+ const unsubscribeState = instance.subscribe(() => {
215
+ recordStateChange(
216
+ instance.id,
217
+ { ...instance.state },
218
+ lastAction == null ? void 0 : lastAction.name,
219
+ lastAction == null ? void 0 : lastAction.args
220
+ );
221
+ lastAction = null;
222
+ });
223
+ instance.onDispose(() => {
224
+ unsubscribeActions();
225
+ unsubscribeState();
226
+ unregisterStore(instance.id);
227
+ });
228
+ return instance;
219
229
  }
220
230
  function getDevtoolsController() {
221
231
  if (typeof window !== "undefined") {
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/devtools/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,eAAe,EAKhB,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAE1B,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAA8B,GACtC,eAAe,CA+HjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,SAAS,CAKtE"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/devtools/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,eAAe,EAOhB,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EAE1B,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAA8B,GACtC,eAAe,CAiDjB;AAyGD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,SAAS,CAKtE"}
@@ -4,8 +4,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4
4
  import { memo, useMemo, createElement, createContext, useContext, useReducer, useRef, useEffect, useLayoutEffect, useState, forwardRef } from "react";
5
5
  import { container } from "../storion.js";
6
6
  import { applyExcept, applyFor, compose, createLoggingMiddleware, createResolver, createValidationMiddleware, effect, pick, trigger, when } from "../storion.js";
7
- import { w as withHooks, i as isSpec, S as STORION_TYPE, r as resolveEquality, s as store } from "../store-XP2pujaJ.js";
8
- import { m, p, n, g, a, j, d, h, l, f, k, b, x, o, q, u, v, t } from "../store-XP2pujaJ.js";
7
+ import { w as withHooks, i as isSpec, S as STORION_TYPE, r as resolveEquality, s as store } from "../store-Yv-9gPVf.js";
8
+ import { m, p, n, g, a, j, d, h, l, f, k, b, x, o, q, u, v, t } from "../store-Yv-9gPVf.js";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  const StoreContext = createContext(null);
11
11
  const StoreProvider = memo(
@@ -161,7 +161,7 @@ class LocalStoreController {
161
161
  if (depsCount > 0) {
162
162
  this.dispose();
163
163
  throw new Error(
164
- `Local store must not have dependencies, but "${this.spec.name}" has ${depsCount} dependencies. Use useStore() with a global container for stores with dependencies.`
164
+ `Local store must not have dependencies, but "${this.spec.displayName}" has ${depsCount} dependencies. Use useStore() with a global container for stores with dependencies.`
165
165
  );
166
166
  }
167
167
  if (shouldScheduleDispose) {
@@ -2210,13 +2210,17 @@ function collection(createItem, initialItems) {
2210
2210
  };
2211
2211
  }
2212
2212
  function store(options) {
2213
- const name = options.name ?? generateSpecName();
2213
+ const displayName = options.name ?? generateSpecName();
2214
2214
  const spec = function(resolver) {
2215
- return createStoreInstance(spec, resolver, {});
2215
+ return createStoreInstance(
2216
+ spec,
2217
+ resolver,
2218
+ {}
2219
+ );
2216
2220
  };
2217
2221
  Object.defineProperties(spec, {
2218
2222
  [STORION_TYPE]: { value: "store.spec", enumerable: false },
2219
- name: { value: name, enumerable: true, writable: false },
2223
+ displayName: { value: displayName, enumerable: true, writable: false },
2220
2224
  options: { value: options, enumerable: true, writable: false }
2221
2225
  });
2222
2226
  return spec;
@@ -2224,7 +2228,7 @@ function store(options) {
2224
2228
  function createStoreInstance(spec, resolver, instanceOptions = {}) {
2225
2229
  var _a;
2226
2230
  const options = spec.options;
2227
- const storeId = generateStoreId(spec.name);
2231
+ const storeId = generateStoreId(spec.displayName);
2228
2232
  let disposed = false;
2229
2233
  let currentState = { ...options.state };
2230
2234
  let initialState = currentState;
package/dist/storion.js CHANGED
@@ -1,5 +1,5 @@
1
- import { e as emitter, i as isSpec, S as STORION_TYPE, u as untrack, y as getHooks, w as withHooks, r as resolveEquality, z as scheduleNotification, v as unwrapFn, o as shallowEqual } from "./store-XP2pujaJ.js";
2
- import { m, p, n, g, a, j, d, h, l, f, k, b, x, s, q, t } from "./store-XP2pujaJ.js";
1
+ import { e as emitter, i as isSpec, S as STORION_TYPE, u as untrack, y as getHooks, w as withHooks, r as resolveEquality, z as scheduleNotification, v as unwrapFn, o as shallowEqual } from "./store-Yv-9gPVf.js";
2
+ import { m, p, n, g, a, j, d, h, l, f, k, b, x, s, q, t } from "./store-Yv-9gPVf.js";
3
3
  let defaultMiddlewareConfig = {};
4
4
  const container = function(options = {}) {
5
5
  const middleware = [
@@ -20,13 +20,25 @@ const container = function(options = {}) {
20
20
  const parent = options._parent;
21
21
  const resolve = (spec) => overrides.get(spec) ?? spec;
22
22
  function buildMiddlewareChain() {
23
- let chain = (spec, next) => next(spec);
24
- for (let i = middleware.length - 1; i >= 0; i--) {
25
- const currentMiddleware = middleware[i];
26
- const nextInChain = chain;
27
- chain = (spec, next) => currentMiddleware(spec, (s2) => nextInChain(s2, next));
28
- }
29
- return (spec) => chain(spec, (s2) => s2(containerApi));
23
+ return (spec) => {
24
+ let index = 0;
25
+ const executeNext = () => {
26
+ if (index >= middleware.length) {
27
+ return spec(containerApi);
28
+ }
29
+ const currentMiddleware = middleware[index];
30
+ index++;
31
+ const ctx = {
32
+ spec,
33
+ factory: spec,
34
+ resolver: containerApi,
35
+ next: executeNext,
36
+ displayName: spec.displayName
37
+ };
38
+ return currentMiddleware(ctx);
39
+ };
40
+ return executeNext();
41
+ };
30
42
  }
31
43
  const createWithMiddleware = buildMiddlewareChain();
32
44
  function createInstance(spec) {
@@ -89,7 +101,7 @@ const container = function(options = {}) {
89
101
  return parent.get(spec);
90
102
  }
91
103
  if (creating.has(spec)) {
92
- const name = spec.name ?? "unknown";
104
+ const name = spec.displayName ?? "unknown";
93
105
  throw new Error(
94
106
  `Circular dependency detected: "${name}" is being created while already in creation stack.`
95
107
  );
@@ -184,17 +196,31 @@ defaultsFn.clear = () => {
184
196
  defaultMiddlewareConfig = {};
185
197
  };
186
198
  container.defaults = defaultsFn;
199
+ function extractDisplayName(factory) {
200
+ if (isSpec(factory)) {
201
+ return factory.displayName;
202
+ }
203
+ if (typeof factory.displayName === "string" && factory.displayName) {
204
+ return factory.displayName;
205
+ }
206
+ if (factory.name && factory.name !== "") {
207
+ return factory.name;
208
+ }
209
+ return void 0;
210
+ }
187
211
  function createResolver(options = {}) {
188
212
  const { middleware = [], parent } = options;
189
213
  const cache2 = /* @__PURE__ */ new Map();
190
214
  const overrides = /* @__PURE__ */ new Map();
191
215
  const resolve = (factory) => overrides.get(factory) ?? factory;
192
216
  const invoke = (factory, resolver2) => {
217
+ const displayName = extractDisplayName(factory);
193
218
  const chain = middleware.reduceRight(
194
219
  (next, mw) => () => mw({
195
220
  factory,
196
221
  resolver: resolver2,
197
- next
222
+ next,
223
+ displayName
198
224
  }),
199
225
  () => factory(resolver2)
200
226
  );
@@ -233,9 +259,22 @@ function createResolver(options = {}) {
233
259
  return void 0;
234
260
  },
235
261
  delete(factory) {
236
- return cache2.delete(factory);
262
+ const instance = cache2.get(factory);
263
+ if (instance) {
264
+ if (instance && typeof instance === "object" && "dispose" in instance && typeof instance.dispose === "function") {
265
+ instance.dispose();
266
+ }
267
+ cache2.delete(factory);
268
+ return true;
269
+ }
270
+ return false;
237
271
  },
238
272
  clear() {
273
+ for (const instance of cache2.values()) {
274
+ if (instance && typeof instance === "object" && "dispose" in instance && typeof instance.dispose === "function") {
275
+ instance.dispose();
276
+ }
277
+ }
239
278
  cache2.clear();
240
279
  },
241
280
  scope(scopeOptions = {}) {
@@ -337,10 +376,16 @@ function pick(selector, equality) {
337
376
  });
338
377
  return currentValue;
339
378
  }
340
- function createEffectContext(nth, isStale) {
379
+ function isPromiseLike(value) {
380
+ return typeof value === "object" && value !== null && "then" in value && typeof value.then === "function";
381
+ }
382
+ function createEffectContext(nth) {
341
383
  let cleanupEmitter = null;
342
384
  let abortController = null;
385
+ let isStale = false;
343
386
  const runCleanups = () => {
387
+ if (isStale) return;
388
+ isStale = true;
344
389
  if (abortController) {
345
390
  abortController.abort();
346
391
  abortController = null;
@@ -349,6 +394,22 @@ function createEffectContext(nth, isStale) {
349
394
  cleanupEmitter.emitAndClearLifo();
350
395
  }
351
396
  };
397
+ function wrapPromise(promise) {
398
+ return new Promise((resolve, reject) => {
399
+ promise.then(
400
+ (value) => {
401
+ if (!isStale) {
402
+ resolve(value);
403
+ }
404
+ },
405
+ (error) => {
406
+ if (!isStale) {
407
+ reject(error);
408
+ }
409
+ }
410
+ );
411
+ });
412
+ }
352
413
  const context = {
353
414
  nth,
354
415
  get signal() {
@@ -365,24 +426,17 @@ function createEffectContext(nth, isStale) {
365
426
  },
366
427
  safe(promiseOrCallback) {
367
428
  if (promiseOrCallback instanceof Promise) {
368
- return new Promise((resolve, reject) => {
369
- promiseOrCallback.then(
370
- (value) => {
371
- if (!isStale()) {
372
- resolve(value);
373
- }
374
- },
375
- (error) => {
376
- if (!isStale()) {
377
- reject(error);
378
- }
379
- }
380
- );
381
- });
429
+ return wrapPromise(promiseOrCallback);
382
430
  }
383
431
  return (...args) => {
384
- if (!isStale()) {
385
- return promiseOrCallback(...args);
432
+ if (!isStale) {
433
+ const result = promiseOrCallback(
434
+ ...args
435
+ );
436
+ if (isPromiseLike(result)) {
437
+ return wrapPromise(result);
438
+ }
439
+ return result;
386
440
  }
387
441
  return void 0;
388
442
  };
@@ -525,11 +579,10 @@ function effect(fn, options) {
525
579
  }
526
580
  newTrackedDeps = /* @__PURE__ */ new Map();
527
581
  writtenProps.clear();
528
- const isStale = () => isDisposed || runGeneration !== currentGeneration;
529
582
  let lazyContext = null;
530
583
  const getOrCreateContext = () => {
531
584
  if (!lazyContext) {
532
- lazyContext = createEffectContext(currentGeneration, isStale);
585
+ lazyContext = createEffectContext(currentGeneration);
533
586
  }
534
587
  return lazyContext;
535
588
  };
@@ -619,41 +672,57 @@ function patternToPredicate(pattern) {
619
672
  function patternsToPredicate(patterns) {
620
673
  if (Array.isArray(patterns)) {
621
674
  const predicates = patterns.map(patternToPredicate);
622
- return (spec) => predicates.some((p2) => p2(spec.name));
675
+ return (ctx) => predicates.some((p2) => p2(ctx.displayName));
623
676
  }
624
677
  const predicate = patternToPredicate(patterns);
625
- return (spec) => predicate(spec.name);
678
+ return (ctx) => predicate(ctx.displayName);
626
679
  }
627
680
  function compose(...middlewares) {
628
681
  if (middlewares.length === 0) {
629
- return (spec, next) => next(spec);
682
+ return (ctx) => ctx.next();
630
683
  }
631
684
  if (middlewares.length === 1) {
632
685
  return middlewares[0];
633
686
  }
634
- return (spec, next) => {
635
- let chain = next;
636
- for (let i = middlewares.length - 1; i >= 0; i--) {
637
- const middleware = middlewares[i];
638
- const prevChain = chain;
639
- chain = (s2) => middleware(s2, prevChain);
640
- }
641
- return chain(spec);
687
+ return (ctx) => {
688
+ let index = 0;
689
+ const executeNext = () => {
690
+ if (index >= middlewares.length) {
691
+ return ctx.next();
692
+ }
693
+ const currentMiddleware = middlewares[index];
694
+ index++;
695
+ const wrappedCtx = {
696
+ ...ctx,
697
+ next: executeNext
698
+ };
699
+ return currentMiddleware(wrappedCtx);
700
+ };
701
+ return executeNext();
642
702
  };
643
703
  }
644
704
  function applyFor(predicateOrPatterns, middleware) {
645
705
  const predicate = typeof predicateOrPatterns === "function" ? predicateOrPatterns : patternsToPredicate(predicateOrPatterns);
646
706
  const composedMiddleware = Array.isArray(middleware) ? compose(...middleware) : middleware;
647
- return (spec, next) => {
648
- if (predicate(spec)) {
649
- return composedMiddleware(spec, next);
707
+ return (ctx) => {
708
+ if (isSpec(ctx.factory)) {
709
+ const spec = ctx.factory;
710
+ const storeMiddlewareCtx = {
711
+ ...ctx,
712
+ spec
713
+ };
714
+ if (predicate(storeMiddlewareCtx)) {
715
+ return composedMiddleware(
716
+ storeMiddlewareCtx
717
+ );
718
+ }
650
719
  }
651
- return next(spec);
720
+ return ctx.next();
652
721
  };
653
722
  }
654
723
  function applyExcept(predicateOrPatterns, middleware) {
655
724
  const matchPredicate = typeof predicateOrPatterns === "function" ? predicateOrPatterns : patternsToPredicate(predicateOrPatterns);
656
- const invertedPredicate = (spec) => !matchPredicate(spec);
725
+ const invertedPredicate = (ctx) => !matchPredicate(ctx);
657
726
  return applyFor(invertedPredicate, middleware);
658
727
  }
659
728
  const DEFAULT_KEY = {};
package/dist/types.d.ts CHANGED
@@ -237,8 +237,8 @@ export type ReactiveActions<TActions extends ActionsBase> = {
237
237
  * ```
238
238
  */
239
239
  export interface StoreSpec<TState extends StateBase = StateBase, TActions extends ActionsBase = ActionsBase> extends StorionObject<"store.spec"> {
240
- /** Store name for debugging */
241
- readonly name: string;
240
+ /** Store display name for debugging (renamed from 'name' since that's a reserved function property) */
241
+ readonly displayName: string;
242
242
  /** Store options (state, setup, lifetime, etc.) */
243
243
  readonly options: StoreOptions<TState, TActions>;
244
244
  /**
@@ -666,32 +666,6 @@ export interface StoreInstance<TState extends StateBase = StateBase, TActions ex
666
666
  */
667
667
  _subscribeInternal<K extends keyof TState>(propKey: K | string, listener: () => void): VoidFunction;
668
668
  }
669
- /**
670
- * Middleware function for intercepting store creation.
671
- *
672
- * Middleware can:
673
- * - Modify the spec before creation
674
- * - Call next() to get the instance
675
- * - Wrap or modify the instance after creation
676
- *
677
- * @example
678
- * // Logging middleware
679
- * const loggingMiddleware: StoreMiddleware = (spec, next) => {
680
- * console.log(`Creating store: ${spec.name}`);
681
- * const instance = next(spec);
682
- * console.log(`Created store: ${instance.id}`);
683
- * return instance;
684
- * };
685
- *
686
- * @example
687
- * // Wrap actions with error boundary
688
- * const errorBoundaryMiddleware: StoreMiddleware = (spec, next) => {
689
- * const instance = next(spec);
690
- * // Wrap actions here if needed
691
- * return instance;
692
- * };
693
- */
694
- export type StoreMiddleware = <S extends StateBase = StateBase, A extends ActionsBase = ActionsBase>(spec: StoreSpec<S, A>, next: (spec: StoreSpec<S, A>) => StoreInstance<S, A>) => StoreInstance<S, A>;
695
669
  /**
696
670
  * Container options.
697
671
  */
@@ -709,38 +683,63 @@ export interface ContainerOptions {
709
683
  */
710
684
  export type Factory<T = any> = (resolver: Resolver) => T;
711
685
  /**
712
- * Context passed to resolver middleware functions.
686
+ * Context passed to generic middleware functions (for any factory).
713
687
  */
714
688
  export interface MiddlewareContext<T = any> {
715
- /** The factory being invoked */
689
+ /** The factory being invoked (StoreSpec or plain factory) */
716
690
  readonly factory: Factory<T>;
717
691
  /** The resolver instance */
718
692
  readonly resolver: Resolver;
719
693
  /** Call the next middleware or the factory itself */
720
694
  readonly next: () => T;
695
+ /**
696
+ * Display name for debugging.
697
+ * - For stores: spec.displayName
698
+ * - For factories: factory.displayName ?? factory.name ?? undefined
699
+ */
700
+ readonly displayName: string | undefined;
721
701
  }
722
702
  /**
723
- * Resolver middleware function that can intercept factory creation.
703
+ * Context passed to store middleware functions.
704
+ * Unlike MiddlewareContext, `spec` is always present.
705
+ */
706
+ export interface StoreMiddlewareContext<S extends StateBase = StateBase, A extends ActionsBase = ActionsBase> extends MiddlewareContext<StoreInstance<S, A>> {
707
+ /** The store spec being invoked */
708
+ readonly spec: StoreSpec<S, A>;
709
+ /** Store display name (always present for stores) */
710
+ readonly displayName: string;
711
+ }
712
+ /**
713
+ * Generic middleware function for intercepting any factory creation.
714
+ * Use for resolver middleware that handles both stores and plain factories.
724
715
  *
725
716
  * @example
726
717
  * ```ts
727
718
  * const loggingMiddleware: Middleware = (ctx) => {
728
- * console.log("Creating:", ctx.factory.name);
729
- * const result = ctx.next();
730
- * console.log("Created:", result);
731
- * return result;
732
- * };
733
- *
734
- * // Type-specific middleware using is() guards
735
- * const storeMiddleware: Middleware = (ctx) => {
736
- * if (is(ctx.factory, "store.spec")) {
737
- * // Apply store-specific logic
719
+ * if (ctx.displayName) {
720
+ * console.log("Creating:", ctx.displayName);
738
721
  * }
739
722
  * return ctx.next();
740
723
  * };
741
724
  * ```
742
725
  */
743
726
  export type Middleware = <T>(ctx: MiddlewareContext<T>) => T;
727
+ /**
728
+ * Store-specific middleware function.
729
+ * Use for container middleware where you always work with stores.
730
+ * The context always has `spec` available.
731
+ *
732
+ * @example
733
+ * ```ts
734
+ * const loggingMiddleware: StoreMiddleware = (ctx) => {
735
+ * console.log(`Creating store: ${ctx.displayName}`);
736
+ * const instance = ctx.next();
737
+ * console.log(`Created: ${instance.id}`);
738
+ * return instance;
739
+ * };
740
+ * ```
741
+ */
742
+ export type StoreMiddleware = <S extends StateBase = StateBase, A extends ActionsBase = ActionsBase>(ctx: StoreMiddlewareContext<S, A>) => StoreInstance<S, A>;
744
743
  /**
745
744
  * Options for creating a resolver.
746
745
  */
@@ -783,11 +782,13 @@ export interface Resolver {
783
782
  tryGet<T>(factory: Factory<T>): T | undefined;
784
783
  /**
785
784
  * Delete a cached instance.
785
+ * If the instance has a `dispose()` method, it will be called.
786
786
  * Returns true if an instance was deleted.
787
787
  */
788
788
  delete(factory: Factory): boolean;
789
789
  /**
790
790
  * Clear all cached instances.
791
+ * Calls `dispose()` on each instance that has the method.
791
792
  */
792
793
  clear(): void;
793
794
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storion",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Reactive stores for modern apps. Type-safe. Auto-tracked. Effortlessly composable",
5
5
  "type": "module",
6
6
  "main": "./dist/storion.js",