UNPKG

@zedux/stores

Version:

The legacy composable store model of Zedux

25 lines (24 loc) 1.17 kB
import { AtomTemplateBase, Ecosystem } from '@zedux/atoms'; import { AtomInstance } from './AtomInstance'; import { AnyAtomGenerics, AtomGenerics, AtomValueOrFactory } from './types'; export type AtomInstanceRecursive<G extends Omit<AtomGenerics, 'Node' | 'Template'>> = AtomInstance<G & { Node: AtomInstanceRecursive<G>; Template: AtomTemplateRecursive<G>; }>; export type AtomTemplateRecursive<G extends Omit<AtomGenerics, 'Node' | 'Template'>> = AtomTemplate<G & { Node: AtomInstanceRecursive<G>; Template: AtomTemplateRecursive<G>; }>; export declare class AtomTemplate<G extends AtomGenerics & { Node: AtomInstanceRecursive<G>; Template: AtomTemplateRecursive<G>; } = AnyAtomGenerics> extends AtomTemplateBase<G> { /** * This method should be overridden when creating custom atom classes that * create a custom atom instance class. Return a new instance of your atom * instance class. */ _createInstance(ecosystem: Ecosystem, id: string, params: G['Params']): G['Node']; getInstanceId(ecosystem: Ecosystem, params?: G['Params']): string; override(newValue: AtomValueOrFactory<G>): AtomTemplate<G>; }