one
Version:
One is a new React Framework that makes Vite serve both native and web.
43 lines (42 loc) • 2.51 kB
JavaScript
import { createWorkerHandler } from "./server/workerHandler.native.js";
import { compileManifest } from "./createHandleRequest.native.js";
import { getFetchStaticHtml, setFetchStaticHtml } from "./server/staticHtmlFetcher.native.js";
import { setServerGlobals } from "./server/setServerGlobals.native.js";
import { setupBuildInfo } from "./server/setupBuildOptions.native.js";
import { createWorkerHandler as createWorkerHandler2 } from "./server/workerHandler.native.js";
async function createServer(options) {
var _ref, _ref1, _ref2, _ref3;
var _options_buildInfo, _options_buildInfo1, _options_buildInfo2, _options_buildInfo3, _options_buildInfo4;
var manifest = options.manifest || ((_options_buildInfo = options.buildInfo) === null || _options_buildInfo === void 0 ? void 0 : _options_buildInfo.manifest);
if (!manifest) throw new Error("one/headless-server: manifest is required");
var buildInfo = {
manifest,
oneOptions: options.oneOptions,
routeToBuildInfo: (_ref = (_options_buildInfo1 = options.buildInfo) === null || _options_buildInfo1 === void 0 ? void 0 : _options_buildInfo1.routeToBuildInfo) !== null && _ref !== void 0 ? _ref : {},
routeMap: (_ref1 = (_options_buildInfo2 = options.buildInfo) === null || _options_buildInfo2 === void 0 ? void 0 : _options_buildInfo2.routeMap) !== null && _ref1 !== void 0 ? _ref1 : {},
preloads: (_ref2 = (_options_buildInfo3 = options.buildInfo) === null || _options_buildInfo3 === void 0 ? void 0 : _options_buildInfo3.preloads) !== null && _ref2 !== void 0 ? _ref2 : {},
cssPreloads: (_ref3 = (_options_buildInfo4 = options.buildInfo) === null || _options_buildInfo4 === void 0 ? void 0 : _options_buildInfo4.cssPreloads) !== null && _ref3 !== void 0 ? _ref3 : {}
};
setupBuildInfo(buildInfo);
setServerGlobals();
var handler = createWorkerHandler2({
oneOptions: options.oneOptions,
buildInfo,
lazyRoutes: options.routes
});
return {
/** handle an incoming request — returns Response or null (unmatched) */
fetch: handler.handleRequest,
/** hot-swap the route table without recreating the server */
updateRoutes(newManifest, newRoutes) {
var newBuildInfo = {
...buildInfo,
manifest: newManifest
};
setupBuildInfo(newBuildInfo);
handler.updateRoutes(newBuildInfo, newRoutes);
}
};
}
export { compileManifest, createServer, createWorkerHandler, getFetchStaticHtml, setFetchStaticHtml };
//# sourceMappingURL=headless-server.native.js.map