UNPKG

use-mutable-source

Version:

Minimal and elegant way to integrate any library with React

26 lines (25 loc) 1.1 kB
import { type DependencyList } from 'react'; /** * Generates a source. This process is considered with side-effects and runs * every time a dependency changes. * * @param init - function that generates the source, it can optionally returns also a destroy function * @param deps - dependency list that defines the source lifecycle * @returns the source ref and a function to lazily initialize the source */ export declare function useFactory<Source>(init: () => [source: Source, destroy?: (source: Source) => void], deps: DependencyList): readonly [{ current: null; destroy?: undefined; } | { current: Source; destroy?: ((source: Source) => void) | undefined; }, () => Source]; /** * Generates a pure source. This process is considered side-effects free and * runs every time a dependency changes. * * @param init - function that generates the pure source * @param deps - dependency list that defines the source lifecycle * @returns the source */ export declare const usePureFactory: <Source>(init: () => Source, deps: DependencyList) => Source;