ngrx-rtk-query
Version:
Angular RTK Query
1 lines • 3.73 kB
Source Map (JSON)
{"version":3,"file":"ngrx-rtk-query-store.mjs","sources":["../../../../packages/ngrx-rtk-query/store/src/provide-store-api.ts","../../../../packages/ngrx-rtk-query/store/ngrx-rtk-query-store.ts"],"sourcesContent":["import {\n ENVIRONMENT_INITIALIZER,\n type EnvironmentProviders,\n Injector,\n type Signal,\n inject,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { type Action, Store, createSelectorFactory, defaultMemoize, provideState } from '@ngrx/store';\nimport { type SelectSignalOptions } from '@ngrx/store/src/models';\nimport { type Api, setupListeners as setupListenersFn } from '@reduxjs/toolkit/query';\n\nimport {\n type AngularHooksModuleOptions,\n type Dispatch,\n type StoreQueryConfig,\n shallowEqual,\n} from 'ngrx-rtk-query/core';\n\nconst createStoreApi = (\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(Store, undefined, { optional: true });\n if (!store) {\n throw new Error(`Provide the Store is necessary to use the queries. Did you forget to provide the store?`);\n }\n\n const dispatch = (action: Action) => {\n store.dispatch(action);\n return action;\n };\n const getState = store.selectSignal((state) => state);\n const useSelector = <K>(mapFn: (state: any) => K, options?: SelectSignalOptions<K>): Signal<K> =>\n store.selectSignal(mapFn, options);\n\n const hooks = { dispatch: dispatch as Dispatch, getState, useSelector };\n const createSelector = createSelectorFactory((projector) => defaultMemoize(projector, shallowEqual, shallowEqual));\n const getInjector = () => injector;\n\n return { hooks, createSelector, getInjector };\n };\n};\n\nexport function provideStoreApi(\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 {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue() {\n api.initApiStore(createStoreApi(api));\n },\n },\n provideState(api.reducerPath, api.reducer),\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["setupListeners","setupListenersFn"],"mappings":";;;;;AAmBA,MAAM,cAAc,GAAG,CACrB,GAAuD,EACvD,EAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,EAA8B,GAAA,EAAE,KAC3D;AACF,IAAA,OAAO,MAAgC;AACrC,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,uFAAA,CAAyF,CAAC;;AAG5G,QAAA,MAAM,QAAQ,GAAG,CAAC,MAAc,KAAI;AAClC,YAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtB,YAAA,OAAO,MAAM;AACf,SAAC;AACD,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;AACrD,QAAA,MAAM,WAAW,GAAG,CAAI,KAAwB,EAAE,OAAgC,KAChF,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;QAEpC,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAoB,EAAE,QAAQ,EAAE,WAAW,EAAE;AACvE,QAAA,MAAM,cAAc,GAAG,qBAAqB,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAClH,QAAA,MAAM,WAAW,GAAG,MAAM,QAAQ;AAElC,QAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE;AAC/C,KAAC;AACH,CAAC;AAEK,SAAU,eAAe,CAC7B,GAAuD,EACvD,kBAAEA,gBAAc,KAAuB,EAAE,EAAA;AAEzC,IAAAA,gBAAc,KAAK,KAAK,GAAG,SAAS,GAAGC,cAAgB,CAAC,GAAG,CAAC,QAAQ,EAAED,gBAAc,CAAC;AAErF,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,KAAK,EAAE,IAAI;YACX,QAAQ,GAAA;gBACN,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;aACtC;AACF,SAAA;QACD,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC;AAC3C,KAAA,CAAC;AACJ;;AC7DA;;AAEG;;;;"}