ng-commander
Version:
Command pattern for Angular applications
98 lines (92 loc) • 2.73 kB
TypeScript
import * as _angular_core from '@angular/core';
import { OnDestroy } from '@angular/core';
import * as rxjs from 'rxjs';
import { Observable } from 'rxjs';
declare enum CommandEventType {
START = "start",
SUCCESS = "success",
FAIL = "fail",
RESTART = "restart",
DEAD = "dead"
}
interface CommandEvent {
type: CommandEventType;
timestamp: Date;
command: Command;
data?: any;
}
type CommandEventSignal = CommandEvent;
interface Command {
id: string;
execute(): Observable<any>;
events?: CommandEvent[];
}
interface CommanderConfiguration {
error: {
maxNumberOfRetries: number;
};
}
declare enum CommanderState$1 {
IDLE = 0,
EXECUTING = 1,
DONE = 2,
ERROR = 3
}
declare enum CommandsType$1 {
WAITING = 0,
DONE = 1,
ERROR = 2,
DEAD = 3
}
type CommandsSignal = Command[];
type CommanderStateSignal = CommanderState$1;
declare enum CommanderState {
IDLE = 0,
EXECUTING = 1,
DONE = 2,
ERROR = 3
}
declare enum CommandsType {
WAITING = 0,
DONE = 1,
ERROR = 2,
DEAD = 3
}
declare class Commander implements OnDestroy {
private configuration;
private commandsSubject;
private commandsDoneSubject;
private commandsInErrorSubject;
private commandsDeadSubject;
private stateSubject;
private processingCommand;
private destroy$;
commands$: rxjs.Observable<Command[]>;
commandsDone$: rxjs.Observable<Command[]>;
commandsInError$: rxjs.Observable<Command[]>;
commandsDead$: rxjs.Observable<Command[]>;
state$: rxjs.Observable<CommanderState>;
commandsSignal: _angular_core.Signal<Command[]>;
commandsDoneSignal: _angular_core.Signal<Command[]>;
commandsInErrorSignal: _angular_core.Signal<Command[]>;
commandsDeadSignal: _angular_core.Signal<Command[]>;
stateSignal: _angular_core.Signal<CommanderState>;
constructor();
ngOnDestroy(): void;
init(configuration: CommanderConfiguration): void;
private startCommander;
private handleSuccessfulCommand;
private handleFailedCommand;
stop(): void;
addCommand(command: Command): void;
replayCommandsInError(): void;
private trashDeadCommands;
flushDeadCommands(): void;
getCommands(type: CommandsType): Command[];
getState(): CommanderState;
private executeNextCommand;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Commander, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<Commander>;
}
export { CommandEventType, Commander, CommanderState$1 as CommanderState, CommandsType$1 as CommandsType };
export type { Command, CommandEvent, CommandEventSignal, CommanderConfiguration, CommanderStateSignal, CommandsSignal };