effectable 1.0.0-canary.2 → 1.0.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 +3 -9
- package/build/bootstrap/bootstrap.d.ts.map +1 -1
- package/build/bootstrap/bootstrap.js +6 -12
- package/build/bootstrap/bootstrap.js.map +1 -1
- package/build/bootstrap/types.d.ts +1 -7
- package/build/bootstrap/types.d.ts.map +1 -1
- package/build/component/GraphRuntime.d.ts +18 -226
- package/build/component/GraphRuntime.d.ts.map +1 -1
- package/build/component/GraphRuntime.js +211 -944
- package/build/component/GraphRuntime.js.map +1 -1
- package/build/component/context.d.ts +11 -3
- package/build/component/context.d.ts.map +1 -1
- package/build/component/context.js +23 -24
- package/build/component/context.js.map +1 -1
- package/build/component/h.d.ts +6 -14
- package/build/component/h.d.ts.map +1 -1
- package/build/component/h.js +1 -19
- package/build/component/h.js.map +1 -1
- package/build/component/refs.d.ts +5 -7
- package/build/component/refs.d.ts.map +1 -1
- package/build/component/refs.js +22 -45
- package/build/component/refs.js.map +1 -1
- package/build/component/types.d.ts +5 -16
- 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 +12 -3
- 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 +0 -6
- package/build/runtime/BusDecorators.d.ts.map +1 -1
- package/build/runtime/BusDecorators.js +56 -117
- 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 +3 -6
- package/build/runtime/CommandBus.js.map +1 -1
- package/build/runtime/HandleRegistry.d.ts +1 -2
- package/build/runtime/HandleRegistry.d.ts.map +1 -1
- package/build/runtime/HandleRegistry.js +7 -38
- 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 +3 -6
- 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 +4 -31
- package/build/store/createStore.js.map +1 -1
- package/build/store/middleware.d.ts +1 -16
- package/build/store/middleware.d.ts.map +1 -1
- package/build/store/middleware.js +15 -16
- package/build/store/middleware.js.map +1 -1
- package/build/store/types.d.ts +4 -11
- package/build/store/types.d.ts.map +1 -1
- package/build/store/types.js.map +1 -1
- package/package.json +3 -10
|
@@ -62,7 +62,7 @@ function UseImperativeHandle() {
|
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
const ctor = target.constructor;
|
|
65
|
-
const current = Reflect.
|
|
65
|
+
const current = Reflect.getMetadata(USE_IMPERATIVE_HANDLE_METADATA_KEY, ctor);
|
|
66
66
|
const next = typeof current === 'undefined'
|
|
67
67
|
? new Set()
|
|
68
68
|
: new Set(current);
|
|
@@ -89,21 +89,6 @@ function UseRef() {
|
|
|
89
89
|
*/
|
|
90
90
|
class HandleRegistry {
|
|
91
91
|
handles = new Map();
|
|
92
|
-
getInheritedMetadata(ctor, metaKey) {
|
|
93
|
-
let current = ctor;
|
|
94
|
-
while (current != null && typeof current === 'function') {
|
|
95
|
-
const value = Reflect.getOwnMetadata(metaKey, current);
|
|
96
|
-
if (value !== undefined) {
|
|
97
|
-
return value;
|
|
98
|
-
}
|
|
99
|
-
const next = Object.getPrototypeOf(current);
|
|
100
|
-
if (typeof next !== 'function' || next === null) {
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
current = next;
|
|
104
|
-
}
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
92
|
buildRefHandle(instance) {
|
|
108
93
|
const ctor = instance !== null && typeof instance === 'object'
|
|
109
94
|
? instance.constructor
|
|
@@ -111,7 +96,7 @@ class HandleRegistry {
|
|
|
111
96
|
if (typeof ctor !== 'function') {
|
|
112
97
|
throw new Error('HandleRegistry.autoRegister: invalid instance');
|
|
113
98
|
}
|
|
114
|
-
const refPropertyKey =
|
|
99
|
+
const refPropertyKey = Reflect.getMetadata(USE_REF_PROPERTY_METADATA_KEY, ctor);
|
|
115
100
|
if (typeof refPropertyKey === 'undefined') {
|
|
116
101
|
throw new Error('HandleRegistry.autoRegister: missing ref property metadata (@UseRef)');
|
|
117
102
|
}
|
|
@@ -119,22 +104,8 @@ class HandleRegistry {
|
|
|
119
104
|
if (typeof ref !== 'object' || ref === null) {
|
|
120
105
|
throw new Error('HandleRegistry.autoRegister: ref property is not an object');
|
|
121
106
|
}
|
|
122
|
-
const methodNames =
|
|
123
|
-
|
|
124
|
-
while (current != null && typeof current === 'function') {
|
|
125
|
-
const ownMethods = Reflect.getOwnMetadata(USE_IMPERATIVE_HANDLE_METADATA_KEY, current);
|
|
126
|
-
if (ownMethods !== undefined) {
|
|
127
|
-
for (const methodName of ownMethods) {
|
|
128
|
-
methodNames.add(methodName);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
const next = Object.getPrototypeOf(current);
|
|
132
|
-
if (typeof next !== 'function' || next === null) {
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
current = next;
|
|
136
|
-
}
|
|
137
|
-
if (methodNames.size === 0) {
|
|
107
|
+
const methodNames = Reflect.getMetadata(USE_IMPERATIVE_HANDLE_METADATA_KEY, ctor);
|
|
108
|
+
if (typeof methodNames === 'undefined' || methodNames.size === 0) {
|
|
138
109
|
throw new Error('HandleRegistry.autoRegister: no @UseImperativeHandle methods');
|
|
139
110
|
}
|
|
140
111
|
for (const methodName of methodNames) {
|
|
@@ -153,7 +124,7 @@ class HandleRegistry {
|
|
|
153
124
|
if (typeof ctor !== 'function') {
|
|
154
125
|
throw new Error('HandleRegistry.autoRegister: invalid instance');
|
|
155
126
|
}
|
|
156
|
-
const keyOrFactory =
|
|
127
|
+
const keyOrFactory = Reflect.getMetadata(USE_REF_METADATA_KEY, ctor);
|
|
157
128
|
if (typeof keyOrFactory === 'undefined') {
|
|
158
129
|
throw new Error('HandleRegistry.autoRegister: missing @UseRef metadata');
|
|
159
130
|
}
|
|
@@ -185,14 +156,12 @@ class HandleRegistry {
|
|
|
185
156
|
*
|
|
186
157
|
* @param {string} key - handle key
|
|
187
158
|
* @param {THandle} handle - imperative API object
|
|
188
|
-
* @returns {() => void} unregister function
|
|
159
|
+
* @returns {() => void} unregister function
|
|
189
160
|
*/
|
|
190
161
|
register(key, handle) {
|
|
191
162
|
this.handles.set(key, handle);
|
|
192
163
|
return () => {
|
|
193
|
-
|
|
194
|
-
this.handles.delete(key);
|
|
195
|
-
}
|
|
164
|
+
this.unregister(key);
|
|
196
165
|
};
|
|
197
166
|
}
|
|
198
167
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleRegistry.js","sourceRoot":"","sources":["../../src/runtime/HandleRegistry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;AAoBH,gCAMC;AAQD,kDAmBC;AAOD,wBASC;AAnED,4BAA0B;AAE1B,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAChE,MAAM,6BAA6B,GAAG,0CAA0C,CAAC;AACjF,MAAM,kCAAkC,GAAG,+CAA+C,CAAC;AAM3F;;;;;;;GAOG;AACH,SAAgB,UAAU,CACxB,YAA4C;IAE5C,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB;IACjC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"HandleRegistry.js","sourceRoot":"","sources":["../../src/runtime/HandleRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export declare class QueryBus<TQuery extends RuntimeQuery = RuntimeQuery> {
|
|
|
14
14
|
*
|
|
15
15
|
* @param {TQuery['type']} queryType - query type
|
|
16
16
|
* @param {QueryHandler<TQuery, TResult>} handler - query handler
|
|
17
|
-
* @returns {() => void} unregister function
|
|
17
|
+
* @returns {() => void} unregister function
|
|
18
18
|
* @throws {Error} if a handler is already registered
|
|
19
19
|
*/
|
|
20
20
|
register<TResult>(queryType: TQuery['type'], handler: QueryHandler<TQuery, TResult>): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBus.d.ts","sourceRoot":"","sources":["../../src/runtime/QueryBus.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D;;GAEG;AACH,qBAAa,QAAQ,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAE7E;;;;;;;OAOG;IACI,QAAQ,CAAC,OAAO,EACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EACzB,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,MAAM,IAAI;
|
|
1
|
+
{"version":3,"file":"QueryBus.d.ts","sourceRoot":"","sources":["../../src/runtime/QueryBus.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D;;GAEG;AACH,qBAAa,QAAQ,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAE7E;;;;;;;OAOG;IACI,QAAQ,CAAC,OAAO,EACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EACzB,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,MAAM,IAAI;IAWb;;;;;;OAMG;IACU,OAAO,CAAC,OAAO,EAAG,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU/D;;;;;OAKG;IACI,UAAU,CAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;IAInD;;;;OAIG;IACI,KAAK,IAAK,IAAI;CAGtB"}
|
|
@@ -16,19 +16,16 @@ class QueryBus {
|
|
|
16
16
|
*
|
|
17
17
|
* @param {TQuery['type']} queryType - query type
|
|
18
18
|
* @param {QueryHandler<TQuery, TResult>} handler - query handler
|
|
19
|
-
* @returns {() => void} unregister function
|
|
19
|
+
* @returns {() => void} unregister function
|
|
20
20
|
* @throws {Error} if a handler is already registered
|
|
21
21
|
*/
|
|
22
22
|
register(queryType, handler) {
|
|
23
23
|
if (this.handlers.has(queryType)) {
|
|
24
24
|
throw new Error(`Query handler is already registered: ${queryType}`);
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
this.handlers.set(queryType, registered);
|
|
26
|
+
this.handlers.set(queryType, handler);
|
|
28
27
|
return () => {
|
|
29
|
-
|
|
30
|
-
this.handlers.delete(queryType);
|
|
31
|
-
}
|
|
28
|
+
this.unregister(queryType);
|
|
32
29
|
};
|
|
33
30
|
}
|
|
34
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBus.js","sourceRoot":"","sources":["../../src/runtime/QueryBus.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH;;GAEG;AACH,MAAa,QAAQ;IACF,QAAQ,GAAG,IAAI,GAAG,EAAyC,CAAC;IAE7E;;;;;;;OAOG;IACI,QAAQ,CACb,SAAyB,EACzB,OAAsC;QAEtC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"QueryBus.js","sourceRoot":"","sources":["../../src/runtime/QueryBus.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH;;GAEG;AACH,MAAa,QAAQ;IACF,QAAQ,GAAG,IAAI,GAAG,EAAyC,CAAC;IAE7E;;;;;;;OAOG;IACI,QAAQ,CACb,SAAyB,EACzB,OAAsC;QAEtC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAwC,CAAC,CAAC;QACvE,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAW,KAAa;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,MAAiB,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAE,SAAyB;QAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AA5DD,4BA4DC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Redux Store Creator with RxJS Support
|
|
3
3
|
*
|
|
4
|
-
* Implements createStore with
|
|
5
|
-
*
|
|
4
|
+
* Implements createStore, compatible with Redux v4,
|
|
5
|
+
* but using RxJS for reactive state management.
|
|
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,CA+Gb"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Redux Store Creator with RxJS Support
|
|
4
4
|
*
|
|
5
|
-
* Implements createStore with
|
|
6
|
-
*
|
|
5
|
+
* Implements createStore, compatible with Redux v4,
|
|
6
|
+
* but using RxJS for reactive state management.
|
|
7
7
|
*
|
|
8
8
|
* @module Effectable/store/createStore
|
|
9
9
|
*/
|
|
@@ -46,8 +46,6 @@ 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;
|
|
51
49
|
/**
|
|
52
50
|
* Base dispatch without middleware
|
|
53
51
|
*
|
|
@@ -58,24 +56,10 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
58
56
|
* @returns The same action
|
|
59
57
|
*/
|
|
60
58
|
function dispatch(action) {
|
|
61
|
-
//
|
|
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)
|
|
59
|
+
// Action validation
|
|
66
60
|
if (typeof action !== 'object' || action === null) {
|
|
67
61
|
throw new Error('Actions must be plain objects. Use custom middleware for async actions.');
|
|
68
62
|
}
|
|
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
|
-
}
|
|
79
63
|
if (typeof action.type === 'undefined') {
|
|
80
64
|
throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');
|
|
81
65
|
}
|
|
@@ -90,11 +74,6 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
90
74
|
const currentState = state$.getValue();
|
|
91
75
|
// Call reducer to get the new state
|
|
92
76
|
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
|
-
}
|
|
98
77
|
}
|
|
99
78
|
finally {
|
|
100
79
|
// Important: reset the flag before notifying subscribers
|
|
@@ -110,12 +89,7 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
110
89
|
*
|
|
111
90
|
* @returns Current Store state
|
|
112
91
|
*/
|
|
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
|
-
};
|
|
92
|
+
const getState = () => state$.getValue();
|
|
119
93
|
/**
|
|
120
94
|
* Universal select method for applying selectors
|
|
121
95
|
*
|
|
@@ -144,7 +118,6 @@ function createStore(reducer, initialState, enhancer) {
|
|
|
144
118
|
* store.destroy();
|
|
145
119
|
*/
|
|
146
120
|
const destroy = () => {
|
|
147
|
-
isDestroyed = true;
|
|
148
121
|
state$.complete();
|
|
149
122
|
};
|
|
150
123
|
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":";AAAA;;;;;;;GAOG;;AA+BH,kCAmHC;AAhJD,+BAAmD;AACnD,8CAA2D;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,WAAW,CACzB,OAAsB,EACtB,YAAe,EACf,QAA8B;IAE9B,4EAA4E;IAC5E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,8CAA8C;IAC9C,oEAAoE;IACpE,MAAM,MAAM,GAAG,IAAI,sBAAe,CAAI,YAAY,CAAC,CAAC;IAEpD,sDAAsD;IACtD,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B;;;;;;;;OAQG;IACH,SAAS,QAAQ,CAAe,MAAS;QACvC,oBAAoB;QACpB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,QAAW,CAAC;QAChB,IAAI,CAAC;YACH,aAAa,GAAG,IAAI,CAAC;YAErB,oBAAoB;YACpB,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAEvC,oCAAoC;YACpC,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;gBAAS,CAAC;YACT,yDAAyD;YACzD,+DAA+D;YAC/D,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,yEAAyE;QACzE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM,QAAQ,GAAG,GAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAE5C;;;;;;;;;;;;;OAaG;IACH,MAAM,MAAM,GAAG,CAAI,UAA0B,EAAiB,EAAE;QAC9D,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,eAAG,EAAC,UAAU,CAAC,EACf,IAAA,gCAAoB,GAAE,CACvB,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;;;;;OASG;IACH,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,4CAA4C;QAC3E,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -7,27 +7,13 @@
|
|
|
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'];
|
|
19
10
|
/**
|
|
20
11
|
* Supports two modes:
|
|
21
12
|
* 1. `applyMiddleware(api, rawDispatch, ...middlewares)` — wrap an existing dispatch
|
|
22
13
|
* 2. `applyMiddleware(...middlewares)` — legacy enhancer-style for compatibility
|
|
23
14
|
* 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.
|
|
27
15
|
*/
|
|
28
|
-
export declare function applyMiddleware
|
|
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>;
|
|
16
|
+
export declare function applyMiddleware(...args: unknown[]): unknown;
|
|
31
17
|
/**
|
|
32
18
|
* Compose function for function composition
|
|
33
19
|
*
|
|
@@ -49,5 +35,4 @@ export declare function applyMiddleware<S = unknown, A extends Action = Action>(
|
|
|
49
35
|
* Rarely needed for external use.
|
|
50
36
|
*/
|
|
51
37
|
export declare function compose<T>(...funcs: Array<(arg: T) => T>): (arg: T) => T;
|
|
52
|
-
export {};
|
|
53
38
|
//# 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;AA8CH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAoB5D;AAED;;;;;;;;;;;;;;;;;;;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,13 +11,6 @@
|
|
|
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
|
-
}
|
|
21
14
|
/**
|
|
22
15
|
* Normalizes middleware: a function or a default-export module `{ default: fn }`.
|
|
23
16
|
*
|
|
@@ -25,12 +18,12 @@ function isWrapModeArgs(args) {
|
|
|
25
18
|
* @returns {Middleware<unknown, S, D>}
|
|
26
19
|
*/
|
|
27
20
|
function coerceMiddleware(middleware) {
|
|
28
|
-
if (
|
|
21
|
+
if (typeof middleware === 'function') {
|
|
29
22
|
return middleware;
|
|
30
23
|
}
|
|
31
24
|
if (typeof middleware === 'object' && middleware !== null && Object.hasOwn(middleware, 'default')) {
|
|
32
25
|
const defaultExport = Reflect.get(middleware, 'default');
|
|
33
|
-
if (
|
|
26
|
+
if (typeof defaultExport === 'function') {
|
|
34
27
|
return defaultExport;
|
|
35
28
|
}
|
|
36
29
|
}
|
|
@@ -39,26 +32,32 @@ function coerceMiddleware(middleware) {
|
|
|
39
32
|
function wrapDispatch(api, rawDispatch, middlewares) {
|
|
40
33
|
const chain = middlewares.reduceRight((next, middleware) => {
|
|
41
34
|
const coerced = coerceMiddleware(middleware);
|
|
42
|
-
|
|
35
|
+
// FIXME: teach middleware so action can carry a type and the output has a known type
|
|
36
|
+
const resolvedMiddleware = coerced(api);
|
|
37
|
+
return resolvedMiddleware(next);
|
|
43
38
|
}, rawDispatch);
|
|
44
39
|
api.dispatch = chain;
|
|
45
40
|
return chain;
|
|
46
41
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Supports two modes:
|
|
44
|
+
* 1. `applyMiddleware(api, rawDispatch, ...middlewares)` — wrap an existing dispatch
|
|
45
|
+
* 2. `applyMiddleware(...middlewares)` — legacy enhancer-style for compatibility
|
|
46
|
+
* 3. Middleware may arrive as default-export functions from slice modules.
|
|
47
|
+
*/
|
|
50
48
|
function applyMiddleware(...args) {
|
|
51
|
-
if (
|
|
49
|
+
if (args.length > 1 && typeof args[0] === 'object' && args[0] !== null && 'getState' in args[0]) {
|
|
52
50
|
const [api, rawDispatch, ...middlewares] = args;
|
|
53
51
|
return wrapDispatch(api, rawDispatch, middlewares);
|
|
54
52
|
}
|
|
53
|
+
const middlewares = args;
|
|
55
54
|
return (createStore) => (reducer, initialState) => {
|
|
56
55
|
const store = createStore(reducer, initialState);
|
|
57
56
|
const api = {
|
|
58
57
|
getState: store.getState,
|
|
59
|
-
dispatch:
|
|
58
|
+
dispatch: null,
|
|
60
59
|
};
|
|
61
|
-
const dispatch = wrapDispatch(api, store.dispatch,
|
|
60
|
+
const dispatch = wrapDispatch(api, store.dispatch, middlewares);
|
|
62
61
|
return {
|
|
63
62
|
...store,
|
|
64
63
|
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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"}
|
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
|
|
183
|
-
* - Read state via api.getState()
|
|
182
|
+
* - Dispatch new actions
|
|
184
183
|
* - Modify or block actions
|
|
185
184
|
* - Call next() multiple times
|
|
186
185
|
* - 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,13 +217,6 @@ 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
|
-
};
|
|
227
220
|
/**
|
|
228
221
|
* Memoized selector
|
|
229
222
|
*
|
|
@@ -262,5 +255,5 @@ export declare function isAction(obj: any): obj is Action;
|
|
|
262
255
|
/**
|
|
263
256
|
* Type guard to check whether a function is Middleware
|
|
264
257
|
*/
|
|
265
|
-
export declare function isMiddleware<DispatchExt = {}, S = unknown, D = Dispatch>(fn:
|
|
258
|
+
export declare function isMiddleware<DispatchExt = {}, S = unknown, D extends Dispatch = Dispatch>(fn: any): fn is Middleware<DispatchExt, S, D>;
|
|
266
259
|
//# 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;;AA0SH,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,EAAO;IAEP,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.0
|
|
3
|
+
"version": "1.0.0",
|
|
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,10 +81,7 @@
|
|
|
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",
|
|
86
84
|
"test": "jest --config ./jest.config.js --runInBand",
|
|
87
|
-
"test:pack-smoke": "node ./scripts/pack-smoke.cjs",
|
|
88
85
|
"test:watch": "jest --config ./jest.config.js --watch",
|
|
89
86
|
"test:spec": "jest --config ./jest.config.js --runInBand --testPathPatterns=spec",
|
|
90
87
|
"test:entity": "jest --config ./jest.config.js --runInBand --testPathPatterns=entity",
|
|
@@ -99,7 +96,7 @@
|
|
|
99
96
|
"access": "public"
|
|
100
97
|
},
|
|
101
98
|
"engines": {
|
|
102
|
-
"node": ">=
|
|
99
|
+
"node": ">=18.18.0",
|
|
103
100
|
"npm": ">=9"
|
|
104
101
|
},
|
|
105
102
|
"dependencies": {
|
|
@@ -111,13 +108,9 @@
|
|
|
111
108
|
"@commitlint/config-conventional": "^21.2.0",
|
|
112
109
|
"@semantic-release/changelog": "^7.0.0",
|
|
113
110
|
"@semantic-release/git": "^11.0.1",
|
|
111
|
+
"conventional-changelog-conventionalcommits": "^10.2.1",
|
|
114
112
|
"@types/jest": "^29.5.14",
|
|
115
113
|
"@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",
|
|
121
114
|
"jest": "^30.1.3",
|
|
122
115
|
"lefthook": "^2.1.10",
|
|
123
116
|
"semantic-release": "^25.0.9",
|