- fix: paths must be resolved as POSIX in order to be valid TypeScript imports #116
- fix: make transform windows-compatible #119
- fix: include check for nullable types for properties when deserialization is called internally #118
- docs: add comprehensive performance metrics
- fix: relative paths pointing through node_modules would create a second Source
- feat: move behavior of
--lib
into transform itself - fix: object with an object as a value containing a rhs bracket or brace would exit early 3b33e94
- fix: forgot to build transform
- fix: isPrimitive should only trigger on actual primitives
- fix: deserialize custom should take in string
- fix: reference to nonexistent variable during custom deserialization layer 2
- fix: forgot to actually build the transform
- fix: build transform
- fix: wrongly assumed pointer types within arbitrary deserialization
- fix: wrong pointer type being passed during map deserialization
- fix: transform not generating the right load operations for keys
- fix: whitespace not working in objects or struct deserialization
- fix: JSON.Raw not working when deserializing as Map<string, JSON.Raw>
- rename: change libs folder to lib
- docs: add instructions for using
--lib
in README
- fix: add as-bs to
--lib
section - chore: clean up transform
- refactor: transform should import
~lib/as-bs.ts
instead of relative path
- fix: import from base directory index.ts
- fix: revert pull request #112
- fix: warn on presence of invalid types contained in a schema #112
- feat: change
JSON.Raw
to actual class to facilitate proper support without transformations - fix: remove old
JSON.Raw
logic from transform code
- feat: add support for custom serializers and deserializers #110
- perf: add benchmarks for both AssemblyScript and JavaScript
- docs: publish preliminary benchmark results
- tests: ensure nested serialization works and add to tests
- feat: finish arbitrary type implementation
- feat: introduce
JSON.Obj
to handle objects effectively - feat: reimplement arbitrary array deserialization
- fix: remove brace check on array deserialization
- feat: introduce native support for
JSON.Obj
transformations - feat: implement arbitrary object serialization
- fix: deserialization of booleans panics on
false
- fix:
bs.resize
should be type-safe - impl: add
JSON.Obj
type as prototype to handle arbitrary object structures - chore: rename static objects (schemas) to structs and name arbitrary objects as
obj
- tests: add proper tests for arbitrary types
- fix: empty method generation using outdated function signature
- docs: update readme to be more concise
- feat: reintroduce support for
Box<T>
-wrapped primitive types - tests: add extensive tests to all supported types
- fix: 6-byte keys being recognized on deserialize
- perf: take advantage of aligned memory to use a single 64-bit load on 6-byte keys
- fix:
bs.proposeSize()
should incrementstackSize
bysize
instead of setting it - fix: allow runtime to manage
bs.buffer
- fix: memory leaks in
bs
module - fix: add (possibly temporary)
JSON.Memory.shrink()
to shrink memory inbs
- perf: prefer growing memory by
nextPowerOf2(size + 64)
for less reallocations - tests: add boolean tests to
Box<T>
- fix: serialization of non-growable data types should grow
bs.stackSize
- fix: write to proper offset when deserializing string with \u0000-type escapes
- fix: simplify and fix memory offset issues with bs module
- fix: properly predict minimum size of to-be-serialized schemas
- fix: replace as-test with temporary framework to mitigate json-as versioning issues
- fix: fix multiple memory leaks during serialization
- feat: align memory allocations for better performance
- feat: achieve a space complexity of O(n) for serialization operations, unless dealing with \u0000-type escapes
- fix: disable SIMD in generated transform code by default
- fix: re-add as-bs dependency so that it will not break in non-local environments
- fix: remove AS201 'conversion from type usize to i32' warning
- fix: add as-bs to peer dependencies so only one version is installed
- fix: point as-bs imports to submodule
- fix: remove submodule in favor of static module
- fix: bs.ensureSize would not grow and thus cause memory faults
- fix: bs.ensureSize triggering unintentionally
- feat: finish implementation of arbitrary data serialization and deserialization using JSON.Value
- feat: reinstate usage of
JSON.Box<T>()
to support nullable primitive types - feat: eliminate the need to import the
JSON
namespace when defining a schema - feat: reduce memory usage so that it is viable for low-memory environments
- feat: write to a central buffer and reduce memory overhead
- feat: rewrite the transform to properly resolve schemas and link them together
- feat: pre-allocate and compute the minimum size of a schema to avoid memory out of range errors