UNPKG

830 BJavaScriptView Raw
1/* @flow */
2
3import { createWriteFunction } from './write'
4import { createRenderFunction } from './render'
5import type { RenderOptions } from './create-renderer'
6
7export function createBasicRenderer ({
8 modules = [],
9 directives = {},
10 isUnaryTag = (() => false),
11 cache
12}: RenderOptions = {}) {
13 const render = createRenderFunction(modules, directives, isUnaryTag, cache)
14
15 return function renderToString (
16 component: Component,
17 context: any,
18 done: any
19 ): void {
20 if (typeof context === 'function') {
21 done = context
22 context = {}
23 }
24 let result = ''
25 const write = createWriteFunction(text => {
26 result += text
27 return false
28 }, done)
29 try {
30 render(component, write, context, () => {
31 done(null, result)
32 })
33 } catch (e) {
34 done(e)
35 }
36 }
37}