firejsx
Version:
The React Framework for SSB, SSR and Serverless technologies
37 lines (36 loc) • 1.47 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const Page_1 = require("./classes/Page");
const StaticArchitect_1 = require("./architects/StaticArchitect");
const SSB_1 = require("./SSB");
const path_1 = require("path");
const Globals_1 = require("./Globals");
class default_1 {
constructor(pathToFlyDir) {
this.pageMap = new Map();
Globals_1.initGlobals();
pathToFlyDir = path_1.resolve(pathToFlyDir);
const firejsx_map = require(path_1.join(pathToFlyDir, 'firejsx.map.json'));
this.renderer = new StaticArchitect_1.default(Object.assign(Object.assign({}, firejsx_map.staticConfig), { outDir: pathToFlyDir, fullExternalPath: path_1.join(pathToFlyDir, firejsx_map.staticConfig.externals.full) }));
if (this.renderer.config.ssr)
this.renderer.requireAppPage();
for (const __page in firejsx_map.pageMap) {
const page = new Page_1.default(__page);
page.chunks = firejsx_map.pageMap[__page];
this.pageMap.set(__page, page);
}
}
render(page, path, content = {}) {
const _page = this.pageMap.get(page);
if (!_page)
throw new Error(`Page ${page} does not exist`);
return [
this.renderer.render(_page, path, content),
SSB_1.generateMapJS(path, content, _page)
];
}
destruct() {
Globals_1.destructGlobals();
}
}
exports.default = default_1;
;