UNPKG

yahoi

Version:

Yet Another Highly Opinionated Isomorphic Framework

47 lines (32 loc) 1.07 kB
import ControllerResponseType from './../ControllerResponseType'; import React from 'react'; import { renderToString } from 'react-dom/server' import fs from 'fs'; export default class RenderContainer extends ControllerResponseType { constructor(containerPath, props) { super(); this.containerPath = containerPath; this.__renderView = props.__renderView; this.view = props.view; this.render = this.render.bind(this); } render() { return new Promise((fulfill, reject) => { let sourceComponent = require(`${this.containerPath}.jsx`).default; let Component = (React.createFactory(sourceComponent))(); let html = renderToString(Component); this.__renderView(this.view, { container: html }).render().then(htmlView => { fulfill(htmlView); }).catch(e => { reject(e); }) }); } respond(req, res) { this.render(req).then(content => { res.send(content); }).catch(e => { res.send('error: ' + String(e)); }); } }