v0.1.1
Closes #3
Closes #4
without a default — it is simply absent from the result.
-
deserialize() no longer console.error()s for an omitted optional field
cryptic TypeError (or silently packing false for booleans).
"Missing value for required field ''" at pack() instead of a
-
undefined for a required field throws
{id}; schemas with required fields always reach the serializer now.all-undefined object on an optional-only schema emit
{id}0instead of -
pack() no longer short-circuits on Object.keys().length, which made an
Also:
is byte-identical to omitting the property, for every field type.
Presence is now decided by value !== undefined, so explicit undefined
silently packed as false, inventing a value the caller never passed.
rejected with "Invalid index -1 for enum". Booleans were worse — they
value was written. For enums this produced index -1, which unpack()
{ field: undefined } counted as present: the bitmask bit was set and a
fix: treat explicit undefined as omitted for optional fieldsOptional-field presence was checked with hasOwnProperty, so an explicit
chore: bump version to 0.1.1
bunx picks node_modules/.bin/tsc, matching local runs.
@types/bun globals (Buffer, console, bun:test) that resolve fine locally.
instead of the pinned devDependency, so the step failed with missing
ci: use project-pinned tsc for type-checkBare tsc resolved to whatever TypeScript the runner happened to expose
Full Changelog: v0.1.0...v0.1.1