valtio
Version:
🧙 Valtio makes proxy-state simple for React and Vanilla
39 lines (38 loc) • 1.16 kB
TypeScript
/**
* Determines if an object is a proxy Map created with proxyMap
*/
export declare const isProxyMap: (obj: object) => boolean;
/**
* Creates a reactive Map that integrates with Valtio's proxy system
*
* This utility creates a Map-like object that works with Valtio's reactivity system,
* allowing you to track changes to the Map in the same way as regular proxy objects.
* The API is the same as the standard JavaScript Map.
*
* @example
* import { proxyMap } from 'valtio/utils'
* const state = proxyMap([["key", "value"]])
*
* This can be used inside a proxy as well
*
* const state = proxy({
* count: 1,
* map: proxyMap()
* })
*
* When using an object as a key, you can wrap it with `ref` so it's not proxied
* this is useful if you want to preserve the key equality
*
* import { ref } from 'valtio'
*
* const key = ref({})
* state.set(key, "value")
* state.get(key) //value
*
* const key = {}
* state.set(key, "value")
* state.get(key) //undefined
*/
export declare function proxyMap<K, V>(entries?: Iterable<[K, V]> | undefined | null): Map<K, V> & {
$$valtioSnapshot: Omit<Map<K, V>, "set" | "delete" | "clear">;
};