mobx-bonsai
Version:
A fast lightweight alternative to MobX-State-Tree + Y.js two-way binding
16 lines (13 loc) • 500 B
text/typescript
import { YjsStructure } from "./types"
import { failure } from "../../error/failure"
import { requireYjs } from "../requireYjs"
export function isYjsStructure(target: unknown): target is YjsStructure {
const Y = requireYjs()
return target instanceof Y.Map || target instanceof Y.Array
}
export function assertIsYjsStructure(target: unknown): asserts target is YjsStructure {
const valid = isYjsStructure(target)
if (!valid) {
throw failure("target is not a bindable y.js object")
}
}