2.6 KiB
@lit-labs/ssr-dom-shim
Overview
This package provides minimal implementations of Element
, HTMLElement
,
CustomElementRegistry
, and customElements
, designed to be used when Server
Side Rendering (SSR) web components from Node, including Lit components.
Usage
Usage from Lit
Lit itself automatically imports these shims when running in Node, so Lit users should typically not need to directly depend on or import from this package.
See the lit.dev SSR docs for general information about server-side rendering with Lit.
Usage in other contexts
Other libraries or frameworks who wish to support SSR are welcome to also depend
on these shims. (This package is planned to eventually move to
@webcomponents/ssr-dom-shim
to better reflect this use case). There are two
main patterns for providing access to these shims to users:
-
Assigning shims to
globalThis
, ensuring that assignment occurs before user-code runs. -
Importing shims directly from the module that provides your base class, using the
node
export condition to ensure this only happens when running in Node, and not in the browser.
Lit takes approach #2 for all of the shims except for customElements
, so that
users who have imported lit
are able to call customElements.define
in their
components from Node.
Exports
The main module exports the following values. Note that no globals are set by this module.
Element
HTMLElement
- (Inherits from Element)
CustomElementRegistry
customElements
Contributing
Please see CONTRIBUTING.md.