@solidjs/signals
Version:
SolidJS' standalone reactivity implementation
27 lines (26 loc) • 1.35 kB
TypeScript
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>;