- Condense logic
- Export
has aliasedcreateElementnamed export (-7b)
- Export
- Fix an issue where a boolean child (
trueorfalse) is rendered as text.
- Condense and simplify logic (original savings -20b, overall -10b with bug fix):
- Component test (-10b)
- Children test (-2b)
- Fragment appending (-0b
createElement, -5bFragment) - Assign props value in initialization (-1b)
- Simpler boolean comparison (-3b)
- Use simple loop in append (-4b)
- Fix TypeScript typings for
createElementtag and children argument types.
- Condense and simplify logic for children normalization (-15b).
- The attributes positional argument must always be provided, even if null or undefined.
- Drop support for Node v10.
- There is no longer a default export. The
createElementfunction is now a named argument, aliased ash.
- Support for fragments via the
Fragmentexport. - Add JSX runtime for use with Babel automatic JSX transform.
- For alignment with similar libraries, children can be passed either as an attribute or as a third argument, or as variadic argument after attributes.
- Include TypeScript type definitions.
- Shrink bundle size by around 17% in optimal scenarios (with tree-shaking)
- Simplify append behavior
- Compose reusable components are now suppported. When passed a function as the first argument, render behavior is deferred to this function; passed attributes including children, the function is expected to return an HTMLElement.
- Further optimize children normalization logic, saving 13kb minified / 2kb gzipped
- Add repository details to npm package
- Initial release