mirror of
https://github.com/pmndrs/zustand.git
synced 2025-12-08 19:45:52 +00:00
34 lines
605 B
TypeScript
34 lines
605 B
TypeScript
type ReplacedMap = {
|
|
type: 'Map'
|
|
value: [string, unknown][]
|
|
}
|
|
|
|
export const replacer = (
|
|
key: string,
|
|
value: unknown,
|
|
): ReplacedMap | unknown => {
|
|
if (value instanceof Map) {
|
|
return {
|
|
type: 'Map',
|
|
value: Array.from(value.entries()),
|
|
}
|
|
} else {
|
|
return value
|
|
}
|
|
}
|
|
|
|
export const reviver = (key: string, value: ReplacedMap | unknown): unknown => {
|
|
if (isReplacedMap(value)) {
|
|
return new Map(value.value)
|
|
}
|
|
return value
|
|
}
|
|
|
|
const isReplacedMap = (value: any): value is ReplacedMap => {
|
|
if (value && value.type === 'Map') {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|