Skip to content

AtloriaElement

reference
1 min readUpdated

Kind: Class

Source: atloria-monorepo/packages/ui-core/src/lib/reactive-element-base.ts

A LitElement that guarantees its reactive properties are actually reactive.

Lit installs an accessor per declared property on the PROTOTYPE. Under ES2022 class-field semantics (useDefineForClassFields, which several bundlers apply regardless of this package's own tsconfig) a declared field is additionally installed on each INSTANCE with [[Define]]. The instance property wins, so:

  • every assignment writes a plain data property,
  • Lit's setter never runs and nothing is marked changed,
  • the component renders once with its defaults and never again.

Nothing throws. The value is present and readable, which is what makes it so hard to spot: the published API playground held a 524-path spec in spec, 633 items in the endpoint list's endpoints, and rendered "No endpoints found".

Deleting the own property re-exposes the accessor; re-assigning the captured value sends it through the setter and records the change. This is what Lit's own pre-upgrade rescue does — done here so it holds however the consuming build compiles class fields.

Extends: LitElement

Methods

MethodSignatureReturns
connectedCallbackconnectedCallback()void
rescueShadowedPropertiesrescueShadowedProperties()void

Where it refuses work

  • AtloriaElement stops the work with an early return when !declared.

Was this page helpful?

Download as PDF