MCPcopy Create free account
hub / github.com/ngrx/platform / provideEffects

Function provideEffects

modules/effects/src/provide_effects.ts:59–94  ·  view source on GitHub ↗
(
  ...effects:
    | Array<Type<unknown> | Record<string, FunctionalEffect>>
    | [Array<Type<unknown> | Record<string, FunctionalEffect>>]
)

Source from the content-addressed store, hash-verified

57 * ```
58 */
59export function provideEffects(
60 ...effects:
61 | Array<Type<unknown> | Record<string, FunctionalEffect>>
62 | [Array<Type<unknown> | Record<string, FunctionalEffect>>]
63): EnvironmentProviders {
64 const effectsClassesAndRecords = effects.flat();
65 const effectsClasses = getClasses(effectsClassesAndRecords);
66
67 return makeEnvironmentProviders([
68 effectsClasses,
69 provideEnvironmentInitializer(() => {
70 inject(ROOT_STORE_PROVIDER);
71 inject(FEATURE_STATE_PROVIDER, { optional: true });
72
73 const effectsRunner = inject(EffectsRunner);
74 const effectSources = inject(EffectSources);
75 const shouldInitEffects = !effectsRunner.isStarted;
76
77 if (shouldInitEffects) {
78 effectsRunner.start();
79 }
80
81 for (const effectsClassOrRecord of effectsClassesAndRecords) {
82 const effectsInstance = isClass(effectsClassOrRecord)
83 ? inject(effectsClassOrRecord)
84 : effectsClassOrRecord;
85 effectSources.addEffects(effectsInstance);
86 }
87
88 if (shouldInitEffects) {
89 const store = inject(Store);
90 store.dispatch(effectsInit());
91 }
92 }),
93 ]);
94}

Callers 2

app.config.tsFile · 0.90

Calls 5

getClassesFunction · 0.90
isClassFunction · 0.90
startMethod · 0.80
dispatchMethod · 0.65
addEffectsMethod · 0.45

Tested by

no test coverage detected