dom-renderer

A light-weight DOM Renderer supports Web components standard & TypeScript language


Keywords
light-weight, dom, render, web, component, typescript, ecmascript, html5
License
Other
Install
npm install dom-renderer@2.3.0

Documentation

DOM Renderer

A light-weight DOM Renderer supports Web components standard & TypeScript language.

NPM Dependency CI & CD

NPM

Open in GitPod

Usage

JavaScript

import { DOMRenderer } from 'dom-renderer';

const newVNode = new DOMRenderer().patch(
    {
        tagName: 'body',
        node: document.body
    },
    {
        tagName: 'body',
        children: [
            {
                tagName: 'a',
                props: { href: 'https://idea2.app/' },
                style: { color: 'red' },
                children: [{ text: 'idea2app' }]
            }
        ]
    }
);

console.log(newVNode);

TypeScript

Edit DOM Renderer example

tsconfig.json

{
    "compilerOptions": {
        "jsx": "react-jsx",
        "jsxImportSource": "dom-renderer"
    }
}

index.tsx

import { DOMRenderer } from 'dom-renderer';

const newVNode = new DOMRenderer().render(
    <a href="https://idea2.app/" style={{ color: 'red' }}>
        idea2app
    </a>
);

console.log(newVNode);

Node.js & Bun

import { Readable } from 'stream';
import { createServer } from 'http';
import { DOMRenderer } from 'dom-renderer';

const renderer = new DOMRenderer();

const Hello = () => <h1>Hello, JSX SSR!</h1>;

createServer((request, response) => {
    const stream = renderer.renderToReadableStream(<Hello />);

    Readable.fromWeb(stream).pipe(response);
}).listen(8080);

Framework

Web components

Edit MobX Web components

Original

Inspiration

SnabbDOM

Prototype

Edit DOM Renderer