@ngrx/effects
- Version 18.0.2
- Published
- 560 kB
- 2 dependencies
- MIT license
Install
npm i @ngrx/effects
yarn add @ngrx/effects
pnpm add @ngrx/effects
Overview
Side effect model for @ngrx/store
Index
Variables
Functions
Classes
Interfaces
Type Aliases
Variables
variable EFFECTS_ERROR_HANDLER
const EFFECTS_ERROR_HANDLER: InjectionToken<EffectsErrorHandler>;
variable ROOT_EFFECTS_INIT
const ROOT_EFFECTS_INIT: string;
variable rootEffectsInit
const rootEffectsInit: any;
variable USER_PROVIDED_EFFECTS
const USER_PROVIDED_EFFECTS: InjectionToken<any[][]>;
Functions
function act
act: { <Input, OutputAction extends Action, ErrorAction extends Action>( project: (input: Input, index: number) => Observable<OutputAction>, error: (error: any, input: Input) => ErrorAction ): (source: Observable<Input>) => Observable<OutputAction | ErrorAction>; < Input, OutputAction extends Action, ErrorAction extends Action, CompleteAction extends Action = never, UnsubscribeAction extends Action = never >( config: ActConfig< Input, OutputAction, ErrorAction, CompleteAction, UnsubscribeAction > ): ( source: Observable<Input> ) => Observable<OutputAction | ErrorAction | CompleteAction | UnsubscribeAction>;};
Deprecated
Use plain RxJS operators instead. For more info see: https://github.com/ngrx/platform/issues/4072
function createEffect
createEffect: { < C extends EffectConfig & { functional?: false }, DT extends DispatchType<C>, OTP, R extends unknown, OT extends ObservableType<DT, OTP> >( source: () => R & ConditionallyDisallowActionCreator<DT, R>, config?: C ): R & CreateEffectMetadata; <Source extends () => Observable<unknown>>( source: Source, config: EffectConfig & { functional: true; dispatch: false } ): FunctionalEffect<Source>; <Source extends () => Observable<Action>>( source: Source & (ReturnType<Source> extends any ? OT extends ActionCreator ? 'ActionCreator cannot be dispatched. Did you forget to call the action creator function?' : unknown : unknown), config: EffectConfig & { functional: true; dispatch?: true } ): FunctionalEffect<Source>;};
function defaultEffectsErrorHandler
defaultEffectsErrorHandler: <T extends Action>( observable$: Observable<T>, errorHandler: ErrorHandler, retryAttemptLeft?: number) => Observable<T>;
function getEffectsMetadata
getEffectsMetadata: <T extends Record<keyof T, Object>>( instance: T) => EffectsMetadata<T>;
function mergeEffects
mergeEffects: ( sourceInstance: any, globalErrorHandler: ErrorHandler, effectsErrorHandler: EffectsErrorHandler) => Observable<EffectNotification>;
function ofType
ofType: { < AC extends ActionCreator<string, Creator>[], U extends Action = Action, V = ReturnType<AC[number]> >( ...allowedTypes: AC ): OperatorFunction<U, V>; < E extends Extract<U, { type: T1 }>, AC extends ActionCreator<string, Creator>, T1 extends string | AC, U extends Action = Action, V = T1 extends string ? E : ReturnType<Extract<T1, AC>> >( t1: T1 ): OperatorFunction<U, V>; < E extends Extract<U, { type: T1 | T2 }>, AC extends ActionCreator<string, Creator>, T1 extends string | AC, T2 extends string | AC, U extends Action = Action, V = ActionExtractor<T1, AC, E> | ActionExtractor<T2, AC, E> >( t1: T1, t2: T2 ): OperatorFunction<U, V>; < E extends Extract<U, { type: T1 | T2 | T3 }>, AC extends ActionCreator<string, Creator>, T1 extends string | AC, T2 extends string | AC, T3 extends string | AC, U extends Action = Action, V = | ActionExtractor<T1, AC, E> | ActionExtractor<T2, AC, E> | ActionExtractor<T3, AC, E> >( t1: T1, t2: T2, t3: T3 ): OperatorFunction<U, V>; < E extends Extract<U, { type: T1 | T2 | T3 | T4 }>, AC extends ActionCreator<string, Creator>, T1 extends string | AC, T2 extends string | AC, T3 extends string | AC, T4 extends string | AC, U extends Action = Action, V = | ActionExtractor<T1, AC, E> | ActionExtractor<T2, AC, E> | ActionExtractor<T3, AC, E> | ActionExtractor<T4, AC, E> >( t1: T1, t2: T2, t3: T3, t4: T4 ): OperatorFunction<U, V>; < E extends Extract<U, { type: T1 | T2 | T3 | T4 | T5 }>, AC extends ActionCreator<string, Creator>, T1 extends string | AC, T2 extends string | AC, T3 extends string | AC, T4 extends string | AC, T5 extends string | AC, U extends Action = Action, V = | ActionExtractor<T1, AC, E> | ActionExtractor<T2, AC, E> | ActionExtractor<T3, AC, E> | ActionExtractor<T4, AC, E> | ActionExtractor<T5, AC, E> >( t1: T1, t2: T2, t3: T3, t4: T4, t5: T5 ): OperatorFunction<U, V>; <V extends Action>(...allowedTypes: any[]): OperatorFunction<Action, V>;};
Fallback for more than 5 arguments. There is no inference, so the return type is the same as the input - Observable.
We provide a type parameter, even though TS will not infer it from the arguments, to preserve backwards compatibility with old versions of ngrx.
function provideEffects
provideEffects: { ( effects: Array<Type<unknown> | Record<string, FunctionalEffect>> ): EnvironmentProviders; (...effects: any[]): EnvironmentProviders;};
Runs the provided effects. Can be called at the root and feature levels.
Classes
class Actions
class Actions<V = Action> extends Observable<V> {}
constructor
constructor(source?: Observable<V>);
property ɵfac
static ɵfac: i0.ɵɵFactoryDeclaration<Actions<any>, never>;
property ɵprov
static ɵprov: i0.ɵɵInjectableDeclaration<Actions<any>>;
method lift
lift: <R>(operator: Operator<V, R>) => Observable<R>;
class EffectsFeatureModule
class EffectsFeatureModule {}
constructor
constructor( effectsRootModule: EffectsRootModule, effectsInstanceGroups: unknown[][], storeRootModule: StoreRootModule, storeFeatureModule: StoreFeatureModule);
property ɵfac
static ɵfac: i0.ɵɵFactoryDeclaration< EffectsFeatureModule, [null, null, { optional: true }, { optional: true }]>;
property ɵinj
static ɵinj: i0.ɵɵInjectorDeclaration<EffectsFeatureModule>;
property ɵmod
static ɵmod: i0.ɵɵNgModuleDeclaration<EffectsFeatureModule, never, never, never>;
class EffectsModule
class EffectsModule {}
property ɵfac
static ɵfac: i0.ɵɵFactoryDeclaration<EffectsModule, never>;
property ɵinj
static ɵinj: i0.ɵɵInjectorDeclaration<EffectsModule>;
property ɵmod
static ɵmod: i0.ɵɵNgModuleDeclaration<EffectsModule, never, never, never>;
method forFeature
static forFeature: { ( featureEffects: Array<Type<unknown> | Record<string, FunctionalEffect>> ): ModuleWithProviders<EffectsFeatureModule>; (...featureEffects: any[]): ModuleWithProviders<EffectsFeatureModule>;};
method forRoot
static forRoot: { ( rootEffects: Array<Type<unknown> | Record<string, FunctionalEffect>> ): ModuleWithProviders<EffectsRootModule>; (...rootEffects: any[]): ModuleWithProviders<EffectsRootModule>;};
class EffectSources
class EffectSources extends Subject<any> {}
constructor
constructor( errorHandler: ErrorHandler, effectsErrorHandler: EffectsErrorHandler);
property ɵfac
static ɵfac: i0.ɵɵFactoryDeclaration<EffectSources, never>;
property ɵprov
static ɵprov: i0.ɵɵInjectableDeclaration<EffectSources>;
method addEffects
addEffects: (effectSourceInstance: any) => void;
class EffectsRootModule
class EffectsRootModule {}
constructor
constructor( sources: EffectSources, runner: EffectsRunner, store: Store, rootEffectsInstances: unknown[], storeRootModule: StoreRootModule, storeFeatureModule: StoreFeatureModule, guard: {});
property ɵfac
static ɵfac: i0.ɵɵFactoryDeclaration< EffectsRootModule, [ null, null, null, null, { optional: true }, { optional: true }, { optional: true } ]>;
property ɵinj
static ɵinj: i0.ɵɵInjectorDeclaration<EffectsRootModule>;
property ɵmod
static ɵmod: i0.ɵɵNgModuleDeclaration<EffectsRootModule, never, never, never>;
method addEffects
addEffects: (effectsInstance: unknown) => void;
class EffectsRunner
class EffectsRunner implements OnDestroy {}
constructor
constructor(effectSources: EffectSources, store: Store<any>);
property isStarted
readonly isStarted: boolean;
property ɵfac
static ɵfac: i0.ɵɵFactoryDeclaration<EffectsRunner, never>;
property ɵprov
static ɵprov: i0.ɵɵInjectableDeclaration<EffectsRunner>;
method ngOnDestroy
ngOnDestroy: () => void;
method start
start: () => void;
Interfaces
interface CreateEffectMetadata
interface CreateEffectMetadata {}
property [CREATE_EFFECT_METADATA_KEY]
[CREATE_EFFECT_METADATA_KEY]: EffectConfig;
interface EffectConfig
interface EffectConfig {}
Configures an effect created by
createEffect
.
property dispatch
dispatch?: boolean;
Determines if the action emitted by the effect is dispatched to the store. If false, effect does not need to return type
Observable<Action>
.
property functional
functional?: boolean;
Determines whether the functional effect will be created. If true, the effect can be created outside the effects class.
property useEffectsErrorHandler
useEffectsErrorHandler?: boolean;
Determines if the effect will be resubscribed to if an error occurs in the main actions stream.
interface EffectNotification
interface EffectNotification {}
property effect
effect: Observable<any> | (() => Observable<any>);
property notification
notification: ObservableNotification<Action | null | undefined>;
property propertyName
propertyName: PropertyKey;
property sourceInstance
sourceInstance: any;
property sourceName
sourceName: string | null;
interface OnIdentifyEffects
interface OnIdentifyEffects {}
Interface to set an identifier for effect instances.
By default, each Effects class is registered once regardless of how many times the Effect class is loaded. By implementing this interface, you define a unique identifier to register an Effects class instance multiple times.
### Set an identifier for an Effects class
class EffectWithIdentifier implements OnIdentifyEffects {constructor(private effectIdentifier: string) {}ngrxOnIdentifyEffects() {return this.effectIdentifier;}
method ngrxOnIdentifyEffects
ngrxOnIdentifyEffects: () => string;
String identifier to differentiate effect instances.
interface OnInitEffects
interface OnInitEffects {}
Interface to dispatch an action after effect registration.
Implement this interface to dispatch a custom action after the effect has been added. You can listen to this action in the rest of the application to execute something after the effect is registered.
### Set an identifier for an Effects class
class EffectWithInitAction implements OnInitEffects {ngrxOnInitEffects() {return { type: '[EffectWithInitAction] Init' };}
method ngrxOnInitEffects
ngrxOnInitEffects: () => Action;
Action to be dispatched after the effect is registered.
interface OnRunEffects
interface OnRunEffects {}
Interface to control the lifecycle of effects.
By default, effects are merged and subscribed to the store. Implement the OnRunEffects interface to control the lifecycle of the resolved effects.
### Implement the OnRunEffects interface on an Effects class
export class UserEffects implements OnRunEffects {constructor(private actions$: Actions) {}ngrxOnRunEffects(resolvedEffects$: Observable<EffectNotification>) {return this.actions$.pipe(ofType('LOGGED_IN'),exhaustMap(() =>resolvedEffects$.pipe(takeUntil(this.actions$.pipe(ofType('LOGGED_OUT'))))));}}
method ngrxOnRunEffects
ngrxOnRunEffects: ( resolvedEffects$: Observable<EffectNotification>) => Observable<EffectNotification>;
Method to control the lifecycle of effects.
Type Aliases
type EffectsErrorHandler
type EffectsErrorHandler = <T extends Action>( observable$: Observable<T>, errorHandler: ErrorHandler) => Observable<T>;
type EffectsMetadata
type EffectsMetadata<T extends Record<keyof T, Object>> = { [Key in EffectPropertyKey<T>]?: EffectConfig;};
type FunctionalEffect
type FunctionalEffect< Source extends () => Observable<unknown> = () => Observable<unknown>> = Source & FunctionalCreateEffectMetadata;
Package Files (18)
- index.d.ts
- src/act.d.ts
- src/actions.d.ts
- src/effect_creator.d.ts
- src/effect_notification.d.ts
- src/effect_sources.d.ts
- src/effects_actions.d.ts
- src/effects_error_handler.d.ts
- src/effects_feature_module.d.ts
- src/effects_metadata.d.ts
- src/effects_module.d.ts
- src/effects_resolver.d.ts
- src/effects_root_module.d.ts
- src/effects_runner.d.ts
- src/lifecycle_hooks.d.ts
- src/models.d.ts
- src/provide_effects.d.ts
- src/tokens.d.ts
Dependencies (2)
Dev Dependencies (0)
No dev dependencies.
Peer Dependencies (3)
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@ngrx/effects
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@ngrx/effects)
- HTML<a href="https://www.jsdocs.io/package/@ngrx/effects"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 5099 ms. - Missing or incorrect documentation? Open an issue for this package.