@motorcycle/mostly-html
v1.0.0
Published
Server-side rendering for Motorcycle.ts
Downloads
94
Readme
@motorcycle/mostly-html -- 0.0.0
Server-side rendering for Motorcycle.ts
Get it
yarn add @motorcycle/mostly-html
# or
npm install --save @motorcycle/mostly-html
API Documentation
All functions are curried!
export type HtmlSources<A = Element, B = Event> = {
readonly html$: Stream<HtmlString>
readonly dom: DomSource<A, B>
}
Html<A = Element, B = Event>(sinks: HtmlSinks): HtmlSources<A, B>
Renders mostly-dom VNodes into HTML for server-side rendering.
import { run } from '@motorcycle/run'
import { Html, HtmlSources, HtmlSinks } from '@motorcycle/mostly-html'
import { UI } from './UI'
import { observe } from '@motorcycle/stream'
const { sources: { html$ } } = run<HtmlSources, HtmlSinks>(UI, Html)
observe((html: string) => { /* Do something with html *\/ }, html$)
export function Html<A = Element, B = Event>(sinks: HtmlSinks): HtmlSources<A, B> {
const { view$ } = sinks
const html$ = hold(map(toHtml, view$))
const dom = new HtmlDomSource<A, B>([])
return { dom, html$ }
}
HtmlSinks
export type HtmlSinks = {
readonly view$: Stream<VNode>
}