UNPKG

mobx-keystone

Version:

A MobX powered state management solution based on data trees with first class support for TypeScript, snapshots, patches and much more

22 lines (17 loc) 677 B
import { fromSnapshot } from "../../snapshot/fromSnapshot" import { getSnapshot } from "../../snapshot/getSnapshot" import { isTweakedObject } from "../../tweaker/core" import { namespace } from "../../utils" import { ActionCallArgumentSerializer, cannotSerialize } from "./core" export const objectSnapshotSerializer: ActionCallArgumentSerializer<object, object> = { id: `${namespace}/objectSnapshot`, serialize(value) { if (typeof value !== "object" || value === null || !isTweakedObject(value, false)) { return cannotSerialize } return getSnapshot(value) }, deserialize(snapshot) { return fromSnapshot(snapshot) }, }