UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

77 lines (69 loc) 1.34 kB
/** * Utilities related to reactivity that we're not quite ready to expose in the public API but which are useful for * internal component development. * * @internal * @internal */ /** * @internal * @internal */ export interface Signal<T> { /** @internal */ value: T; /** * @param mutateFn * @internal */ mutate(mutateFn: (value: T) => void): void; } /** * @internal * @internal */ export interface ReactiveObservable { /** @internal */ notify(): void; } /** * @internal * @internal */ export interface ReactiveTrackingTarget { /** @internal */ clear(): void; /** @internal */ destroy(): void; } /** * @param initialValue * @param equalityFunction * @internal * @internal */ export function signal<T>(initialValue: T, equalityFunction?: (a: T, b: T) => boolean): Signal<T>; /** * @internal * @internal */ export function createObservable(): ReactiveObservable; /** * @param notify * @internal * @internal */ export function createTrackingTarget(notify: () => void): ReactiveTrackingTarget; /** * @param observable * @internal * @internal */ export function trackAccess(observable: ReactiveObservable): void; /** * @param target * @param callback * @internal * @internal */ export function runTracked<T>(target: ReactiveTrackingTarget, callback: () => T): T | null;