effectable 1.0.0 → 1.1.0-canary.10
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 +9 -3
- package/build/bootstrap/bootstrap.d.ts.map +1 -1
- package/build/bootstrap/bootstrap.js +18 -8
- package/build/bootstrap/bootstrap.js.map +1 -1
- package/build/bootstrap/types.d.ts +11 -3
- package/build/bootstrap/types.d.ts.map +1 -1
- package/build/component/Component.d.ts.map +1 -1
- package/build/component/Component.js +16 -4
- package/build/component/Component.js.map +1 -1
- package/build/component/GraphRuntime.d.ts +254 -24
- package/build/component/GraphRuntime.d.ts.map +1 -1
- package/build/component/GraphRuntime.js +1136 -239
- package/build/component/GraphRuntime.js.map +1 -1
- package/build/component/context.d.ts +3 -11
- package/build/component/context.d.ts.map +1 -1
- package/build/component/context.js +24 -23
- package/build/component/context.js.map +1 -1
- package/build/component/h.d.ts +14 -6
- package/build/component/h.d.ts.map +1 -1
- package/build/component/h.js +19 -1
- package/build/component/h.js.map +1 -1
- package/build/component/lifecycle.d.ts +11 -2
- package/build/component/lifecycle.d.ts.map +1 -1
- package/build/component/lifecycle.js +21 -4
- package/build/component/lifecycle.js.map +1 -1
- package/build/component/refs.d.ts +7 -5
- package/build/component/refs.d.ts.map +1 -1
- package/build/component/refs.js +45 -22
- package/build/component/refs.js.map +1 -1
- package/build/component/types.d.ts +16 -5
- package/build/component/types.d.ts.map +1 -1
- package/build/component/types.js.map +1 -1
- package/build/connect/connect.d.ts.map +1 -1
- package/build/connect/connect.js +143 -44
- package/build/connect/connect.js.map +1 -1
- package/build/connect/types.d.ts +2 -2
- package/build/connect/types.d.ts.map +1 -1
- package/build/runtime/BusDecorators.d.ts +6 -0
- package/build/runtime/BusDecorators.d.ts.map +1 -1
- package/build/runtime/BusDecorators.js +126 -56
- package/build/runtime/BusDecorators.js.map +1 -1
- package/build/runtime/CommandBus.d.ts +1 -1
- package/build/runtime/CommandBus.d.ts.map +1 -1
- package/build/runtime/CommandBus.js +6 -3
- package/build/runtime/CommandBus.js.map +1 -1
- package/build/runtime/EventBus.d.ts.map +1 -1
- package/build/runtime/EventBus.js +11 -3
- package/build/runtime/EventBus.js.map +1 -1
- package/build/runtime/HandleRegistry.d.ts +2 -1
- package/build/runtime/HandleRegistry.d.ts.map +1 -1
- package/build/runtime/HandleRegistry.js +38 -7
- package/build/runtime/HandleRegistry.js.map +1 -1
- package/build/runtime/QueryBus.d.ts +1 -1
- package/build/runtime/QueryBus.d.ts.map +1 -1
- package/build/runtime/QueryBus.js +6 -3
- package/build/runtime/QueryBus.js.map +1 -1
- package/build/store/createStore.d.ts +2 -2
- package/build/store/createStore.d.ts.map +1 -1
- package/build/store/createStore.js +31 -4
- package/build/store/createStore.js.map +1 -1
- package/build/store/middleware.d.ts +16 -1
- package/build/store/middleware.d.ts.map +1 -1
- package/build/store/middleware.js +28 -16
- package/build/store/middleware.js.map +1 -1
- package/build/store/selector.d.ts.map +1 -1
- package/build/store/selector.js +6 -2
- package/build/store/selector.js.map +1 -1
- package/build/store/types.d.ts +11 -4
- package/build/store/types.d.ts.map +1 -1
- package/build/store/types.js.map +1 -1
- package/package.json +10 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Redux Store Creator with RxJS Support
|
|
3
3
|
*
|
|
4
|
-
* Implements createStore
|
|
5
|
-
*
|
|
4
|
+
* Implements createStore with strict Redux v4 compatibility
|
|
5
|
+
* plus reactive RxJS extensions (state$, select).
|
|
6
6
|
*
|
|
7
7
|
* @module Effectable/store/createStore
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStore.d.ts","sourceRoot":"","sources":["../../src/store/createStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAY,MAAM,SAAS,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAC7C,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,YAAY,EAAE,CAAC,EACf,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"createStore.d.ts","sourceRoot":"","sources":["../../src/store/createStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAY,MAAM,SAAS,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAC7C,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,YAAY,EAAE,CAAC,EACf,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAyJb"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Redux Store Creator with RxJS Support
|
|
4
4
|
*
|
|
5
|
-
* Implements createStore
|
|
6
|
-
*
|
|
5
|
+
* Implements createStore with strict Redux v4 compatibility
|
|
6
|
+
* plus reactive RxJS extensions (state$, select).
|
|
7
7
|
*
|
|
8
8
|
* @module Effectable/store/createStore
|
|
9
9
|
*/
|
|
@@ -46,6 +46,8 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
46
46
|
const state$ = new rxjs_1.BehaviorSubject(initialState);
|
|
47
47
|
// Flag to prevent dispatch while a reducer is running
|
|
48
48
|
let isDispatching = false;
|
|
49
|
+
// Flag to track if the store has been destroyed
|
|
50
|
+
let isDestroyed = false;
|
|
49
51
|
/**
|
|
50
52
|
* Base dispatch without middleware
|
|
51
53
|
*
|
|
@@ -56,10 +58,24 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
56
58
|
* @returns The same action
|
|
57
59
|
*/
|
|
58
60
|
function dispatch(action) {
|
|
59
|
-
//
|
|
61
|
+
// Guard: store has been destroyed
|
|
62
|
+
if (isDestroyed) {
|
|
63
|
+
throw new Error('Cannot dispatch an action after the store has been destroyed.');
|
|
64
|
+
}
|
|
65
|
+
// Action validation - strict plain object check (Redux-compatible)
|
|
60
66
|
if (typeof action !== 'object' || action === null) {
|
|
61
67
|
throw new Error('Actions must be plain objects. Use custom middleware for async actions.');
|
|
62
68
|
}
|
|
69
|
+
// Reject arrays (typeof [] === 'object' but not a plain object)
|
|
70
|
+
if (Array.isArray(action)) {
|
|
71
|
+
throw new Error('Actions must be plain objects. Use custom middleware for async actions.');
|
|
72
|
+
}
|
|
73
|
+
// Reject class instances and Object.create(null) (strict Redux v4 behavior)
|
|
74
|
+
// Real Redux only accepts objects with Object.prototype
|
|
75
|
+
const proto = Object.getPrototypeOf(action);
|
|
76
|
+
if (proto !== Object.prototype) {
|
|
77
|
+
throw new Error('Actions must be plain objects. Use custom middleware for async actions.');
|
|
78
|
+
}
|
|
63
79
|
if (typeof action.type === 'undefined') {
|
|
64
80
|
throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');
|
|
65
81
|
}
|
|
@@ -74,6 +90,11 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
74
90
|
const currentState = state$.getValue();
|
|
75
91
|
// Call reducer to get the new state
|
|
76
92
|
newState = reducer(currentState, action);
|
|
93
|
+
// Redux-compatible: reject undefined state from reducer
|
|
94
|
+
if (typeof newState === 'undefined') {
|
|
95
|
+
throw new Error(`Reducer returned undefined when handling action "${action.type}". ` +
|
|
96
|
+
'To ignore an action, you must explicitly return the previous state.');
|
|
97
|
+
}
|
|
77
98
|
}
|
|
78
99
|
finally {
|
|
79
100
|
// Important: reset the flag before notifying subscribers
|
|
@@ -89,7 +110,12 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
89
110
|
*
|
|
90
111
|
* @returns Current Store state
|
|
91
112
|
*/
|
|
92
|
-
const getState = () =>
|
|
113
|
+
const getState = () => {
|
|
114
|
+
if (isDestroyed) {
|
|
115
|
+
throw new Error('Cannot access state after the store has been destroyed.');
|
|
116
|
+
}
|
|
117
|
+
return state$.getValue();
|
|
118
|
+
};
|
|
93
119
|
/**
|
|
94
120
|
* Universal select method for applying selectors
|
|
95
121
|
*
|
|
@@ -118,6 +144,7 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
118
144
|
* store.destroy();
|
|
119
145
|
*/
|
|
120
146
|
const destroy = () => {
|
|
147
|
+
isDestroyed = true;
|
|
121
148
|
state$.complete();
|
|
122
149
|
};
|
|
123
150
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStore.js","sourceRoot":"","sources":["../../src/store/createStore.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA+BH,
|
|
1
|
+
{"version":3,"file":"createStore.js","sourceRoot":"","sources":["../../src/store/createStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,27 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module Effectable/store/middleware
|
|
9
9
|
*/
|
|
10
|
+
import { Action, MiddlewareAPI, MiddlewareInput, StoreEnhancer } from './types';
|
|
11
|
+
/**
|
|
12
|
+
* Dispatch-shaped function used to type the wrap-mode chain.
|
|
13
|
+
* Method-syntax bivariance lets {@link DispatchMethod} satisfy this type under
|
|
14
|
+
* `strictFunctionTypes`, so wrap-mode `D extends DispatchFn` typechecks without `as`.
|
|
15
|
+
*/
|
|
16
|
+
type DispatchFn = {
|
|
17
|
+
bivarianceHack(action: unknown): unknown | Promise<unknown>;
|
|
18
|
+
}['bivarianceHack'];
|
|
10
19
|
/**
|
|
11
20
|
* Supports two modes:
|
|
12
21
|
* 1. `applyMiddleware(api, rawDispatch, ...middlewares)` — wrap an existing dispatch
|
|
13
22
|
* 2. `applyMiddleware(...middlewares)` — legacy enhancer-style for compatibility
|
|
14
23
|
* 3. Middleware may arrive as default-export functions from slice modules.
|
|
24
|
+
*
|
|
25
|
+
* Wrap-mode overload is first so `applyMiddleware(api, rawDispatch, ...)` is not
|
|
26
|
+
* parsed as enhancer-style rest middlewares.
|
|
15
27
|
*/
|
|
16
|
-
export declare function applyMiddleware(...
|
|
28
|
+
export declare function applyMiddleware<S, D extends DispatchFn>(api: MiddlewareAPI<D, S>, rawDispatch: D, ...middlewares: unknown[]): D;
|
|
29
|
+
export declare function applyMiddleware(): StoreEnhancer;
|
|
30
|
+
export declare function applyMiddleware<S = unknown, A extends Action = Action>(...middlewares: Array<MiddlewareInput<unknown, S>>): StoreEnhancer<S, A>;
|
|
17
31
|
/**
|
|
18
32
|
* Compose function for function composition
|
|
19
33
|
*
|
|
@@ -35,4 +49,5 @@ export declare function applyMiddleware(...args: unknown[]): unknown;
|
|
|
35
49
|
* Rarely needed for external use.
|
|
36
50
|
*/
|
|
37
51
|
export declare function compose<T>(...funcs: Array<(arg: T) => T>): (arg: T) => T;
|
|
52
|
+
export {};
|
|
38
53
|
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/store/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/store/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAA4B,aAAa,EAAE,eAAe,EAAyB,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjI;;;;GAIG;AACH,KAAK,UAAU,GAAG;IAChB,cAAc,CAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D,CAAC,gBAAgB,CAAC,CAAC;AA2DpB;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACrD,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,WAAW,EAAE,CAAC,EACd,GAAG,WAAW,EAAE,OAAO,EAAE,GACxB,CAAC,CAAC;AACL,wBAAgB,eAAe,IAAK,aAAa,CAAC;AAClD,wBAAgB,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EACpE,GAAG,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GACjD,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AA+BvB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAG,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAiBzE"}
|
|
@@ -11,6 +11,13 @@
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.applyMiddleware = applyMiddleware;
|
|
13
13
|
exports.compose = compose;
|
|
14
|
+
const types_1 = require("./types");
|
|
15
|
+
function hasGetState(value) {
|
|
16
|
+
return typeof value === 'object' && value !== null && 'getState' in value;
|
|
17
|
+
}
|
|
18
|
+
function isWrapModeArgs(args) {
|
|
19
|
+
return args.length > 1 && hasGetState(args[0]);
|
|
20
|
+
}
|
|
14
21
|
/**
|
|
15
22
|
* Normalizes middleware: a function or a default-export module `{ default: fn }`.
|
|
16
23
|
*
|
|
@@ -18,12 +25,12 @@ exports.compose = compose;
|
|
|
18
25
|
* @returns {Middleware<unknown, S, D>}
|
|
19
26
|
*/
|
|
20
27
|
function coerceMiddleware(middleware) {
|
|
21
|
-
if (
|
|
28
|
+
if ((0, types_1.isMiddleware)(middleware)) {
|
|
22
29
|
return middleware;
|
|
23
30
|
}
|
|
24
31
|
if (typeof middleware === 'object' && middleware !== null && Object.hasOwn(middleware, 'default')) {
|
|
25
32
|
const defaultExport = Reflect.get(middleware, 'default');
|
|
26
|
-
if (
|
|
33
|
+
if ((0, types_1.isMiddleware)(defaultExport)) {
|
|
27
34
|
return defaultExport;
|
|
28
35
|
}
|
|
29
36
|
}
|
|
@@ -32,32 +39,37 @@ function coerceMiddleware(middleware) {
|
|
|
32
39
|
function wrapDispatch(api, rawDispatch, middlewares) {
|
|
33
40
|
const chain = middlewares.reduceRight((next, middleware) => {
|
|
34
41
|
const coerced = coerceMiddleware(middleware);
|
|
35
|
-
|
|
36
|
-
const resolvedMiddleware = coerced(api);
|
|
37
|
-
return resolvedMiddleware(next);
|
|
42
|
+
return coerced(api)(next);
|
|
38
43
|
}, rawDispatch);
|
|
39
44
|
api.dispatch = chain;
|
|
40
45
|
return chain;
|
|
41
46
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* 3. Middleware may arrive as default-export functions from slice modules.
|
|
47
|
-
*/
|
|
47
|
+
function dispatchWhileConstructing(_action) {
|
|
48
|
+
throw new Error('Dispatching while constructing your middleware is not allowed. ' +
|
|
49
|
+
'Other middleware would not be applied to this dispatch.');
|
|
50
|
+
}
|
|
48
51
|
function applyMiddleware(...args) {
|
|
49
|
-
if (args
|
|
52
|
+
if (isWrapModeArgs(args)) {
|
|
50
53
|
const [api, rawDispatch, ...middlewares] = args;
|
|
51
|
-
|
|
54
|
+
// Same construction invariant as enhancer mode (PR #55): while middleware
|
|
55
|
+
// factories run, api.dispatch must not reach rawDispatch / a half-built chain.
|
|
56
|
+
const previousDispatch = api.dispatch;
|
|
57
|
+
api.dispatch = dispatchWhileConstructing;
|
|
58
|
+
try {
|
|
59
|
+
return wrapDispatch(api, rawDispatch, middlewares);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
api.dispatch = previousDispatch;
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
52
65
|
}
|
|
53
|
-
const middlewares = args;
|
|
54
66
|
return (createStore) => (reducer, initialState) => {
|
|
55
67
|
const store = createStore(reducer, initialState);
|
|
56
68
|
const api = {
|
|
57
69
|
getState: store.getState,
|
|
58
|
-
dispatch:
|
|
70
|
+
dispatch: dispatchWhileConstructing,
|
|
59
71
|
};
|
|
60
|
-
const dispatch = wrapDispatch(api, store.dispatch,
|
|
72
|
+
const dispatch = wrapDispatch(api, store.dispatch, args);
|
|
61
73
|
return {
|
|
62
74
|
...store,
|
|
63
75
|
dispatch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/store/middleware.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/store/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/store/selector.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/store/selector.ts"],"names":[],"mappings":"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"}
|
package/build/store/selector.js
CHANGED
|
@@ -36,10 +36,14 @@ function defaultMemoize(func) {
|
|
|
36
36
|
let called = false;
|
|
37
37
|
let recomputationCount = 0;
|
|
38
38
|
const memoized = (arg) => {
|
|
39
|
-
// If never called or the argument changed — recompute
|
|
39
|
+
// If never called or the argument changed — recompute.
|
|
40
|
+
// Only commit cache slots after `func` succeeds: if `func` throws after
|
|
41
|
+
// `lastArg` was already updated, a later call with the same arg would
|
|
42
|
+
// shallow-equal-hit and return a stale `lastResult` (silent wrong value).
|
|
40
43
|
if (!called || !shallowEqual(arg, lastArg)) {
|
|
44
|
+
const nextResult = func(arg);
|
|
41
45
|
lastArg = arg;
|
|
42
|
-
lastResult =
|
|
46
|
+
lastResult = nextResult;
|
|
43
47
|
called = true;
|
|
44
48
|
recomputationCount++;
|
|
45
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/store/selector.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/store/selector.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC;;;;;;;;GAQG;;AA2NH,wCAmDC;AA0BD,4DAaC;AAxSD;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,cAAc,CAA+B,IAAO;IAC3D,IAAI,OAAO,GAAQ,IAAI,CAAC;IACxB,IAAI,UAAU,GAAQ,IAAI,CAAC;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAE,EAAE;QAC5B,uDAAuD;QACvD,wEAAwE;QACxE,sEAAsE;QACtE,0EAA0E;QAC1E,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,GAAG,GAAG,CAAC;YACd,UAAU,GAAG,UAAU,CAAC;YACxB,MAAM,GAAG,IAAI,CAAC;YACd,kBAAkB,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,qBAAqB;IACrB,QAAQ,CAAC,gBAAgB,GAAG,GAAG,EAAE;QAC/B,OAAO,GAAG,IAAI,CAAC;QACf,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,GAAG,KAAK,CAAC;QACf,kBAAkB,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,uDAAuD;IACvD,QAAQ,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC;IAEnD,OAAO,QAAgC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,YAAY,CAAE,CAAM,EAAE,CAAM;IACnC,kDAAkD;IAClD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa;IACb,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;IACd,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,SAAgB,cAAc,CAAQ,GAAG,IAAW;IAClD,yCAAyC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAA0B,CAAC;IAEhE,0CAA0C;IAC1C,6BAA6B;IAC7B,4EAA4E;IAC5E,oEAAoE;IACpE,IAAI,cAAkC,CAAC;IAEvC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,iDAAiD;QACjD,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,iCAAiC;IACjC,mEAAmE;IACnE,wDAAwD;IACxD,kDAAkD;IAClD,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,MAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAEhF;;;;;OAKG;IACH,MAAM,QAAQ,GAAG,CAAC,KAAQ,EAAK,EAAE;QAC/B,qCAAqC;QACrC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3E,8BAA8B;QAC9B,+DAA+D;QAC/D,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,8CAA8C;IAC9C,MAAM,gBAAgB,GAAG,QAAkC,CAAC;IAE5D,gBAAgB,CAAC,gBAAgB,GAAG,GAAG,EAAE;QACvC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC;IAEF,gBAAgB,CAAC,cAAc,GAAG,GAAG,EAAE;QACrC,OAAO,gBAAgB,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC,CAAC;IAEF,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,wBAAwB,CACtC,YAAmD;IAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAmB,CAAC;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvD,OAAO,cAAc,CAAC,SAAS,EAAE,CAAC,GAAG,MAAa,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,EAAO,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/build/store/types.d.ts
CHANGED
|
@@ -179,11 +179,11 @@ export interface MiddlewareAPI<D = Dispatch, S = unknown> {
|
|
|
179
179
|
* Middleware can:
|
|
180
180
|
* - Intercept actions
|
|
181
181
|
* - Perform side-effects
|
|
182
|
-
* - Dispatch new actions
|
|
182
|
+
* - Dispatch new actions via api.dispatch()
|
|
183
|
+
* - Read state via api.getState()
|
|
183
184
|
* - Modify or block actions
|
|
184
185
|
* - Call next() multiple times
|
|
185
186
|
* - Use async/await
|
|
186
|
-
* - Subscribe to state$ for reactive logic
|
|
187
187
|
*
|
|
188
188
|
* @template S - State type
|
|
189
189
|
* @template A - Action type
|
|
@@ -204,7 +204,7 @@ export interface MiddlewareAPI<D = Dispatch, S = unknown> {
|
|
|
204
204
|
* return result;
|
|
205
205
|
* };
|
|
206
206
|
*/
|
|
207
|
-
export interface Middleware<
|
|
207
|
+
export interface Middleware<_DispatchExt = {}, S = unknown, D = Dispatch> {
|
|
208
208
|
/**
|
|
209
209
|
* Creates middleware in redux-style format `(api) => (next) => (action)`.
|
|
210
210
|
* `next(action)` forwards the action down the current chain.
|
|
@@ -217,6 +217,13 @@ export interface Middleware<DispatchExt = {}, S = unknown, D = Dispatch> {
|
|
|
217
217
|
*/
|
|
218
218
|
(api: MiddlewareAPI<D, S>): (next: D) => (action: unknown) => unknown | Promise<unknown>;
|
|
219
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Middleware argument accepted by enhancer-mode `applyMiddleware`.
|
|
222
|
+
* Matches runtime: a middleware function or a module namespace `{ default: fn }`.
|
|
223
|
+
*/
|
|
224
|
+
export type MiddlewareInput<DispatchExt = {}, S = unknown, D = Dispatch> = Middleware<DispatchExt, S, D> | {
|
|
225
|
+
default: Middleware<DispatchExt, S, D>;
|
|
226
|
+
};
|
|
220
227
|
/**
|
|
221
228
|
* Memoized selector
|
|
222
229
|
*
|
|
@@ -255,5 +262,5 @@ export declare function isAction(obj: any): obj is Action;
|
|
|
255
262
|
/**
|
|
256
263
|
* Type guard to check whether a function is Middleware
|
|
257
264
|
*/
|
|
258
|
-
export declare function isMiddleware<DispatchExt = {}, S = unknown, D
|
|
265
|
+
export declare function isMiddleware<DispatchExt = {}, S = unknown, D = Dispatch>(fn: unknown): fn is Middleware<DispatchExt, S, D>;
|
|
259
266
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAMlC;;;;GAIG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAU,SAAQ,MAAM,CAAC,OAAO,CAAC;CAAG;AAErD;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CACxD,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,KACN,CAAC,CAAC;AAEP;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEvG;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAMpE;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAC7D,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,YAAY,EAAE,CAAC,KACZ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjB;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAC9D,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,KAC5B,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IACvD;;;;;;;;;OASG;IACH,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAE5B;;;;;;OAMG;IACH,QAAQ,IAAI,CAAC,CAAC;IAEd;;;;;;;;;;OAUG;IACH,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAEtB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAErD;;;;;OAKG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,OAAO;IACtD;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC;IAEZ;;;;OAIG;IACH,QAAQ,IAAI,CAAC,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,UAAU,CACzB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"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"}
|
package/build/store/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAoTH,4BAEC;AAKD,oCAIC;AAlBD,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,SAAgB,QAAQ,CAAE,GAAQ;IAChC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,EAAW;IAEX,OAAO,OAAO,EAAE,KAAK,UAAU,CAAC;AAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effectable",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.1.0-canary.10",
|
|
4
4
|
"description": "Declarative reactive runtime for Node.js: bootstrap, Redux-style RxJS store, Component lifecycle, class-based connect, and GraphRuntime.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -81,7 +81,10 @@
|
|
|
81
81
|
"build": "npm run clean && tsc --project ./tsconfig.build.json && npm run build:license",
|
|
82
82
|
"build:license": "cp ./LICENSE ./build/LICENSE",
|
|
83
83
|
"typecheck": "tsc --noEmit --project ./tsconfig.json",
|
|
84
|
+
"lint": "eslint .",
|
|
85
|
+
"lint:fix": "eslint . --fix",
|
|
84
86
|
"test": "jest --config ./jest.config.js --runInBand",
|
|
87
|
+
"test:pack-smoke": "node ./scripts/pack-smoke.cjs",
|
|
85
88
|
"test:watch": "jest --config ./jest.config.js --watch",
|
|
86
89
|
"test:spec": "jest --config ./jest.config.js --runInBand --testPathPatterns=spec",
|
|
87
90
|
"test:entity": "jest --config ./jest.config.js --runInBand --testPathPatterns=entity",
|
|
@@ -96,7 +99,7 @@
|
|
|
96
99
|
"access": "public"
|
|
97
100
|
},
|
|
98
101
|
"engines": {
|
|
99
|
-
"node": ">=
|
|
102
|
+
"node": ">=22",
|
|
100
103
|
"npm": ">=9"
|
|
101
104
|
},
|
|
102
105
|
"dependencies": {
|
|
@@ -108,9 +111,13 @@
|
|
|
108
111
|
"@commitlint/config-conventional": "^21.2.0",
|
|
109
112
|
"@semantic-release/changelog": "^7.0.0",
|
|
110
113
|
"@semantic-release/git": "^11.0.1",
|
|
111
|
-
"conventional-changelog-conventionalcommits": "^10.2.1",
|
|
112
114
|
"@types/jest": "^29.5.14",
|
|
113
115
|
"@types/node": "^22.16.0",
|
|
116
|
+
"@typescript-eslint/eslint-plugin": "^8.67.0",
|
|
117
|
+
"@typescript-eslint/parser": "^8.67.0",
|
|
118
|
+
"conventional-changelog-conventionalcommits": "^10.2.1",
|
|
119
|
+
"eslint": "^10.8.1",
|
|
120
|
+
"eslint-plugin-unused-imports": "^4.4.1",
|
|
114
121
|
"jest": "^30.1.3",
|
|
115
122
|
"lefthook": "^2.1.10",
|
|
116
123
|
"semantic-release": "^25.0.9",
|