UNPKG

@solidjs/signals

Version:

SolidJS' standalone reactivity implementation

27 lines (26 loc) 1.35 kB
import { $REFRESH, type Computed } from "../core/index.js"; import { type ProjectionOptions, type Store } from "./store.js"; export declare function createProjectionInternal<T extends object = {}>(fn: (draft: T) => void | T | Promise<void | T> | AsyncIterable<void | T>, initialValue?: T, options?: ProjectionOptions): { store: Store<T> & { [$REFRESH]: any; }; node: Computed<void | T>; }; /** * Creates a mutable derived store (projection). The derive function receives a mutable * draft and can mutate it directly or return a new value for reconciliation. * * ```typescript * const store = createProjection<T>(fn, initialValue?, options?: ProjectionOptions); * ``` * @param fn a function that receives the current draft and mutates it or returns new data * @param initialValue the initial store value (defaults to `{}`) * @param options `ProjectionOptions` -- name, key, all * * @see {@link https://github.com/solidjs/x-reactivity#createprojection} */ export declare function createProjection<T extends object = {}>(fn: (draft: T) => void | T | Promise<void | T> | AsyncIterable<void | T>, initialValue?: T, options?: ProjectionOptions): Store<T> & { [$REFRESH]: any; }; export declare function createWriteTraps(isActive?: () => boolean): ProxyHandler<any>; export declare const writeTraps: ProxyHandler<any>;