@tsrx/ripple@0.2.4

Ripple-TS/ripple@tsrx/ripple@0.2.4Sep 17, 2026by github-actions[bot]

Upgrading?

AI Summary

A compiler and runtime patch that optimizes static template generation and attribute setting logic using Web IDL tables.

Key Highlights

  • Builds small static templates using DOM calls instead of HTML string parsing.
  • Uses Web IDL setter tables to emit optimized attribute setting functions.
  • Direct attribute setting for proven `data-` and `aria-` values using `textTypes`.

New Features

  • Optimized static template compilation for improved initial render speed.
  • Compiler optimizations for setting attributes on standard HTML elements.

Full Release Notes

### Patch Changes

- [#1497](https://github.com/Ripple-TS/ripple/pull/1497)
  [`2469ccf`](https://github.com/Ripple-TS/ripple/commit/2469ccfba1a6afad4af6658a777dc735767c5625)
  Thanks [@leonidaz](https://github.com/leonidaz)! - Build small static templates
  with DOM calls: a template of up to eight nested elements, text nodes and
  placeholder comments now compiles to `template_el` instead of an HTML string, so
  a page's first render never starts the HTML parser for it. Trees the parser
  would restructure (table models, selects, list items in list items, ruby
  annotations, raw-text elements) keep parsing. A template holding an element that
  could load a resource is flagged so its master is built in the inert template
  document.

  With `textTypes`, a `data-` or `aria-` attribute whose value TypeScript proves
  to be a string, number or bigint is written with `setAttribute` directly
  (`primitiveAttributeRanges` in the text type facts).

  Attributes of standard HTML elements are written without the runtime's setter
  discovery: a generated table of Web IDL setters (`src/dom-setters.js`, from
  TypeScript's `lib.dom.d.ts`) tells the compiler whether a name is a settable
  property of its element, so it emits `set_property_value` (a non-string value is
  assigned) or `set_attribute_value` (`setAttribute` alone). Custom elements, tags
  that are also SVG or MathML elements, and namespaced content keep
  `set_attribute`.

Related Repositories