@zedux/atoms
Version:
A Molecular State Engine for React
24 lines (23 loc) • 971 B
TypeScript
import { AnyAtomInstance, AtomGetters } from '../types/index.js';
import { StackItem } from '../utils/index.js';
import { Ecosystem } from './Ecosystem.js';
import { SelectorCache } from './Selectors.js';
/**
* A stack of AtomInstances and AtomSelectors that are currently evaluating -
* innermost instance/selector (the one that's actually currently evaluating) at
* the end of the array.
*
* This has to live in the module scope so `readInstance` can access it without
* any ecosystem context. That's how injectors work.
*/
export declare let stack: StackItem[];
export declare const readInstance: () => AnyAtomInstance<"any">;
export declare const setStack: (newStack: StackItem[]) => StackItem[];
export declare class EvaluationStack {
private readonly ecosystem;
atomGetters: AtomGetters;
constructor(ecosystem: Ecosystem);
finish(): void;
read(): StackItem | undefined;
start(node: AnyAtomInstance | SelectorCache<any, any>): void;
}