@apia/store 0.3.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/cleanDist.json +1 -1
- package/dist/index.d.ts +21 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/cleanDist.json
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import * as store from 'react-redux';
|
|
|
5
5
|
import { EqualityFn } from 'react-redux';
|
|
6
6
|
export { shallowEqual } from 'react-redux';
|
|
7
7
|
export { Draft } from 'immer';
|
|
8
|
-
import { Action, AnyAction, ReducersMapObject,
|
|
8
|
+
import { Action, AnyAction, StoreEnhancer, ReducersMapObject, EnhancedStore, ThunkMiddleware, ImmutableStateInvariantMiddlewareOptions, SerializableStateInvariantMiddlewareOptions, Dispatch, MiddlewareAPI } from '@reduxjs/toolkit';
|
|
9
9
|
import * as _reduxjs_toolkit from '@reduxjs/toolkit';
|
|
10
10
|
export { _reduxjs_toolkit as reduxjsToolkit };
|
|
11
11
|
export { AnyAction, CaseReducer, PayloadAction, Slice, SliceCaseReducers, createSlice } from '@reduxjs/toolkit';
|
|
@@ -38,8 +38,26 @@ type TypedUseSelectorHook<TState> = <TSelected>(selector: (state: TState) => TSe
|
|
|
38
38
|
|
|
39
39
|
// Ahora el store dice hola: 'world'
|
|
40
40
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
type Enhancers = readonly StoreEnhancer[];
|
|
42
|
+
interface ThunkOptions<E = any> {
|
|
43
|
+
extraArgument: E;
|
|
44
|
+
}
|
|
45
|
+
interface GetDefaultMiddlewareOptions {
|
|
46
|
+
thunk?: boolean | ThunkOptions;
|
|
47
|
+
immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;
|
|
48
|
+
serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;
|
|
49
|
+
}
|
|
50
|
+
type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {
|
|
51
|
+
thunk: false;
|
|
52
|
+
} ? never : O extends {
|
|
53
|
+
thunk: {
|
|
54
|
+
extraArgument: infer E;
|
|
55
|
+
};
|
|
56
|
+
} ? ThunkMiddleware<S, AnyAction, E> : ThunkMiddleware<S>;
|
|
57
|
+
type Middleware<S = any, D extends Dispatch = Dispatch> = (api: MiddlewareAPI<D, S>) => (next: Dispatch) => (action: any) => any;
|
|
58
|
+
type Middlewares<S> = readonly Middleware<S>[];
|
|
59
|
+
declare function injectReducers<S, A extends Action = AnyAction, M extends Middlewares<S> = [ThunkMiddlewareFor<S>], E extends Enhancers = [StoreEnhancer]>(reducers: ReducersMapObject<S, A>): {
|
|
60
|
+
store: EnhancedStore<S, A, M, E>;
|
|
43
61
|
useSelector: TypedUseSelectorHook<S>;
|
|
44
62
|
};
|
|
45
63
|
declare const StoreProvider: ({ children }: {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/store.tsx","../src/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/store.tsx","../src/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n configureStore,\n combineReducers,\n Reducer,\n Action,\n AnyAction,\n ReducersMapObject,\n createSlice,\n EnhancedStore,\n Dispatch,\n MiddlewareAPI,\n StoreEnhancer,\n SerializableStateInvariantMiddlewareOptions,\n ImmutableStateInvariantMiddlewareOptions,\n ThunkMiddleware,\n} from '@reduxjs/toolkit';\nimport { ReactNode } from 'react';\nimport { EqualityFn, Provider, useSelector } from 'react-redux';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst injectedReducers: ReducersMapObject<any, any> = {};\n\nexport const store = configureStore({\n devTools: {\n actionSanitizer: (action) => {\n if (\n [\n 'responsiveTableSlice/handleKey',\n 'responsiveTableSlice/update',\n 'responsiveTableSlice/addRows',\n ].includes(action.type as string)\n )\n return {\n ...action,\n payload: `Sanitized due to performance ${action.type as string}`,\n };\n return action;\n },\n },\n middleware: (defaultMiddleWare) => {\n return defaultMiddleWare({\n immutableCheck: {\n ignoredPaths: ['responsiveTableSlice'],\n },\n serializableCheck: {\n ignoredPaths: ['responsiveTableSlice', 'panelsSlice'],\n ignoredActions: [\n 'responsiveTableSlice/handleKey',\n 'responsiveTableSlice/update',\n 'responsiveTableSlice/addRows',\n 'panelsSlice/updatePanelStore',\n ],\n },\n });\n },\n reducer: combineReducers({\n defaultSlice: createSlice({\n name: 'defaultSlice',\n initialState: {},\n reducers: {\n update() {},\n },\n }).reducer,\n }),\n});\n\ntype TypedUseSelectorHook<TState> = <TSelected>(\n selector: (state: TState) => TSelected,\n equalityFn?: EqualityFn<TSelected>,\n) => TSelected;\n\n/**\n * Esta función permite agregar reducers al store en forma dinámica.\n *\n * @example\n *\n import { injectReducers, createSlice } from '@apia/store';\n\n const slice = createSlice({\n name: 'holaMundo',\n initialState: {\n hola: 'mundo',\n } as { hola: string },\n reducers: {\n updateMundo(state) {\n state.hola = 'world';\n },\n },\n });\n\n const store = injectReducers({\n holaMundo: slice.reducer,\n });\n\n store.dispatch(slice.actions.updateMundo());\n\n // Ahora el store dice hola: 'world'\n */\ntype Enhancers = readonly StoreEnhancer[];\ninterface ThunkOptions<E = any> {\n extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n thunk?: boolean | ThunkOptions;\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n}\n\ntype ThunkMiddlewareFor<\n S,\n O extends GetDefaultMiddlewareOptions = {},\n> = O extends {\n thunk: false;\n}\n ? never\n : O extends {\n thunk: {\n extraArgument: infer E;\n };\n }\n ? ThunkMiddleware<S, AnyAction, E>\n : ThunkMiddleware<S>;\n\nexport type Middleware<S = any, D extends Dispatch = Dispatch> = (\n api: MiddlewareAPI<D, S>,\n) => (next: Dispatch) => (action: any) => any;\ntype Middlewares<S> = readonly Middleware<S>[];\n\nexport function injectReducers<\n S,\n A extends Action = AnyAction,\n M extends Middlewares<S> = [ThunkMiddlewareFor<S>],\n E extends Enhancers = [StoreEnhancer],\n>(reducers: ReducersMapObject<S, A>) {\n Object.entries(reducers).forEach(([name, value]) => {\n injectedReducers[name] = value as Reducer;\n });\n\n const newReducer = combineReducers(injectedReducers);\n store.replaceReducer(newReducer);\n const newUseSelector: TypedUseSelectorHook<S> = useSelector;\n\n return {\n store: store as EnhancedStore<S, A, M, E>,\n useSelector: newUseSelector,\n };\n}\n\nexport const StoreProvider = ({ children }: { children: ReactNode }) => {\n return <Provider store={store}>{children}</Provider>;\n};\n","/* eslint-disable no-restricted-imports */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport * as store from 'react-redux';\n\nconst { useSelector: nomatter, ...reactReduxRest } = store;\nexport const reactRedux = {\n ...reactReduxRest,\n};\n\nexport type { Draft } from 'immer';\n\nexport { createSlice } from '@reduxjs/toolkit';\n\nexport type {\n PayloadAction,\n AnyAction,\n CaseReducer,\n SliceCaseReducers,\n Slice,\n} from '@reduxjs/toolkit';\n\nexport { shallowEqual } from 'react-redux';\n\nexport { StoreProvider, injectReducers } from './store';\n\nexport * as reduxjsToolkit from '@reduxjs/toolkit';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,mBAAgD,EAAC,CAAA;AAEhD,MAAM,QAAQ,cAAe,CAAA;AAAA,EAClC,QAAU,EAAA;AAAA,IACR,eAAA,EAAiB,CAAC,MAAW,KAAA;AAC3B,MACE,IAAA;AAAA,QACE,gCAAA;AAAA,QACA,6BAAA;AAAA,QACA,8BAAA;AAAA,OACF,CAAE,QAAS,CAAA,MAAA,CAAO,IAAc,CAAA;AAEhC,QAAA,OAAO,mCACF,MADE,CAAA,EAAA;AAAA,UAEL,OAAA,EAAS,gCAAgC,MAAO,CAAA,IAAA,CAAA,CAAA;AAAA,SAClD,CAAA,CAAA;AACF,MAAO,OAAA,MAAA,CAAA;AAAA,KACT;AAAA,GACF;AAAA,EACA,UAAA,EAAY,CAAC,iBAAsB,KAAA;AACjC,IAAA,OAAO,iBAAkB,CAAA;AAAA,MACvB,cAAgB,EAAA;AAAA,QACd,YAAA,EAAc,CAAC,sBAAsB,CAAA;AAAA,OACvC;AAAA,MACA,iBAAmB,EAAA;AAAA,QACjB,YAAA,EAAc,CAAC,sBAAA,EAAwB,aAAa,CAAA;AAAA,QACpD,cAAgB,EAAA;AAAA,UACd,gCAAA;AAAA,UACA,6BAAA;AAAA,UACA,8BAAA;AAAA,UACA,8BAAA;AAAA,SACF;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAAA,EACA,SAAS,eAAgB,CAAA;AAAA,IACvB,cAAc,WAAY,CAAA;AAAA,MACxB,IAAM,EAAA,cAAA;AAAA,MACN,cAAc,EAAC;AAAA,MACf,QAAU,EAAA;AAAA,QACR,MAAS,GAAA;AAAA,SAAC;AAAA,OACZ;AAAA,KACD,CAAE,CAAA,OAAA;AAAA,GACJ,CAAA;AACH,CAAC,CAAA,CAAA;AAgEM,SAAS,eAKd,QAAmC,EAAA;AACnC,EAAO,MAAA,CAAA,OAAA,CAAQ,QAAQ,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,IAAA,EAAM,KAAK,CAAM,KAAA;AAClD,IAAA,gBAAA,CAAiB,IAAI,CAAI,GAAA,KAAA,CAAA;AAAA,GAC1B,CAAA,CAAA;AAED,EAAM,MAAA,UAAA,GAAa,gBAAgB,gBAAgB,CAAA,CAAA;AACnD,EAAA,KAAA,CAAM,eAAe,UAAU,CAAA,CAAA;AAC/B,EAAA,MAAM,cAA0C,GAAA,WAAA,CAAA;AAEhD,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,WAAa,EAAA,cAAA;AAAA,GACf,CAAA;AACF,CAAA;AAEO,MAAM,aAAgB,GAAA,CAAC,EAAE,QAAA,EAAwC,KAAA;AACtE,EAAO,uBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,KAAA,EAAe,QAAS,EAAA,CAAA,CAAA;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnJA,MAAqD,cAAnB,cAAA,GAAA,SAAA,CAAmB,IAAnB,CAA1B,aAAA,CAAA,EAAA;AACD,MAAM,aAAa,cACrB,CAAA,EAAA,EAAA,cAAA;;;;"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "1.0.0",
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "rollup -c rollup.config.esb.mjs",
|
|
12
12
|
"buildDev": "rollup -c rollup.config.esb.mjs --dev",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"url": "http://corp-gitlab-01.domst.st.net/products/apia/ApiaNPMPackages.git",
|
|
47
47
|
"directory": "packages/store"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "e8f09978e6bb5dfceacc565717d1e8f334acbaa8"
|
|
50
50
|
}
|