zustand/tests/test-utils.ts
2024-09-15 11:13:40 +09:00

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
}