芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/node_modules/immer/src/utils/plugins.ts
import { ImmerState, Patch, ImmerScope, Drafted, AnyObject, ImmerBaseState, AnyMap, AnySet, ProxyTypeES5Array, ProxyTypeES5Object, ProxyTypeMap, ProxyTypeSet, die } from "../internal" /** Plugin utilities */ const plugins: { Patches?: { generatePatches_( state: ImmerState, basePath: PatchPath, patches: Patch[], inversePatches: Patch[] ): void generateReplacementPatches_( rootState: ImmerState, replacement: any, patches: Patch[], inversePatches: Patch[] ): void applyPatches_
(draft: T, patches: Patch[]): T } ES5?: { willFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void createES5Proxy_
( base: T, parent?: ImmerState ): Drafted
hasChanges_(state: ES5ArrayState | ES5ObjectState): boolean } MapSet?: { proxyMap_
(target: T, parent?: ImmerState): T proxySet_
(target: T, parent?: ImmerState): T } } = {} type Plugins = typeof plugins export function getPlugin
( pluginKey: K ): Exclude
{ const plugin = plugins[pluginKey] if (!plugin) { die(18, pluginKey) } // @ts-ignore return plugin } export function loadPlugin
( pluginKey: K, implementation: Plugins[K] ): void { if (!plugins[pluginKey]) plugins[pluginKey] = implementation } /** ES5 Plugin */ interface ES5BaseState extends ImmerBaseState { assigned_: {[key: string]: any} parent_?: ImmerState revoked_: boolean } export interface ES5ObjectState extends ES5BaseState { type_: typeof ProxyTypeES5Object draft_: Drafted
base_: AnyObject copy_: AnyObject | null } export interface ES5ArrayState extends ES5BaseState { type_: typeof ProxyTypeES5Array draft_: Drafted
base_: any copy_: any } /** Map / Set plugin */ export interface MapState extends ImmerBaseState { type_: typeof ProxyTypeMap copy_: AnyMap | undefined assigned_: Map
| undefined base_: AnyMap revoked_: boolean draft_: Drafted
} export interface SetState extends ImmerBaseState { type_: typeof ProxyTypeSet copy_: AnySet | undefined base_: AnySet drafts_: Map
// maps the original value to the draft value in the new set revoked_: boolean draft_: Drafted
} /** Patches plugin */ export type PatchPath = (string | number)[]