2.6.2 • Published 4 months ago

dom-renderer v2.6.2

Weekly downloads
1
License
LGPL-3.0-or-later
Repository
github
Last release
4 months ago

DOM Renderer

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

NPM Dependency CI & CD

NPM

Open in GitPod

Feature

Usage

JavaScript

Sync Rendering

import { DOMRenderer, VNode } from 'dom-renderer';

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

Async Rendering (experimental)

import { DOMRenderer, VNode } from 'dom-renderer';

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

TypeScript

Edit DOM Renderer example

tsconfig.json

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

index.tsx

Sync Rendering
import { DOMRenderer } from 'dom-renderer';

const newVNode = new DOMRenderer().render(
    <a href="https://idea2.app/" style={{ color: 'red' }}>
        idea2app
    </a>
);
console.log(newVNode);
Async Rendering (experimental)
import { DOMRenderer } from 'dom-renderer';

const newVNode = new DOMRenderer().render(
    <a href="https://idea2.app/" style={{ color: 'red' }}>
        idea2app
-    </a>
+    </a>,
+    document.body,
+    'async'
);
-console.log(newVNode);
+newVNode.then(console.log);

Node.js & Bun

view.tsx

import { DOMRenderer } from 'dom-renderer';

const renderer = new DOMRenderer();

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

export const generateStream = () => renderer.renderToReadableStream(<Hello />);

index.ts

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

import { generateStream } from './view';

createServer((request, response) => {
    const stream = generateStream();

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

Framework

Web components

Edit MobX Web components

Original

Inspiration

SnabbDOM

Prototype

Edit DOM Renderer

2.6.2

4 months ago

2.6.1

7 months ago

2.6.0

7 months ago

2.5.0-rc.1

7 months ago

2.5.0-rc.2

7 months ago

2.5.0-rc.0

7 months ago

2.5.0

7 months ago

2.5.1

7 months ago

2.5.2-rc.1

7 months ago

2.5.2-rc.0

7 months ago

2.4.1

8 months ago

2.4.0

8 months ago

2.4.3

7 months ago

2.4.2

8 months ago

2.4.4

7 months ago

2.3.1

8 months ago

2.3.0

11 months ago

2.2.0

11 months ago

2.1.8

1 year ago

2.1.6

1 year ago

2.1.5

1 year ago

2.1.7

1 year ago

2.1.4

1 year ago

2.1.2

1 year ago

2.1.3

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.6

1 year ago

2.0.5

1 year ago

2.0.3

1 year ago

2.0.4

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0-rc.2

2 years ago

2.0.0-rc.3

2 years ago

2.0.0-rc.4

2 years ago

2.0.0-rc.5

2 years ago

2.0.0-rc.0

2 years ago

2.0.0-rc.1

2 years ago

2.0.0-alpha.0

2 years ago

2.0.0-alpha.1

2 years ago

2.0.0-beta.2

2 years ago

2.0.0-beta.1

2 years ago

2.0.0-beta.0

2 years ago

2.0.0-rc.6

2 years ago

2.0.0-beta.6

2 years ago

2.0.0-rc.7

2 years ago

2.0.0-beta.5

2 years ago

2.0.0-rc.8

2 years ago

2.0.0-beta.4

2 years ago

2.0.0

2 years ago

2.0.0-rc.9

2 years ago

2.0.0-beta.3

2 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

1.0.0-beta

6 years ago

1.0.0-alpha

6 years ago

0.9.0

6 years ago

0.8.1

6 years ago

0.8.0

6 years ago

0.7.0

6 years ago

0.6.0

6 years ago

0.4.0

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.1.0

6 years ago