storion 0.2.1 → 0.2.2
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 +20 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -566,31 +566,38 @@ const { count } = useCounter((state, actions) => ({ count: state.count }));
|
|
|
566
566
|
### Middleware
|
|
567
567
|
|
|
568
568
|
```ts
|
|
569
|
-
import { applyFor, applyExcept
|
|
569
|
+
import { applyFor, applyExcept } from "storion";
|
|
570
|
+
|
|
571
|
+
// Just pass an array of middleware
|
|
572
|
+
container({ middleware: [logger, devtools, persist] });
|
|
570
573
|
|
|
571
574
|
// Conditional middleware
|
|
572
|
-
applyFor("user*", logger); // Wildcard match
|
|
573
|
-
applyFor(/Store$/, [logger, devtools]); // RegExp match
|
|
574
|
-
applyFor((spec) => spec.meta?.persist, persistMiddleware); // Predicate
|
|
575
|
+
const conditionalLogger = applyFor("user*", logger); // Wildcard match
|
|
576
|
+
const multiMiddleware = applyFor(/Store$/, [logger, devtools]); // RegExp match
|
|
577
|
+
const persistOnly = applyFor((spec) => spec.meta?.persist, persistMiddleware); // Predicate
|
|
575
578
|
|
|
576
579
|
// Exclude middleware
|
|
577
|
-
applyExcept("_internal*", logger);
|
|
578
|
-
|
|
579
|
-
// Compose multiple
|
|
580
|
-
const combined = compose(logger, devtools, persist);
|
|
580
|
+
const noInternalLogging = applyExcept("_internal*", logger);
|
|
581
581
|
|
|
582
|
-
//
|
|
583
|
-
container({ middleware: [
|
|
582
|
+
// Combine them
|
|
583
|
+
container({ middleware: [conditionalLogger, persistOnly, noInternalLogging] });
|
|
584
584
|
```
|
|
585
585
|
|
|
586
586
|
### Middleware Signature
|
|
587
587
|
|
|
588
588
|
```ts
|
|
589
589
|
type StoreMiddleware = (
|
|
590
|
-
instance: StoreInstance,
|
|
591
590
|
spec: StoreSpec,
|
|
592
|
-
|
|
593
|
-
) =>
|
|
591
|
+
next: (spec: StoreSpec) => StoreInstance
|
|
592
|
+
) => StoreInstance;
|
|
593
|
+
|
|
594
|
+
// Example: logging middleware
|
|
595
|
+
const logger: StoreMiddleware = (spec, next) => {
|
|
596
|
+
console.log(`Creating store: ${spec.name}`);
|
|
597
|
+
const instance = next(spec); // Call next to create the instance
|
|
598
|
+
console.log(`Created: ${instance.id}`);
|
|
599
|
+
return instance;
|
|
600
|
+
};
|
|
594
601
|
```
|
|
595
602
|
|
|
596
603
|
---
|