@amadeus-it-group/tansu
Version:
tansu is a lightweight, push-based framework-agnostic state management library. It borrows the ideas and APIs originally designed and implemented by Svelte stores and extends them with computed and batch.
36 lines (35 loc) • 1.72 kB
TypeScript
import type { AsyncDeriveFn, OnUseArgument, StoresInput, StoresInputValues, SyncDeriveFn, Unsubscriber } from '../types';
import type { Consumer } from './store';
import { RawStoreComputedOrDerived } from './storeComputedOrDerived';
import type { RawStoreWritable } from './storeWritable';
declare abstract class RawStoreDerived<T, S extends StoresInput> extends RawStoreComputedOrDerived<T> implements Consumer {
private readonly arrayMode;
private readonly producers;
private producerLinks;
private cleanUpFn;
flags: number;
constructor(producers: S, initialValue: T);
callCleanUpFn(): void;
startUse(): void;
endUse(): void;
areProducersUpToDate(): boolean;
recompute(): void;
protected abstract derive(values: S): void;
}
export declare class RawStoreDerivedStore<T, S extends StoresInput> extends RawStoreDerived<T, S> {
protected readonly derive: (values: StoresInputValues<S>) => void;
constructor(stores: S, initialValue: T, derive: (values: StoresInputValues<S>) => void);
}
export declare class RawStoreSyncDerived<T, S extends StoresInput> extends RawStoreDerived<T, S> {
private readonly deriveFn;
constructor(stores: S, _initialValue: T, deriveFn: SyncDeriveFn<T, S>);
protected derive(values: StoresInputValues<S>): void;
}
export declare const createOnUseArg: <T>(store: RawStoreWritable<T>) => OnUseArgument<T>;
export declare class RawStoreAsyncDerived<T, S extends StoresInput> extends RawStoreDerived<T, S> {
private readonly deriveFn;
private readonly setFn;
constructor(stores: S, initialValue: T, deriveFn: AsyncDeriveFn<T, S>);
protected derive(values: StoresInputValues<S>): Unsubscriber | void;
}
export {};