(
...effects:
| Array<Type<unknown> | Record<string, FunctionalEffect>>
| [Array<Type<unknown> | Record<string, FunctionalEffect>>]
)
| 57 | * ``` |
| 58 | */ |
| 59 | export 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 | } |
no test coverage detected