@apia/store 5.0.0 → 5.0.1
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/dist/index.d.ts +2 -59
- package/dist/index.js +4 -40
- package/dist/index.js.map +1 -1
- package/dist/store.d.ts +61 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +40 -0
- package/dist/store.js.map +1 -0
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,69 +1,12 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { ReactNode } from 'react';
|
|
3
2
|
import * as redux from 'redux';
|
|
4
3
|
import * as store from 'react-redux';
|
|
5
|
-
import { EqualityFn } from 'react-redux';
|
|
6
4
|
export { shallowEqual } from 'react-redux';
|
|
7
5
|
export { Draft } from 'immer';
|
|
8
|
-
import { Action, AnyAction, Dispatch, MiddlewareAPI, ImmutableStateInvariantMiddlewareOptions, SerializableStateInvariantMiddlewareOptions, ThunkMiddleware, StoreEnhancer, ReducersMapObject, EnhancedStore } from '@reduxjs/toolkit';
|
|
9
6
|
import * as toolkit from '@reduxjs/toolkit';
|
|
10
7
|
export { toolkit as reduxjsToolkit };
|
|
11
8
|
export { AnyAction, CaseReducer, PayloadAction, Slice, SliceCaseReducers, createSlice } from '@reduxjs/toolkit';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
type TypedUseSelectorHook<TState> = <TSelected>(selector: (state: TState) => TSelected, equalityFn?: EqualityFn<TSelected>) => TSelected;
|
|
15
|
-
/**
|
|
16
|
-
* Esta función permite agregar reducers al store en forma dinámica.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
*
|
|
20
|
-
import { injectReducers, createSlice } from '@apia/store';
|
|
21
|
-
|
|
22
|
-
const slice = createSlice({
|
|
23
|
-
name: 'holaMundo',
|
|
24
|
-
initialState: {
|
|
25
|
-
hola: 'mundo',
|
|
26
|
-
} as { hola: string },
|
|
27
|
-
reducers: {
|
|
28
|
-
updateMundo(state) {
|
|
29
|
-
state.hola = 'world';
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const store = injectReducers({
|
|
35
|
-
holaMundo: slice.reducer,
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
store.dispatch(slice.actions.updateMundo());
|
|
39
|
-
|
|
40
|
-
// Ahora el store dice hola: 'world'
|
|
41
|
-
*/
|
|
42
|
-
type Enhancers = readonly StoreEnhancer[];
|
|
43
|
-
interface ThunkOptions<E = any> {
|
|
44
|
-
extraArgument: E;
|
|
45
|
-
}
|
|
46
|
-
interface GetDefaultMiddlewareOptions {
|
|
47
|
-
thunk?: boolean | ThunkOptions;
|
|
48
|
-
immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;
|
|
49
|
-
serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;
|
|
50
|
-
}
|
|
51
|
-
type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {
|
|
52
|
-
thunk: false;
|
|
53
|
-
} ? never : O extends {
|
|
54
|
-
thunk: {
|
|
55
|
-
extraArgument: infer E;
|
|
56
|
-
};
|
|
57
|
-
} ? ThunkMiddleware<S, AnyAction, E> : ThunkMiddleware<S>;
|
|
58
|
-
type Middleware<S = any, D extends Dispatch = Dispatch> = (api: MiddlewareAPI<D, S>) => (next: Dispatch) => (action: any) => any;
|
|
59
|
-
type Middlewares<S> = readonly Middleware<S>[];
|
|
60
|
-
declare function injectReducers<S, A extends Action = AnyAction, M extends Middlewares<S> = [ThunkMiddlewareFor<S>], E extends Enhancers = [StoreEnhancer]>(reducers: ReducersMapObject<S, A>): {
|
|
61
|
-
store: EnhancedStore<S, A, M, E>;
|
|
62
|
-
useSelector: TypedUseSelectorHook<S>;
|
|
63
|
-
};
|
|
64
|
-
declare const StoreProvider: ({ children }: {
|
|
65
|
-
children: ReactNode;
|
|
66
|
-
}) => react_jsx_runtime.JSX.Element;
|
|
9
|
+
export { StoreProvider, injectReducers } from './store.js';
|
|
67
10
|
|
|
68
11
|
declare const reactRedux: {
|
|
69
12
|
batch: typeof store.batch;
|
|
@@ -78,5 +21,5 @@ declare const reactRedux: {
|
|
|
78
21
|
shallowEqual: typeof store.shallowEqual;
|
|
79
22
|
};
|
|
80
23
|
|
|
81
|
-
export {
|
|
24
|
+
export { reactRedux };
|
|
82
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,50 +1,14 @@
|
|
|
1
|
-
import * as store
|
|
2
|
-
import { useSelector, Provider } from 'react-redux';
|
|
1
|
+
import * as store from 'react-redux';
|
|
3
2
|
export { shallowEqual } from 'react-redux';
|
|
4
|
-
import { configureStore, combineReducers, createSlice } from '@reduxjs/toolkit';
|
|
5
3
|
import * as toolkit from '@reduxjs/toolkit';
|
|
6
4
|
export { toolkit as reduxjsToolkit };
|
|
7
5
|
export { createSlice } from '@reduxjs/toolkit';
|
|
8
|
-
|
|
6
|
+
export { StoreProvider, injectReducers } from './store.js';
|
|
9
7
|
|
|
10
|
-
const
|
|
11
|
-
const store = configureStore({
|
|
12
|
-
middleware: (getDefaultMiddleware) => getDefaultMiddleware({
|
|
13
|
-
serializableCheck: false,
|
|
14
|
-
immutableCheck: false
|
|
15
|
-
}),
|
|
16
|
-
devTools: false,
|
|
17
|
-
reducer: combineReducers({
|
|
18
|
-
defaultSlice: createSlice({
|
|
19
|
-
name: "defaultSlice",
|
|
20
|
-
initialState: {},
|
|
21
|
-
reducers: {
|
|
22
|
-
update() {
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}).reducer
|
|
26
|
-
})
|
|
27
|
-
});
|
|
28
|
-
function injectReducers(reducers) {
|
|
29
|
-
Object.entries(reducers).forEach(([name, value]) => {
|
|
30
|
-
injectedReducers[name] = value;
|
|
31
|
-
});
|
|
32
|
-
const newReducer = combineReducers(injectedReducers);
|
|
33
|
-
store.replaceReducer(newReducer);
|
|
34
|
-
const newUseSelector = useSelector;
|
|
35
|
-
return {
|
|
36
|
-
store,
|
|
37
|
-
useSelector: newUseSelector
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
const StoreProvider = ({ children }) => {
|
|
41
|
-
return /* @__PURE__ */ jsx(Provider, { store, children });
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
const { useSelector: nomatter, ...reactReduxRest } = store$1;
|
|
8
|
+
const { useSelector: nomatter, ...reactReduxRest } = store;
|
|
45
9
|
const reactRedux = {
|
|
46
10
|
...reactReduxRest
|
|
47
11
|
};
|
|
48
12
|
|
|
49
|
-
export {
|
|
13
|
+
export { reactRedux };
|
|
50
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable no-restricted-imports */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nimport * as store from 'react-redux';\r\n\r\nconst { useSelector: nomatter, ...reactReduxRest } = store;\r\nexport const reactRedux = {\r\n ...reactReduxRest,\r\n};\r\n\r\nexport type { Draft } from 'immer';\r\n\r\nexport { createSlice } from '@reduxjs/toolkit';\r\n\r\nexport type {\r\n PayloadAction,\r\n AnyAction,\r\n CaseReducer,\r\n SliceCaseReducers,\r\n Slice,\r\n} from '@reduxjs/toolkit';\r\n\r\nexport { shallowEqual } from 'react-redux';\r\n\r\nexport { StoreProvider, injectReducers } from './store';\r\n\r\nexport * as reduxjsToolkit from '@reduxjs/toolkit';\r\n"],"names":[],"mappings":";;;;;;;AAKA,MAAM,EAAE,WAAA,EAAa,QAAA,EAAU,GAAG,gBAAe,GAAI,KAAA;AAC9C,MAAM,UAAA,GAAa;AAAA,EACxB,GAAG;AACL;;;;"}
|
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { Action, AnyAction, Dispatch, MiddlewareAPI, ImmutableStateInvariantMiddlewareOptions, SerializableStateInvariantMiddlewareOptions, ThunkMiddleware, StoreEnhancer, ReducersMapObject, EnhancedStore } from '@reduxjs/toolkit';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
import { EqualityFn } from 'react-redux';
|
|
5
|
+
|
|
6
|
+
type TypedUseSelectorHook<TState> = <TSelected>(selector: (state: TState) => TSelected, equalityFn?: EqualityFn<TSelected>) => TSelected;
|
|
7
|
+
/**
|
|
8
|
+
* Esta función permite agregar reducers al store en forma dinámica.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
*
|
|
12
|
+
import { injectReducers, createSlice } from '@apia/store';
|
|
13
|
+
|
|
14
|
+
const slice = createSlice({
|
|
15
|
+
name: 'holaMundo',
|
|
16
|
+
initialState: {
|
|
17
|
+
hola: 'mundo',
|
|
18
|
+
} as { hola: string },
|
|
19
|
+
reducers: {
|
|
20
|
+
updateMundo(state) {
|
|
21
|
+
state.hola = 'world';
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const store = injectReducers({
|
|
27
|
+
holaMundo: slice.reducer,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
store.dispatch(slice.actions.updateMundo());
|
|
31
|
+
|
|
32
|
+
// Ahora el store dice hola: 'world'
|
|
33
|
+
*/
|
|
34
|
+
type Enhancers = readonly StoreEnhancer[];
|
|
35
|
+
interface ThunkOptions<E = any> {
|
|
36
|
+
extraArgument: E;
|
|
37
|
+
}
|
|
38
|
+
interface GetDefaultMiddlewareOptions {
|
|
39
|
+
thunk?: boolean | ThunkOptions;
|
|
40
|
+
immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;
|
|
41
|
+
serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;
|
|
42
|
+
}
|
|
43
|
+
type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {
|
|
44
|
+
thunk: false;
|
|
45
|
+
} ? never : O extends {
|
|
46
|
+
thunk: {
|
|
47
|
+
extraArgument: infer E;
|
|
48
|
+
};
|
|
49
|
+
} ? ThunkMiddleware<S, AnyAction, E> : ThunkMiddleware<S>;
|
|
50
|
+
type Middleware<S = any, D extends Dispatch = Dispatch> = (api: MiddlewareAPI<D, S>) => (next: Dispatch) => (action: any) => any;
|
|
51
|
+
type Middlewares<S> = readonly Middleware<S>[];
|
|
52
|
+
declare function injectReducers<S, A extends Action = AnyAction, M extends Middlewares<S> = [ThunkMiddlewareFor<S>], E extends Enhancers = [StoreEnhancer]>(reducers: ReducersMapObject<S, A>): {
|
|
53
|
+
store: EnhancedStore<S, A, M, E>;
|
|
54
|
+
useSelector: TypedUseSelectorHook<S>;
|
|
55
|
+
};
|
|
56
|
+
declare const StoreProvider: ({ children }: {
|
|
57
|
+
children: ReactNode;
|
|
58
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
59
|
+
|
|
60
|
+
export { type Middleware, StoreProvider, injectReducers };
|
|
61
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/store.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { configureStore, combineReducers, createSlice } from '@reduxjs/toolkit';
|
|
3
|
+
import { useSelector, Provider } from 'react-redux';
|
|
4
|
+
|
|
5
|
+
const injectedReducers = {};
|
|
6
|
+
const store = configureStore({
|
|
7
|
+
middleware: (getDefaultMiddleware) => getDefaultMiddleware({
|
|
8
|
+
serializableCheck: false,
|
|
9
|
+
immutableCheck: false
|
|
10
|
+
}),
|
|
11
|
+
devTools: false,
|
|
12
|
+
reducer: combineReducers({
|
|
13
|
+
defaultSlice: createSlice({
|
|
14
|
+
name: "defaultSlice",
|
|
15
|
+
initialState: {},
|
|
16
|
+
reducers: {
|
|
17
|
+
update() {
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}).reducer
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
function injectReducers(reducers) {
|
|
24
|
+
Object.entries(reducers).forEach(([name, value]) => {
|
|
25
|
+
injectedReducers[name] = value;
|
|
26
|
+
});
|
|
27
|
+
const newReducer = combineReducers(injectedReducers);
|
|
28
|
+
store.replaceReducer(newReducer);
|
|
29
|
+
const newUseSelector = useSelector;
|
|
30
|
+
return {
|
|
31
|
+
store,
|
|
32
|
+
useSelector: newUseSelector
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const StoreProvider = ({ children }) => {
|
|
36
|
+
return /* @__PURE__ */ jsx(Provider, { store, children });
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export { StoreProvider, injectReducers };
|
|
40
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sources":["../src/store.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport {\r\n configureStore,\r\n combineReducers,\r\n Reducer,\r\n Action,\r\n AnyAction,\r\n ReducersMapObject,\r\n createSlice,\r\n EnhancedStore,\r\n Dispatch,\r\n MiddlewareAPI,\r\n StoreEnhancer,\r\n SerializableStateInvariantMiddlewareOptions,\r\n ImmutableStateInvariantMiddlewareOptions,\r\n ThunkMiddleware,\r\n} from '@reduxjs/toolkit';\r\nimport { ReactNode } from 'react';\r\nimport { EqualityFn, Provider, useSelector } from 'react-redux';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst injectedReducers: ReducersMapObject<any, any> = {};\r\n\r\nconst store = configureStore({\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: false,\r\n immutableCheck: false,\r\n }),\r\n devTools: false,\r\n reducer: combineReducers({\r\n defaultSlice: createSlice({\r\n name: 'defaultSlice',\r\n initialState: {},\r\n reducers: {\r\n update() {},\r\n },\r\n }).reducer,\r\n }),\r\n});\r\n\r\ntype TypedUseSelectorHook<TState> = <TSelected>(\r\n selector: (state: TState) => TSelected,\r\n equalityFn?: EqualityFn<TSelected>,\r\n) => TSelected;\r\n\r\n/**\r\n * Esta función permite agregar reducers al store en forma dinámica.\r\n *\r\n * @example\r\n *\r\n import { injectReducers, createSlice } from '@apia/store';\r\n\r\n const slice = createSlice({\r\n name: 'holaMundo',\r\n initialState: {\r\n hola: 'mundo',\r\n } as { hola: string },\r\n reducers: {\r\n updateMundo(state) {\r\n state.hola = 'world';\r\n },\r\n },\r\n });\r\n\r\n const store = injectReducers({\r\n holaMundo: slice.reducer,\r\n });\r\n\r\n store.dispatch(slice.actions.updateMundo());\r\n\r\n // Ahora el store dice hola: 'world'\r\n */\r\ntype Enhancers = readonly StoreEnhancer[];\r\ninterface ThunkOptions<E = any> {\r\n extraArgument: E;\r\n}\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions;\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\r\n}\r\n\r\ntype ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {},\r\n> = O extends {\r\n thunk: false;\r\n}\r\n ? never\r\n : O extends {\r\n thunk: {\r\n extraArgument: infer E;\r\n };\r\n }\r\n ? ThunkMiddleware<S, AnyAction, E>\r\n : ThunkMiddleware<S>;\r\n\r\nexport type Middleware<S = any, D extends Dispatch = Dispatch> = (\r\n api: MiddlewareAPI<D, S>,\r\n) => (next: Dispatch) => (action: any) => any;\r\ntype Middlewares<S> = readonly Middleware<S>[];\r\n\r\nexport function injectReducers<\r\n S,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = [ThunkMiddlewareFor<S>],\r\n E extends Enhancers = [StoreEnhancer],\r\n>(reducers: ReducersMapObject<S, A>) {\r\n Object.entries(reducers).forEach(([name, value]) => {\r\n injectedReducers[name] = value as Reducer;\r\n });\r\n\r\n const newReducer = combineReducers(injectedReducers);\r\n store.replaceReducer(newReducer);\r\n const newUseSelector: TypedUseSelectorHook<S> = useSelector;\r\n\r\n return {\r\n store: store as EnhancedStore<S, A, M, E>,\r\n useSelector: newUseSelector,\r\n };\r\n}\r\n\r\nexport const StoreProvider = ({ children }: { children: ReactNode }) => {\r\n return <Provider store={store}>{children}</Provider>;\r\n};\r\n"],"names":[],"mappings":";;;;AAsBA,MAAM,mBAAgD,EAAC;AAEvD,MAAM,QAAQ,cAAA,CAAe;AAAA,EAC3B,UAAA,EAAY,CAAC,oBAAA,KACX,oBAAA,CAAqB;AAAA,IACnB,iBAAA,EAAmB,KAAA;AAAA,IACnB,cAAA,EAAgB;AAAA,GACjB,CAAA;AAAA,EACH,QAAA,EAAU,KAAA;AAAA,EACV,SAAS,eAAA,CAAgB;AAAA,IACvB,cAAc,WAAA,CAAY;AAAA,MACxB,IAAA,EAAM,cAAA;AAAA,MACN,cAAc,EAAC;AAAA,MACf,QAAA,EAAU;AAAA,QACR,MAAA,GAAS;AAAA;AAAC;AACZ,KACD,CAAA,CAAE;AAAA,GACJ;AACH,CAAC,CAAA;AAgEM,SAAS,eAKd,QAAA,EAAmC;AACnC,EAAA,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM;AAClD,IAAA,gBAAA,CAAiB,IAAI,CAAA,GAAI,KAAA;AAAA,GAC1B,CAAA;AAED,EAAA,MAAM,UAAA,GAAa,gBAAgB,gBAAgB,CAAA;AACnD,EAAA,KAAA,CAAM,eAAe,UAAU,CAAA;AAC/B,EAAA,MAAM,cAAA,GAA0C,WAAA;AAEhD,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AACF;AAEO,MAAM,aAAA,GAAgB,CAAC,EAAE,QAAA,EAAS,KAA+B;AACtE,EAAA,uBAAO,GAAA,CAAC,QAAA,EAAA,EAAS,KAAA,EAAe,QAAA,EAAS,CAAA;AAC3C;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apia/store",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"author": "Alexis Leite <alexisleite@live.com>",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"access": "public",
|
|
37
37
|
"registry": "https://registry.npmjs.org/"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "6d9a616690ac8454136310af79a721a8ccd6588d"
|
|
40
40
|
}
|