- Condense logic
- Export
h
as aliasedcreateElement
named export (-7b)
- Export
- Fix an issue where a boolean child (
true
orfalse
) 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
createElement
tag 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
createElement
function is now a named argument, aliased ash
.
- Support for fragments via the
Fragment
export. - 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