UNPKG

@shopify/react-server

Version:
63 lines (56 loc) 2.21 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); require('cross-fetch'); var Koa = require('koa'); var compose = require('koa-compose'); var mount = require('koa-mount'); var ping = require('../ping/ping.js'); var logger$1 = require('../logger/logger.js'); var metrics = require('../metrics/metrics.js'); var render = require('../render/render.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var Koa__default = /*#__PURE__*/_interopDefaultLegacy(Koa); var compose__default = /*#__PURE__*/_interopDefaultLegacy(compose); var mount__default = /*#__PURE__*/_interopDefaultLegacy(mount); const logger = console; /** * Create a full Koa server for server rendering an `@shopify/react-html` based React application defined by `options.render` * @param options * @returns a Server instance */ function createServer(options) { const { /* eslint-disable no-process-env */ ip = process.env.REACT_SERVER_IP && process.env.REACT_SERVER_IP !== 'undefined' ? process.env.REACT_SERVER_IP : '0.0.0.0', port = process.env.REACT_SERVER_PORT && process.env.REACT_SERVER_PORT !== 'undefined' ? parseInt(process.env.REACT_SERVER_PORT, 10) : 8081, // a default is set in sewingKitMiddleware assetPrefix = process.env.CDN_URL && process.env.CDN_URL !== 'undefined' ? process.env.CDN_URL : undefined, render: render$1, renderError, renderRawErrorMessage = process.env.NODE_ENV === 'development', /* eslint-enable no-process-env */ serverMiddleware, assetName, htmlProps, proxy = false, app = new Koa__default["default"]() } = options; app.proxy = proxy; app.use(mount__default["default"]('/services/ping', ping.ping)); app.use(logger$1.requestLogger); app.use(metrics.metricsMiddleware); if (serverMiddleware) { app.use(compose__default["default"](serverMiddleware)); } app.use(render.createRender(render$1, { assetPrefix, assetName, renderError, renderRawErrorMessage, htmlProps })); return app.listen(port, ip, () => { logger.log(`started react-server on ${ip}:${port}`); }); } exports.createServer = createServer;