@rxap/remote-method
Version:
This package provides abstractions for defining and executing remote methods in Angular applications. It includes features such as automatic refreshing, proxying, and error handling. It offers a structured way to manage remote calls and their dependencies
26 lines (25 loc) • 1.55 kB
TypeScript
import { AbstractType, InjectionToken, Injector, Type } from '@angular/core';
import { BaseDefinition, BaseDefinitionMetadata } from '@rxap/definition';
import { Subject } from 'rxjs';
import { Refreshable } from '@rxap/utilities';
import { CounterSubject } from '@rxap/rxjs';
import * as i0 from "@angular/core";
export interface BaseRemoteMethodMetadata extends BaseDefinitionMetadata {
refresh?: Array<Type<Refreshable> | InjectionToken<Refreshable> | AbstractType<Refreshable>>;
}
export declare function RxapRemoteMethod<MetaData extends BaseDefinitionMetadata = BaseDefinitionMetadata>(metadataOrId: MetaData | string, className?: string, packageName?: string): (target: any) => void;
export declare abstract class BaseRemoteMethod<ReturnType = any, Parameter = any, Metadata extends BaseRemoteMethodMetadata = BaseRemoteMethodMetadata> extends BaseDefinition<Metadata> {
executed$: Subject<ReturnType>;
executionsInProgress$: CounterSubject;
readonly injector: Injector;
private _pauseRefresh;
constructor(injector?: Injector | null, metaData?: any | null);
call(parameters?: Parameter): Promise<ReturnType>;
executed(result: ReturnType): void;
pauseRefresh(): void;
resumeRefresh(): void;
refresh(): void;
protected abstract _call(parameters?: Parameter): Promise<ReturnType> | ReturnType;
static ɵfac: i0.ɵɵFactoryDeclaration<BaseRemoteMethod<any, any, any>, [{ optional: true; }, { optional: true; }]>;
static ɵprov: i0.ɵɵInjectableDeclaration<BaseRemoteMethod<any, any, any>>;
}