ngrx-rtk-query
Version:
Angular RTK Query
1 lines • 5.21 kB
Source Map (JSON)
{"version":3,"file":"ngrx-rtk-query-noop-store.mjs","sources":["../../../../packages/ngrx-rtk-query/noop-store/src/provide-noop-store-api.ts","../../../../packages/ngrx-rtk-query/noop-store/ngrx-rtk-query-noop-store.ts"],"sourcesContent":["import {\n type CreateComputedOptions,\n ENVIRONMENT_INITIALIZER,\n type EnvironmentProviders,\n Injectable,\n Injector,\n type Signal,\n computed,\n inject,\n makeEnvironmentProviders,\n signal,\n} from '@angular/core';\nimport { type Reducer, type Selector, type UnknownAction } from '@reduxjs/toolkit';\nimport { type Api, setupListeners as setupListenersFn } from '@reduxjs/toolkit/query';\n\nimport { type AngularHooksModuleOptions, type Dispatch, type StoreQueryConfig } from 'ngrx-rtk-query/core';\n\n@Injectable()\nexport class ApiStore {\n readonly state = signal<Record<string, any>>({});\n\n selectSignal = <K>(mapFn: (state: any) => K, options?: CreateComputedOptions<K>): Signal<K> =>\n computed(() => mapFn(this.state()), options);\n\n dispatch = (action: UnknownAction, { reducerPath, reducer }: { reducerPath: string; reducer: Reducer<any> }) => {\n const nextState = reducer(this.state()[reducerPath], action as UnknownAction);\n this.state.update((state) => ({ ...state, [reducerPath]: nextState }));\n };\n}\n\nconst createNoopStoreApi = (\n api: Api<any, Record<string, any>, string, string, any>,\n { injector = inject(Injector) }: { injector?: Injector } = {},\n) => {\n return (): AngularHooksModuleOptions => {\n const store = injector.get(ApiStore);\n const reducerPath = api.reducerPath;\n const reducer = api.reducer as Reducer<any>;\n\n // Initialize the store with the initial state\n store.state.update((state) => ({ ...state, [reducerPath]: {} }));\n\n const dispatch = (action: UnknownAction) => {\n store.dispatch(action, { reducerPath, reducer });\n return action;\n };\n const getState = store.selectSignal((state) => state);\n const useSelector = <K>(mapFn: (state: any) => K, options?: CreateComputedOptions<K>): Signal<K> =>\n store.selectSignal(mapFn, options);\n\n const hooks = { dispatch: dispatch as Dispatch, getState, useSelector };\n const createSelector =\n <T = any, V = any>(...input: any[]): Selector<T, V> =>\n (state) =>\n input.reduce((acc, selector) => selector(acc), state);\n const getInjector = () => injector;\n\n return { hooks, createSelector, getInjector };\n };\n};\n\nexport function provideNoopStoreApi(\n api: Api<any, Record<string, any>, string, string, any>,\n { setupListeners }: StoreQueryConfig = {},\n): EnvironmentProviders {\n setupListeners === false ? undefined : setupListenersFn(api.dispatch, setupListeners);\n\n return makeEnvironmentProviders([\n ApiStore,\n {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue() {\n api.initApiStore(createNoopStoreApi(api));\n api.dispatch(api.util.resetApiState());\n },\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["setupListeners","setupListenersFn"],"mappings":"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"}