UNPKG

co-share

Version:

A Javascript framework for easily building shared applications such as chats and games

23 lines (22 loc) 1.8 kB
import { MonoTypeOperatorFunction, Observable } from "rxjs"; import { Store } from "."; import { StoreLink } from "./store-link"; export declare type RequestFunction<S extends Store, Params extends Array<any>, Result> = (this: S, origin: StoreLink | undefined, ...params: Params) => Observable<Result>; export declare type Request<S extends Store, Params extends Array<any>, Result> = ((this: S, ...params: Params) => Observable<Result>) & { publishTo(target: StoreLink, ...params: Params): Observable<Result>; forwardFrom(origin: StoreLink, ...params: Params): Observable<Result>; }; export declare type UnboundRequest<S extends Store, Params extends Array<any>, Result> = { publishTo(target: StoreLink, ...params: Params): Observable<Result>; forwardFrom(store: Store, origin: StoreLink, ...params: Params): Observable<Result>; execute: RequestFunction<S, Params, Result>; bindTo(store: S, overwrite?: boolean): Request<S, Params, Result>; }; declare function createUnboundRequest<S extends Store, Params extends Array<any>, Result>(identifier: string, execute: RequestFunction<S, Params, Result>, multipleResponses?: boolean): UnboundRequest<S, Params, Result>; export declare const Request: { create: <S extends Store, Params extends any[], Result>(store: S, identifier: string, execute: RequestFunction<S, Params, Result>, multipleResponses?: boolean, overwrite?: boolean) => Request<S, Params, Result>; createUnbound: typeof createUnboundRequest; }; export declare function catchFunction<S extends Store, Params extends Array<any>, Result>(fn: RequestFunction<S, Params, Result>, store: S, origin: StoreLink | undefined, ...params: Params): Observable<Result>; export declare function takeOneOptional<T>(takeOne: boolean): MonoTypeOperatorFunction<T>; export {};