immer-yjs
immer-yjs copied to clipboard
test!: tests for util module
I am creating unit tests for the util
module. In the process, I discovered a couple of descrepencies between the source code in util.ts
and TypeScript. Fixing these are technically breaking changes:
-
isJSONObject
should returnfalse
fornull
. This was easy to miss because 1) JavaScript returnsobject
fortypeof null
, and 2) TypeScript does not check that the return value is consistent with the the type predicate. The new unit tests detects this. - There's no need for an
else
branch intoYDataType
. If there are no type errors, it will never returnundefined
, so we can removeundefined
from the return type. While this function is not exposed by the library (index.ts
), it might be a breaking change. - Remove
any
from the argument type oftoPlainValue
. - Changing the return type of
notImplemented
tonever
; since it always throws an exception, it never returns.
I plan to release these under the next major version, where we also bump the peer dependency on immer to v10 (#13).