@solidjs/signals
Version:
SolidJS' standalone reactivity implementation
53 lines (52 loc) • 2.03 kB
TypeScript
import { Queue, type Computed, type Effect } from "./core/index.js";
import type { Signal } from "./core/index.js";
export interface BoundaryComputed<T> extends Computed<T> {
_propagationMask: number;
}
type RevealSlot = CollectionQueue | RevealController;
type BoolAccessor = () => boolean;
export declare class RevealController {
_togetherAccessor: BoolAccessor;
_collapsedAccessor: BoolAccessor;
_slots: RevealSlot[];
_parentController?: RevealController;
_disabled: Signal<boolean>;
_collapsed: Signal<boolean>;
_ready: boolean;
_evaluating: boolean;
constructor(together: BoolAccessor, collapsed: BoolAccessor);
_forEachOwnedSlot(fn: (slot: RevealSlot) => boolean | void): boolean;
isReady(): boolean;
register(slot: RevealSlot): void;
unregister(slot: RevealSlot): void;
evaluate(disabledOverride?: boolean, collapsedOverride?: boolean): void;
}
export declare class CollectionQueue extends Queue {
_collectionType: number;
_sources: Set<Computed<any>>;
_tree?: BoundaryComputed<any>;
_pending: boolean;
_disabled: Signal<boolean>;
_collapsed: Signal<boolean>;
_revealController?: RevealController;
_initialized: boolean;
_onFn: (() => any) | undefined;
_prevOn: any;
constructor(type: number);
run(type: number): void;
notify(node: Effect<any>, type: number, flags: number, error?: any): boolean;
checkSources(): void;
}
export declare function createLoadingBoundary(fn: () => any, fallback: () => any, options?: {
on?: () => any;
}): import("./signals.js").Accessor<unknown>;
export declare function createErrorBoundary<U>(fn: () => any, fallback: (error: unknown, reset: () => void) => U): import("./signals.js").Accessor<unknown>;
export declare function createRevealOrder<T>(fn: () => T, options?: {
together?: BoolAccessor;
collapsed?: BoolAccessor;
}): T;
export declare function flatten(children: any, options?: {
skipNonRendered?: boolean;
doNotUnwrap?: boolean;
}): any;
export {};