yahoi
Version:
Yet Another Highly Opinionated Isomorphic Framework
51 lines (41 loc) • 1.19 kB
JavaScript
/*
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));
});
}
}
*/