You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.3 KiB
62 lines
2.3 KiB
import { ImmerState, Patch, ImmerScope, Drafted, AnyObject, ImmerBaseState, AnyMap, AnySet, ProxyType } from "../internal"; |
|
/** Plugin utilities */ |
|
declare const plugins: { |
|
Patches?: { |
|
generatePatches_(state: ImmerState, basePath: PatchPath, patches: Patch[], inversePatches: Patch[]): void; |
|
generateReplacementPatches_(base: any, replacement: any, patches: Patch[], inversePatches: Patch[]): void; |
|
applyPatches_<T>(draft: T, patches: Patch[]): T; |
|
}; |
|
ES5?: { |
|
willFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void; |
|
createES5Proxy_<T>(base: T, parent?: ImmerState): Drafted<T, ES5ObjectState | ES5ArrayState>; |
|
hasChanges_(state: ES5ArrayState | ES5ObjectState): boolean; |
|
}; |
|
MapSet?: { |
|
proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T; |
|
proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T; |
|
}; |
|
}; |
|
declare type Plugins = typeof plugins; |
|
export declare function getPlugin<K extends keyof Plugins>(pluginKey: K): Exclude<Plugins[K], undefined>; |
|
export declare function loadPlugin<K extends keyof Plugins>(pluginKey: K, implementation: Plugins[K]): void; |
|
/** ES5 Plugin */ |
|
interface ES5BaseState extends ImmerBaseState { |
|
assigned_: { |
|
[key: string]: any; |
|
}; |
|
parent_?: ImmerState; |
|
revoked_: boolean; |
|
} |
|
export interface ES5ObjectState extends ES5BaseState { |
|
type_: ProxyType.ES5Object; |
|
draft_: Drafted<AnyObject, ES5ObjectState>; |
|
base_: AnyObject; |
|
copy_: AnyObject | null; |
|
} |
|
export interface ES5ArrayState extends ES5BaseState { |
|
type_: ProxyType.ES5Array; |
|
draft_: Drafted<AnyObject, ES5ArrayState>; |
|
base_: any; |
|
copy_: any; |
|
} |
|
/** Map / Set plugin */ |
|
export interface MapState extends ImmerBaseState { |
|
type_: ProxyType.Map; |
|
copy_: AnyMap | undefined; |
|
assigned_: Map<any, boolean> | undefined; |
|
base_: AnyMap; |
|
revoked_: boolean; |
|
draft_: Drafted<AnyMap, MapState>; |
|
} |
|
export interface SetState extends ImmerBaseState { |
|
type_: ProxyType.Set; |
|
copy_: AnySet | undefined; |
|
base_: AnySet; |
|
drafts_: Map<any, Drafted>; |
|
revoked_: boolean; |
|
draft_: Drafted<AnySet, SetState>; |
|
} |
|
/** Patches plugin */ |
|
export declare type PatchPath = (string | number)[]; |
|
export {}; |
|
//# sourceMappingURL=plugins.d.ts.map
|