UNPKG

yahoi

Version:

Yet Another Highly Opinionated Isomorphic Framework

52 lines (42 loc) 1.21 kB
/* import ControllerResponseType from './../ControllerResponseType'; import React from 'react'; import { renderToString } from 'react-dom/server' import fs from 'fs'; export default class RenderComponent extends ControllerResponseType { constructor(props1, props2) { if(typeof(props1)=='object') { super(props2); this.content = props1; } else { super(props1); this.content = null; this.componentPath = props1; } } render() { return new Promise((fulfill, reject) => { if(this.content!=null) { fulfill(this.content); } else { // turn off for prod env if(typeof(require.cache[`${this.componentPath}.jsx`])!='undefined') { delete require.cache[`${this.componentPath}.jsx`]; } let sourceComponent = require(`${this.componentPath}.jsx`).default; let Component = (React.createFactory(sourceComponent))(); let html = renderToString(Component); fulfill(html); } }); } respond(req, res) { this.render(req).then(content => { res.send(content); }).catch(e => { res.send('error: ' + String(e)); }); } } */ "use strict";