taggedjs
Version:
tagged template reactive html
49 lines (48 loc) • 5 kB
TypeScript
import { LikeObservable } from '../TagJsTags/processSubscribeWithAttribute.function.js';
import { UnaryFunction as OperatorFunction, SubjectSubscriber, Subscription } from './subject.utils.js';
export type OnSubscription<T> = (subscription: Subscription<T>) => unknown;
export declare class Subject<T> implements LikeObservable<T> {
onSubscription?: OnSubscription<T> | undefined;
methods: OperatorFunction<any, any, any>[];
isSubject: boolean;
subscribers: Subscription<T>[];
subscribeWith?: (x: SubjectSubscriber<T>) => Subscription<T>;
value?: any;
constructor(value?: T, onSubscription?: OnSubscription<T> | undefined);
subscribe(callback: SubjectSubscriber<T>): Subscription<any> | Subscription<T>;
next(value?: T): void;
set: (value?: T) => void;
emit(): void;
toPromise(): Promise<T>;
/** like toPromise but faster.
* Once called, unsubscribe occurs.
* No subscription to manage UNLESS the callback will never occur THEN subscription needs to be closed with result.unsubscribe() */
toCallback(callback: (x: T) => any): Subscription<any> | Subscription<T>;
pipe(): Subject<T>;
pipe<A, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>): Subject<A>;
pipe<A, B, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>): Subject<B>;
pipe<A, B, C, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>): Subject<C>;
pipe<A, B, C, D, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>): Subject<D>;
pipe<A, B, C, D, E, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>): Subject<E>;
pipe<A, B, C, D, E, F, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>): Subject<F>;
pipe<A, B, C, D, E, F, G, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>, op7: OperatorFunction<F, G, RESOLVE>): Subject<G>;
pipe<A, B, C, D, E, F, G, H, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>, op7: OperatorFunction<F, G, RESOLVE>, op8: OperatorFunction<G, H, RESOLVE>): Subject<H>;
pipe<A, B, C, D, E, F, G, H, I, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>, op7: OperatorFunction<F, G, RESOLVE>, op8: OperatorFunction<G, H, RESOLVE>, op9: OperatorFunction<H, I, RESOLVE>): Subject<I>;
pipe<A, B, C, D, E, F, G, H, I, RESOLVE>(op1: OperatorFunction<T, A, RESOLVE>, op2: OperatorFunction<A, B, RESOLVE>, op3: OperatorFunction<B, C, RESOLVE>, op4: OperatorFunction<C, D, RESOLVE>, op5: OperatorFunction<D, E, RESOLVE>, op6: OperatorFunction<E, F, RESOLVE>, op7: OperatorFunction<F, G, RESOLVE>, op8: OperatorFunction<G, H, RESOLVE>, op9: OperatorFunction<H, I, RESOLVE>, ...operations: OperatorFunction<any, any, any>[]): Subject<unknown>;
setMethods(operations: OperatorFunction<any, any, any>[]): void;
/** Wait for all observables to emit before continuing */
static all<A, B, C, D, E, F>(args: [LikeObservable<A> | A, LikeObservable<B> | B, LikeObservable<C> | C, LikeObservable<D> | D, LikeObservable<E> | E, LikeObservable<F> | F]): Subject<[A, B, C, D, E, F]>;
static all<A, B, C, D, E>(args: [LikeObservable<A> | A, LikeObservable<B> | B, LikeObservable<C> | C, LikeObservable<D> | D, LikeObservable<E> | E]): Subject<[A, B, C, D, E]>;
static all<A, B, C, D>(args: [LikeObservable<A> | A, LikeObservable<B> | B, LikeObservable<C> | C, LikeObservable<D> | D]): Subject<[A, B, C, D]>;
static all<A, B, C>(args: [LikeObservable<A> | A, LikeObservable<B> | B, LikeObservable<C> | C]): Subject<[A, B, C]>;
static all<A, B>(args: [LikeObservable<A> | A, LikeObservable<B> | B]): Subject<[A, B]>;
static all<A>(args: [LikeObservable<A> | A]): Subject<[A]>;
static globalSubCount$: Subject<number>;
}
export declare class Subjective<T> extends Subject<T> {
_value?: T;
constructor(...args: [value?: T, onSubscription?: OnSubscription<T>]);
next(value?: any): void;
emit(): void;
}
export declare function defineValueOn(subject: Subjective<any>): void;