storion 0.8.2 → 0.8.3
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/CHANGELOG.md +8 -0
- package/dist/core/middleware.d.ts +13 -0
- package/dist/core/middleware.d.ts.map +1 -1
- package/dist/{index-BsdNVe8q.js → index-C8B6Mo8r.js} +17 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/react/index.js +2 -2
- package/dist/storion.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -26,6 +26,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
26
26
|
save: (ctx, state) => sessionStorage.setItem(ctx.displayName, JSON.stringify(state)),
|
|
27
27
|
})
|
|
28
28
|
```
|
|
29
|
+
- `applyFor` now supports object form to map patterns to different middleware
|
|
30
|
+
```ts
|
|
31
|
+
applyFor({
|
|
32
|
+
"userStore": loggingMiddleware,
|
|
33
|
+
"auth*": [authMiddleware, securityMiddleware],
|
|
34
|
+
"*Cache": cacheMiddleware,
|
|
35
|
+
})
|
|
36
|
+
```
|
|
29
37
|
|
|
30
38
|
---
|
|
31
39
|
|
|
@@ -2,6 +2,8 @@ import { Middleware, MiddlewareContext, StoreMiddleware } from '../types';
|
|
|
2
2
|
|
|
3
3
|
/** Pattern type for matching displayName */
|
|
4
4
|
export type SpecPattern = string | RegExp;
|
|
5
|
+
/** Mapping of patterns to middleware */
|
|
6
|
+
export type MiddlewareMap = Record<string, StoreMiddleware | StoreMiddleware[]>;
|
|
5
7
|
/**
|
|
6
8
|
* Conditionally apply middleware based on a predicate or pattern(s).
|
|
7
9
|
*
|
|
@@ -13,6 +15,9 @@ export type SpecPattern = string | RegExp;
|
|
|
13
15
|
* @param patterns - Pattern or array of patterns to match displayName
|
|
14
16
|
* @param middleware - Middleware or array of middleware to apply
|
|
15
17
|
*
|
|
18
|
+
* @overload Apply different middleware for different patterns (object form)
|
|
19
|
+
* @param middlewareMap - Object mapping patterns to middleware
|
|
20
|
+
*
|
|
16
21
|
* Pattern types:
|
|
17
22
|
* - `"userStore"` - exact match
|
|
18
23
|
* - `"user*"` - startsWith
|
|
@@ -44,10 +49,18 @@ export type SpecPattern = string | RegExp;
|
|
|
44
49
|
*
|
|
45
50
|
* // Multiple middleware
|
|
46
51
|
* applyFor("counterStore", [loggingMiddleware, devtoolsMiddleware]);
|
|
52
|
+
*
|
|
53
|
+
* // Object form - map patterns to middleware
|
|
54
|
+
* applyFor({
|
|
55
|
+
* "userStore": loggingMiddleware,
|
|
56
|
+
* "auth*": [authMiddleware, securityMiddleware],
|
|
57
|
+
* "*Cache": cacheMiddleware,
|
|
58
|
+
* });
|
|
47
59
|
* ```
|
|
48
60
|
*/
|
|
49
61
|
export declare function applyFor(predicate: (ctx: MiddlewareContext) => boolean, middleware: Middleware | Middleware[]): Middleware;
|
|
50
62
|
export declare function applyFor(patterns: SpecPattern | SpecPattern[], middleware: StoreMiddleware | StoreMiddleware[]): Middleware;
|
|
63
|
+
export declare function applyFor(middlewareMap: MiddlewareMap): Middleware;
|
|
51
64
|
/**
|
|
52
65
|
* Apply middleware to all except those matching predicate or pattern(s).
|
|
53
66
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/core/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,UAAU,EACV,iBAAiB,EACjB,eAAe,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/core/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,UAAU,EACV,iBAAiB,EACjB,eAAe,EAEhB,MAAM,UAAU,CAAC;AAElB,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AA8F1C,wCAAwC;AACxC,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,EAC9C,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,GACpC,UAAU,CAAC;AACd,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,EACrC,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,GAC9C,UAAU,CAAC;AACd,wBAAgB,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,UAAU,CAAC;AAwDnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,EAC9C,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,GACpC,UAAU,CAAC;AACd,wBAAgB,WAAW,CACzB,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,EACrC,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,GACpC,UAAU,CAAC;AAmBd;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,eAAe,EAAE,eAAe,GAAG,eAAe,EAAE,GACnD,UAAU,CAWZ"}
|
|
@@ -2868,8 +2868,23 @@ function compose(...middlewares) {
|
|
|
2868
2868
|
return executeNext();
|
|
2869
2869
|
};
|
|
2870
2870
|
}
|
|
2871
|
-
function applyFor(
|
|
2872
|
-
|
|
2871
|
+
function applyFor(predicateOrPatternsOrMap, middleware) {
|
|
2872
|
+
if (typeof predicateOrPatternsOrMap === "object" && !Array.isArray(predicateOrPatternsOrMap) && !(predicateOrPatternsOrMap instanceof RegExp)) {
|
|
2873
|
+
const entries = Object.entries(predicateOrPatternsOrMap);
|
|
2874
|
+
const pairs = entries.map(([pattern, mw]) => ({
|
|
2875
|
+
predicate: patternsToPredicate(pattern),
|
|
2876
|
+
middleware: Array.isArray(mw) ? compose(...mw) : mw
|
|
2877
|
+
}));
|
|
2878
|
+
return (ctx) => {
|
|
2879
|
+
for (const { predicate: predicate2, middleware: middleware2 } of pairs) {
|
|
2880
|
+
if (predicate2(ctx)) {
|
|
2881
|
+
return middleware2(ctx);
|
|
2882
|
+
}
|
|
2883
|
+
}
|
|
2884
|
+
return ctx.next();
|
|
2885
|
+
};
|
|
2886
|
+
}
|
|
2887
|
+
const predicate = typeof predicateOrPatternsOrMap === "function" ? predicateOrPatternsOrMap : patternsToPredicate(predicateOrPatternsOrMap);
|
|
2873
2888
|
const composedMiddleware = Array.isArray(middleware) ? compose(...middleware) : middleware;
|
|
2874
2889
|
return (ctx) => {
|
|
2875
2890
|
if (predicate(ctx)) {
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { batch, untrack } from './core/tracking';
|
|
|
11
11
|
export { createResolver } from './core/createResolver';
|
|
12
12
|
export { pick } from './core/pick';
|
|
13
13
|
export { effect, type EffectFn, type EffectContext, type EffectOptions, type EffectErrorStrategy, type EffectErrorContext, type EffectRetryConfig, } from './core/effect';
|
|
14
|
-
export { applyFor, applyExcept, forStores, type SpecPattern, } from './core/middleware';
|
|
14
|
+
export { applyFor, applyExcept, forStores, type SpecPattern, type MiddlewareMap, } from './core/middleware';
|
|
15
15
|
export { equality, shallowEqual, deepEqual, strictEqual, } from './core/equality';
|
|
16
16
|
export { trigger, type TriggerOptions } from './trigger';
|
|
17
17
|
export { wrapFn as wrapFn, unwrapFn, isWrappedFn } from './core/fnWrapper';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEf,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,eAAe,EAEpB,KAAK,QAAQ,EACb,KAAK,QAAQ,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,EAAE,EACF,SAAS,EACT,OAAO,EACP,MAAM,EACN,WAAW,EACX,OAAO,EACP,OAAO,EACP,QAAQ,EACR,cAAc,EACd,iBAAiB,GAClB,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EACL,MAAM,EACN,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEf,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,eAAe,EAEpB,KAAK,QAAQ,EACb,KAAK,QAAQ,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,EAAE,EACF,SAAS,EACT,OAAO,EACP,MAAM,EACN,WAAW,EACX,OAAO,EACP,OAAO,EACP,QAAQ,EACR,cAAc,EACd,iBAAiB,GAClB,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EACL,MAAM,EACN,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAGzD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG3E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/react/index.js
CHANGED
|
@@ -2,8 +2,8 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
import { memo, useRef, useMemo, createElement, createContext, useContext, useReducer, useEffect, useLayoutEffect, useState, forwardRef } from "react";
|
|
5
|
-
import { c as container, i as isSpec, S as STORION_TYPE, r as resolveEquality, s as store } from "../index-
|
|
6
|
-
import { n, m, l, u, q, o, g, a, h, d, f, k, e, j, b, z, p, t, v, w, y, A, x } from "../index-
|
|
5
|
+
import { c as container, i as isSpec, S as STORION_TYPE, r as resolveEquality, s as store } from "../index-C8B6Mo8r.js";
|
|
6
|
+
import { n, m, l, u, q, o, g, a, h, d, f, k, e, j, b, z, p, t, v, w, y, A, x } from "../index-C8B6Mo8r.js";
|
|
7
7
|
import { P as ProviderMissingError, L as LocalStoreDependencyError, w as withHooks, A as AsyncFunctionError } from "../effect-C6h0PDDI.js";
|
|
8
8
|
import { E, H, I, c, a as a2, d as d2, S, b as b2, e as e2, u as u2 } from "../effect-C6h0PDDI.js";
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
package/dist/storion.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S, n, m, c, l, u, q, o, g, a, h, d, f, k, i, e, j, b, z, p, t, s, v, w, y, A, x } from "./index-
|
|
1
|
+
import { S, n, m, c, l, u, q, o, g, a, h, d, f, k, i, e, j, b, z, p, t, s, v, w, y, A, x } from "./index-C8B6Mo8r.js";
|
|
2
2
|
import { A as A2, E, H, I, c as c2, L, P, a as a2, d as d2, S as S2, b as b2, e as e2, u as u2 } from "./effect-C6h0PDDI.js";
|
|
3
3
|
import { m as m2 } from "./meta-40r-AZfe.js";
|
|
4
4
|
export {
|