UNPKG

@wttech/graal-bridge-react

Version:

React entrypoint for Graal integration

43 lines 1.72 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = __importDefault(require("react")); var server_1 = __importDefault(require("react-dom/server")); function renderComponent(componentType) { return function (props) { var value = JSON.parse(props); return server_1.default.renderToString(react_1.default.createElement(componentType, value)); }; } function renderStaticComponent(componentType) { return function (props) { var value = JSON.parse(props); return server_1.default.renderToStaticMarkup(react_1.default.createElement(componentType, value)); }; } var GraalBridgeReact = /** @class */ (function () { function GraalBridgeReact() { this.registry = {}; } GraalBridgeReact.prototype.register = function (name, renderFunction) { this.registry[name] = renderFunction; }; GraalBridgeReact.prototype.registerReact = function (name, componentType) { this.register(name, renderComponent(componentType)); }; GraalBridgeReact.prototype.registerReactStatic = function (name, componentType) { this.register(name, renderStaticComponent(componentType)); }; GraalBridgeReact.prototype.render = function (name, props) { var renderFunction = this.registry[name]; return renderFunction(props); }; GraalBridgeReact.prototype.expose = function () { global.render = this.render.bind(this); }; return GraalBridgeReact; }()); exports.default = GraalBridgeReact; //# sourceMappingURL=graal-bridge-react.js.map