Skip to content

Releases: Nefsen402/destam-dom

v0.6.1

13 May 02:50
Compare
Choose a tag to compare

This release is a minor feature release.

Features:

  • Custom element mount/cleanup functions now can take multiple arguments to register multiple callbacks at the same time.

Bug fixes:

  • Fix a bug where trying to share dom objects that destam-dom generated could cause unexpected results.
  • Fixed many transform bugs with transform/staticMount

Improvements:

  • More robust unit tests
  • Implemented unit testing for jsx and staticMount transforms.

v0.6.0

29 Apr 05:03
Compare
Choose a tag to compare

This release brings improvements to unit testing and code static analysis.

Breaking changes:

  • mount() no longer interprets functions as custom components. This is to allow lower level components to be defined through static analysis tools.
  • Whitespace parsing adjusted for JSX
  • OArray export no longer is the destam OArray but a stripped down version specifically for use with destam-dom for lower overhead.

Fixes:

  • Fixed an issue where an assertion would happen for nested observers even when using the API correctly.
  • Many fixes to transform/staticMount

Improvements:

  • transform/staticMount has been improved to start generating low level custom components. This reduces runtime and memory usage.
  • transform/staticMount can now unroll some cases of .map() called on observers.
  • Tests have been improved to now test jsx parsing and static analysis.

v0.5.2

24 Apr 14:06
Compare
Choose a tag to compare

This release is the first to offer unit tests and this release is meant to address some defects found with the unit tests.

Fixes:

  • Array reconciliation is fixed
  • When reordering array elements, sometimes the dom nodes would be placed in reverse order
  • htm parser has more predictable whitespace semantics.

v0.5.1

15 Apr 22:03
Compare
Choose a tag to compare

This is a hotfix release.

Fixes:

  • Default initialize options for transform/htmlLiteral
  • Replacing custom components caused a crash

v0.5.0

15 Apr 05:58
Compare
Choose a tag to compare

This release has a focus on performance and adds a few new features.

Breaking changes:

  • the tagged template literal no longer supports observers in string literals

Features:

  • Improved transform/staticMount to also support extract basic observers.
  • Improved transform/htmlLiteral to support jsx namespaces and improved the tagged template literals to also support custom hyperscript.

v0.4.0

30 Mar 22:28
Compare
Choose a tag to compare

This release was focused on performance and in some workloads performance can be increased 150-200%!

The major performance improvement comes from handling non reactive state separately from reactive state. We don't need to follow all the reactive code paths with high overhead for some static content. Unfortunately, the bundle size is higher, but well worth it.

Breaking changes:

  • the children prop is required to be a fixed javascript array. It can no longer be a generic mountable object. This is to allow the newly introduced performance optimizations to walk the tree statically.

Features:

  • Introduced new staticMount babel transpiler pass that will examine the dom for any static values and will pull those out as vanilla js to reduce overhead introduced by destam-dom.
  • dom.js has everything it needs for hydration/ssr to be implemented.

v0.3.1

27 Mar 20:27
Compare
Choose a tag to compare

This is a bug fix release, there are no breaking changes.

  • Fixed various JSX transform issues. This should bring it in line with the better tested html() template literal.

v0.3.0

25 Mar 08:36
Compare
Choose a tag to compare

Breaking changes:

  • simplified lifetime hooks. Lifetime hooks no longer exist for native elements, but instead only available for custom elements

Added features:

  • Added a lifetime hook for finished mount for custom components
  • Added documentation about lifetime hooks

v0.2.0

23 Mar 23:39
Compare
Choose a tag to compare

This release includes many improvements.

Breaking changes:

  • Element properties can no longer be duplicated
  • Special casing for event listeners has been removed. click= now must be $onclick= to utilize the native browser's handling. The old version supports the new style so a transition can be more gradual.
  • Styles with a object topology must now use the $style property.

Improvements:

  • Performance improvements (mostly in the memory/garbage collection area)
  • All array mounts are now reconciliated as they are all managed through the same code.
  • Replacing a html node will now directly use replaceChild

v0.1.0

11 Mar 04:06
Compare
Choose a tag to compare

Changes:

  • Improved performance
  • Size reduction

Breaking changes:

  • Return value of mount() no longer returns an object with a remove() method. The pure destroy function reference with be passed.
  • Props can no longer dynamically change type (a property cannot be passed a function to act as a listener, and then morph into a attribute by setting another value)