src/express.js
import { rjxHTMLString, } from './main';
/**
* Use RJX for express view rendering
* @param {string} filePath - path to rjx express view
* @param {object} options - property used for express view {locals}
* @param {object} options.__boundConfig - property used to bind this object for RJX, can be used to add custom components
* @param {string} [options.__DOCTYPE="<!DOCTYPE html>"] - html doctype string
* @param {*} callback
*/
export function __express(filePath, options, callback) {
try {
const rjxModule = options.__rjx || require(filePath);
const resources = Object.assign({}, options);
delete resources.__boundConfig;
delete resources.__DOCTYPE;
delete resources.__rjx;
const rjxRenderedString = rjxHTMLString.call(options.__boundConfig || {}, {
rjx: rjxModule,
resources,
});
callback(null, `${options.__DOCTYPE || '<!DOCTYPE html>'}
${rjxRenderedString}`);
} catch (e) {
callback(e);
}
}