@cedarjs/vite 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/bins/rw-vite-build.mjs +61 -0
- package/bins/rw-vite-dev.mjs +57 -0
- package/bins/vite.mjs +12 -0
- package/dist/build/build.d.ts +21 -0
- package/dist/build/build.d.ts.map +1 -0
- package/dist/build/build.js +78 -0
- package/dist/buildFeServer.d.ts +6 -0
- package/dist/buildFeServer.d.ts.map +1 -0
- package/dist/buildFeServer.js +39 -0
- package/dist/buildRouteHooks.d.ts +3 -0
- package/dist/buildRouteHooks.d.ts.map +1 -0
- package/dist/buildRouteHooks.js +45 -0
- package/dist/buildRouteManifest.d.ts +6 -0
- package/dist/buildRouteManifest.d.ts.map +1 -0
- package/dist/buildRouteManifest.js +58 -0
- package/dist/buildRscClientAndServer.d.ts +4 -0
- package/dist/buildRscClientAndServer.d.ts.map +1 -0
- package/dist/buildRscClientAndServer.js +30 -0
- package/dist/bundled/react-server-dom-webpack.server.d.ts +2 -0
- package/dist/bundled/react-server-dom-webpack.server.d.ts.map +1 -0
- package/dist/bundled/react-server-dom-webpack.server.js +33529 -0
- package/dist/cjs/ClientRouter.d.ts +1 -0
- package/dist/cjs/build/build.d.ts +1 -0
- package/dist/cjs/build/build.js +116 -0
- package/dist/cjs/buildFeServer.d.ts +1 -0
- package/dist/cjs/buildFeServer.js +63 -0
- package/dist/cjs/buildRouteHooks.js +66 -0
- package/dist/cjs/buildRouteManifest.js +92 -0
- package/dist/cjs/buildRscClientAndServer.js +54 -0
- package/dist/cjs/client.d.ts +1 -0
- package/dist/cjs/clientSsr.d.ts +1 -0
- package/dist/cjs/devFeServer.js +153 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +184 -0
- package/dist/cjs/lib/StatusError.js +36 -0
- package/dist/cjs/lib/entries.js +53 -0
- package/dist/cjs/lib/envVarDefinitions.js +87 -0
- package/dist/cjs/lib/getMergedConfig.js +187 -0
- package/dist/cjs/lib/onWarn.js +36 -0
- package/dist/cjs/lib/registerFwGlobalsAndShims.js +117 -0
- package/dist/cjs/middleware/index.js +22 -0
- package/dist/cjs/middleware/invokeMiddleware.js +52 -0
- package/dist/cjs/middleware/register.js +106 -0
- package/dist/cjs/middleware/types.js +16 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plugins/vite-plugin-jsx-loader.js +42 -0
- package/dist/cjs/plugins/vite-plugin-remove-from-bundle.js +56 -0
- package/dist/cjs/plugins/vite-plugin-rsc-analyze.js +104 -0
- package/dist/cjs/plugins/vite-plugin-rsc-reload.js +75 -0
- package/dist/cjs/plugins/vite-plugin-rsc-routes-auto-loader.js +159 -0
- package/dist/cjs/plugins/vite-plugin-rsc-routes-imports.js +125 -0
- package/dist/cjs/plugins/vite-plugin-rsc-ssr-router-import.js +75 -0
- package/dist/cjs/plugins/vite-plugin-rsc-transform-client.js +229 -0
- package/dist/cjs/plugins/vite-plugin-rsc-transform-server.js +398 -0
- package/dist/cjs/plugins/vite-plugin-swap-apollo-provider.js +41 -0
- package/dist/cjs/rsc/rscBuildAnalyze.js +116 -0
- package/dist/cjs/rsc/rscBuildClient.js +91 -0
- package/dist/cjs/rsc/rscBuildCopyCssAssets.js +56 -0
- package/dist/cjs/rsc/rscBuildEntriesFile.js +115 -0
- package/dist/cjs/rsc/rscBuildForServer.js +157 -0
- package/dist/cjs/rsc/rscBuildForSsr.js +172 -0
- package/dist/cjs/rsc/rscBuildRwEnvVars.js +56 -0
- package/dist/cjs/rsc/rscRenderer.js +165 -0
- package/dist/cjs/rsc/rscRequestHandler.js +162 -0
- package/dist/cjs/rsc/rscStudioHandlers.js +154 -0
- package/dist/cjs/runFeServer.js +166 -0
- package/dist/cjs/streaming/buildForStreamingServer.js +65 -0
- package/dist/cjs/streaming/collectCss.js +52 -0
- package/dist/cjs/streaming/createReactStreamingHandler.js +173 -0
- package/dist/cjs/streaming/streamHelpers.js +228 -0
- package/dist/cjs/streaming/transforms/bufferedTransform.js +61 -0
- package/dist/cjs/streaming/transforms/cancelTimeoutTransform.js +34 -0
- package/dist/cjs/streaming/transforms/encode-decode.js +36 -0
- package/dist/cjs/streaming/transforms/serverInjectionTransform.js +84 -0
- package/dist/cjs/streaming/triggerRouteHooks.js +96 -0
- package/dist/cjs/types.js +16 -0
- package/dist/cjs/utils.js +91 -0
- package/dist/devFeServer.d.ts +2 -0
- package/dist/devFeServer.d.ts.map +1 -0
- package/dist/devFeServer.js +134 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +154 -0
- package/dist/lib/StatusError.d.ts +8 -0
- package/dist/lib/StatusError.d.ts.map +1 -0
- package/dist/lib/StatusError.js +11 -0
- package/dist/lib/entries.d.ts +3 -0
- package/dist/lib/entries.d.ts.map +1 -0
- package/dist/lib/entries.js +32 -0
- package/dist/lib/envVarDefinitions.d.ts +14 -0
- package/dist/lib/envVarDefinitions.d.ts.map +1 -0
- package/dist/lib/envVarDefinitions.js +53 -0
- package/dist/lib/getMergedConfig.d.ts +11 -0
- package/dist/lib/getMergedConfig.d.ts.map +1 -0
- package/dist/lib/getMergedConfig.js +153 -0
- package/dist/lib/onWarn.d.ts +3 -0
- package/dist/lib/onWarn.d.ts.map +1 -0
- package/dist/lib/onWarn.js +12 -0
- package/dist/lib/registerFwGlobalsAndShims.d.ts +12 -0
- package/dist/lib/registerFwGlobalsAndShims.d.ts.map +1 -0
- package/dist/lib/registerFwGlobalsAndShims.js +83 -0
- package/dist/middleware/index.d.ts +2 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +1 -0
- package/dist/middleware/invokeMiddleware.d.ts +14 -0
- package/dist/middleware/invokeMiddleware.d.ts.map +1 -0
- package/dist/middleware/invokeMiddleware.js +32 -0
- package/dist/middleware/register.d.ts +23 -0
- package/dist/middleware/register.d.ts.map +1 -0
- package/dist/middleware/register.js +69 -0
- package/dist/middleware/types.d.ts +3 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +0 -0
- package/dist/package.json +1 -0
- package/dist/plugins/vite-plugin-jsx-loader.d.ts +8 -0
- package/dist/plugins/vite-plugin-jsx-loader.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-jsx-loader.js +18 -0
- package/dist/plugins/vite-plugin-remove-from-bundle.d.ts +17 -0
- package/dist/plugins/vite-plugin-remove-from-bundle.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-remove-from-bundle.js +31 -0
- package/dist/plugins/vite-plugin-rsc-analyze.d.ts +3 -0
- package/dist/plugins/vite-plugin-rsc-analyze.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-rsc-analyze.js +70 -0
- package/dist/plugins/vite-plugin-rsc-reload.d.ts +3 -0
- package/dist/plugins/vite-plugin-rsc-reload.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-rsc-reload.js +41 -0
- package/dist/plugins/vite-plugin-rsc-routes-auto-loader.d.ts +3 -0
- package/dist/plugins/vite-plugin-rsc-routes-auto-loader.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-rsc-routes-auto-loader.js +130 -0
- package/dist/plugins/vite-plugin-rsc-routes-imports.d.ts +3 -0
- package/dist/plugins/vite-plugin-rsc-routes-imports.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-rsc-routes-imports.js +96 -0
- package/dist/plugins/vite-plugin-rsc-ssr-router-import.d.ts +7 -0
- package/dist/plugins/vite-plugin-rsc-ssr-router-import.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-rsc-ssr-router-import.js +41 -0
- package/dist/plugins/vite-plugin-rsc-transform-client.d.ts +3 -0
- package/dist/plugins/vite-plugin-rsc-transform-client.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-rsc-transform-client.js +195 -0
- package/dist/plugins/vite-plugin-rsc-transform-server.d.ts +3 -0
- package/dist/plugins/vite-plugin-rsc-transform-server.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-rsc-transform-server.js +364 -0
- package/dist/plugins/vite-plugin-swap-apollo-provider.d.ts +12 -0
- package/dist/plugins/vite-plugin-swap-apollo-provider.d.ts.map +1 -0
- package/dist/plugins/vite-plugin-swap-apollo-provider.js +17 -0
- package/dist/rsc/rscBuildAnalyze.d.ts +16 -0
- package/dist/rsc/rscBuildAnalyze.d.ts.map +1 -0
- package/dist/rsc/rscBuildAnalyze.js +92 -0
- package/dist/rsc/rscBuildClient.d.ts +7 -0
- package/dist/rsc/rscBuildClient.d.ts.map +1 -0
- package/dist/rsc/rscBuildClient.js +67 -0
- package/dist/rsc/rscBuildCopyCssAssets.d.ts +7 -0
- package/dist/rsc/rscBuildCopyCssAssets.d.ts.map +1 -0
- package/dist/rsc/rscBuildCopyCssAssets.js +22 -0
- package/dist/rsc/rscBuildEntriesFile.d.ts +10 -0
- package/dist/rsc/rscBuildEntriesFile.d.ts.map +1 -0
- package/dist/rsc/rscBuildEntriesFile.js +81 -0
- package/dist/rsc/rscBuildForServer.d.ts +7 -0
- package/dist/rsc/rscBuildForServer.d.ts.map +1 -0
- package/dist/rsc/rscBuildForServer.js +133 -0
- package/dist/rsc/rscBuildForSsr.d.ts +9 -0
- package/dist/rsc/rscBuildForSsr.d.ts.map +1 -0
- package/dist/rsc/rscBuildForSsr.js +138 -0
- package/dist/rsc/rscBuildRwEnvVars.d.ts +10 -0
- package/dist/rsc/rscBuildRwEnvVars.d.ts.map +1 -0
- package/dist/rsc/rscBuildRwEnvVars.js +22 -0
- package/dist/rsc/rscRenderer.d.ts +9 -0
- package/dist/rsc/rscRenderer.d.ts.map +1 -0
- package/dist/rsc/rscRenderer.js +130 -0
- package/dist/rsc/rscRequestHandler.d.ts +10 -0
- package/dist/rsc/rscRequestHandler.d.ts.map +1 -0
- package/dist/rsc/rscRequestHandler.js +131 -0
- package/dist/rsc/rscStudioHandlers.d.ts +10 -0
- package/dist/rsc/rscStudioHandlers.d.ts.map +1 -0
- package/dist/rsc/rscStudioHandlers.js +120 -0
- package/dist/runFeServer.d.ts +2 -0
- package/dist/runFeServer.d.ts.map +1 -0
- package/dist/runFeServer.js +132 -0
- package/dist/streaming/buildForStreamingServer.d.ts +4 -0
- package/dist/streaming/buildForStreamingServer.d.ts.map +1 -0
- package/dist/streaming/buildForStreamingServer.js +41 -0
- package/dist/streaming/collectCss.d.ts +7 -0
- package/dist/streaming/collectCss.d.ts.map +1 -0
- package/dist/streaming/collectCss.js +27 -0
- package/dist/streaming/createReactStreamingHandler.d.ts +12 -0
- package/dist/streaming/createReactStreamingHandler.d.ts.map +1 -0
- package/dist/streaming/createReactStreamingHandler.js +139 -0
- package/dist/streaming/streamHelpers.d.ts +23 -0
- package/dist/streaming/streamHelpers.d.ts.map +1 -0
- package/dist/streaming/streamHelpers.js +192 -0
- package/dist/streaming/transforms/bufferedTransform.d.ts +2 -0
- package/dist/streaming/transforms/bufferedTransform.d.ts.map +1 -0
- package/dist/streaming/transforms/bufferedTransform.js +37 -0
- package/dist/streaming/transforms/cancelTimeoutTransform.d.ts +2 -0
- package/dist/streaming/transforms/cancelTimeoutTransform.d.ts.map +1 -0
- package/dist/streaming/transforms/cancelTimeoutTransform.js +10 -0
- package/dist/streaming/transforms/encode-decode.d.ts +3 -0
- package/dist/streaming/transforms/encode-decode.d.ts.map +1 -0
- package/dist/streaming/transforms/encode-decode.js +11 -0
- package/dist/streaming/transforms/serverInjectionTransform.d.ts +16 -0
- package/dist/streaming/transforms/serverInjectionTransform.d.ts.map +1 -0
- package/dist/streaming/transforms/serverInjectionTransform.js +60 -0
- package/dist/streaming/triggerRouteHooks.d.ts +26 -0
- package/dist/streaming/triggerRouteHooks.d.ts.map +1 -0
- package/dist/streaming/triggerRouteHooks.js +71 -0
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +0 -0
- package/dist/utils.d.ts +14 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +62 -0
- package/inject/reactRefresh.js +7 -0
- package/package.json +116 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "../ClientRouter.d.ts"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "../../build/build.d.ts"
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var build_exports = {};
|
|
30
|
+
__export(build_exports, {
|
|
31
|
+
buildWeb: () => buildWeb,
|
|
32
|
+
cleanWebBuild: () => cleanWebBuild,
|
|
33
|
+
prebuildWebFile: () => prebuildWebFile,
|
|
34
|
+
prebuildWebFiles: () => prebuildWebFiles,
|
|
35
|
+
transform: () => transform
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(build_exports);
|
|
38
|
+
var import_node_fs = __toESM(require("node:fs"), 1);
|
|
39
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
40
|
+
var babel = __toESM(require("@babel/core"), 1);
|
|
41
|
+
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
42
|
+
var import_vite = require("vite");
|
|
43
|
+
var import_babel_config = require("@cedarjs/babel-config");
|
|
44
|
+
var import_project_config = require("@cedarjs/project-config");
|
|
45
|
+
const cleanWebBuild = () => {
|
|
46
|
+
const rwjsPaths = (0, import_project_config.getPaths)();
|
|
47
|
+
import_fs_extra.default.removeSync(rwjsPaths.web.dist);
|
|
48
|
+
import_fs_extra.default.removeSync(import_node_path.default.join(rwjsPaths.generated.prebuild, "web"));
|
|
49
|
+
};
|
|
50
|
+
async function prebuildWebFile(srcPath, flags = {}) {
|
|
51
|
+
const code = import_node_fs.default.readFileSync(srcPath, "utf-8");
|
|
52
|
+
const config = (0, import_babel_config.getWebSideDefaultBabelConfig)(flags);
|
|
53
|
+
const result = babel.transform(code, {
|
|
54
|
+
...config,
|
|
55
|
+
cwd: (0, import_project_config.getPaths)().web.base,
|
|
56
|
+
filename: srcPath
|
|
57
|
+
});
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
async function transform(srcPath) {
|
|
61
|
+
const code = import_node_fs.default.readFileSync(srcPath, "utf-8");
|
|
62
|
+
const loader = import_node_path.default.extname(srcPath).match(/^\.m?ts/) ? "tsx" : "jsx";
|
|
63
|
+
const transformed = await (0, import_vite.transformWithEsbuild)(code, srcPath, {
|
|
64
|
+
loader
|
|
65
|
+
});
|
|
66
|
+
return transformed.code;
|
|
67
|
+
}
|
|
68
|
+
const prebuildWebFiles = async (srcFiles, flags) => {
|
|
69
|
+
const rwjsPaths = (0, import_project_config.getPaths)();
|
|
70
|
+
const processFile = async (srcPath) => {
|
|
71
|
+
const relativePathFromSrc = import_node_path.default.relative(rwjsPaths.base, srcPath);
|
|
72
|
+
const dstPath = import_node_path.default.join(rwjsPaths.generated.prebuild, relativePathFromSrc).replace(/\.(ts)$/, ".js");
|
|
73
|
+
try {
|
|
74
|
+
const result = await prebuildWebFile(srcPath, flags);
|
|
75
|
+
if (!result?.code) {
|
|
76
|
+
throw new Error("No code returned from prebuildWebFile");
|
|
77
|
+
}
|
|
78
|
+
import_node_fs.default.mkdirSync(import_node_path.default.dirname(dstPath), { recursive: true });
|
|
79
|
+
import_node_fs.default.writeFileSync(dstPath, result.code);
|
|
80
|
+
} catch {
|
|
81
|
+
console.warn("Error:", srcPath, "could not prebuilt.");
|
|
82
|
+
return void 0;
|
|
83
|
+
}
|
|
84
|
+
return dstPath;
|
|
85
|
+
};
|
|
86
|
+
const promises = [];
|
|
87
|
+
for (const srcPath of srcFiles) {
|
|
88
|
+
promises.push(processFile(srcPath));
|
|
89
|
+
}
|
|
90
|
+
return await Promise.all(promises);
|
|
91
|
+
};
|
|
92
|
+
const buildWeb = async ({ verbose }) => {
|
|
93
|
+
const { build } = await import("vite");
|
|
94
|
+
const viteConfig = (0, import_project_config.getPaths)().web.viteConfig;
|
|
95
|
+
if (process.cwd() !== (0, import_project_config.getPaths)().web.base) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
"Looks like you are running the command from the wrong dir, this can lead to unintended consequences on CSS processing"
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
if (!viteConfig) {
|
|
101
|
+
throw new Error("Could not locate your web/vite.config.{js,ts} file");
|
|
102
|
+
}
|
|
103
|
+
return build({
|
|
104
|
+
configFile: viteConfig,
|
|
105
|
+
envFile: false,
|
|
106
|
+
logLevel: verbose ? "info" : "warn"
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
110
|
+
0 && (module.exports = {
|
|
111
|
+
buildWeb,
|
|
112
|
+
cleanWebBuild,
|
|
113
|
+
prebuildWebFile,
|
|
114
|
+
prebuildWebFiles,
|
|
115
|
+
transform
|
|
116
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "../buildFeServer.d.ts"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var buildFeServer_exports = {};
|
|
20
|
+
__export(buildFeServer_exports, {
|
|
21
|
+
buildFeServer: () => buildFeServer
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(buildFeServer_exports);
|
|
24
|
+
var import_project_config = require("@cedarjs/project-config");
|
|
25
|
+
var import_build = require("./build/build.js");
|
|
26
|
+
var import_buildRouteHooks = require("./buildRouteHooks.js");
|
|
27
|
+
var import_buildRouteManifest = require("./buildRouteManifest.js");
|
|
28
|
+
var import_buildRscClientAndServer = require("./buildRscClientAndServer.js");
|
|
29
|
+
var import_buildForStreamingServer = require("./streaming/buildForStreamingServer.js");
|
|
30
|
+
var import_utils = require("./utils.js");
|
|
31
|
+
const buildFeServer = async ({ verbose, webDir } = {}) => {
|
|
32
|
+
(0, import_utils.ensureProcessDirWeb)(webDir);
|
|
33
|
+
const rwPaths = (0, import_project_config.getPaths)();
|
|
34
|
+
const rwConfig = (0, import_project_config.getConfig)();
|
|
35
|
+
const viteConfigPath = rwPaths.web.viteConfig;
|
|
36
|
+
const rscEnabled = rwConfig.experimental?.rsc?.enabled;
|
|
37
|
+
const streamingSsrEnabled = rwConfig.experimental?.streamingSsr?.enabled;
|
|
38
|
+
if (!viteConfigPath) {
|
|
39
|
+
throw new Error(
|
|
40
|
+
"Vite config not found. You need to setup your project with Vite using `yarn rw setup vite`"
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
if (!rwPaths.web.entryServer || !rwPaths.web.entryClient) {
|
|
44
|
+
throw new Error(
|
|
45
|
+
"Vite entry points not found. Please check that your project has an entry.client.{jsx,tsx} and entry.server.{jsx,tsx} file in the web/src directory."
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
if (rscEnabled) {
|
|
49
|
+
await (0, import_buildRscClientAndServer.buildRscClientAndServer)({ verbose });
|
|
50
|
+
} else {
|
|
51
|
+
await (0, import_buildForStreamingServer.buildForStreamingServer)({ verbose });
|
|
52
|
+
}
|
|
53
|
+
if (streamingSsrEnabled && !rscEnabled) {
|
|
54
|
+
console.log("Building client for streaming SSR...\n");
|
|
55
|
+
await (0, import_build.buildWeb)({ verbose });
|
|
56
|
+
}
|
|
57
|
+
await (0, import_buildRouteHooks.buildRouteHooks)(verbose, rwPaths);
|
|
58
|
+
await (0, import_buildRouteManifest.buildRouteManifest)();
|
|
59
|
+
};
|
|
60
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
61
|
+
0 && (module.exports = {
|
|
62
|
+
buildFeServer
|
|
63
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var buildRouteHooks_exports = {};
|
|
20
|
+
__export(buildRouteHooks_exports, {
|
|
21
|
+
buildRouteHooks: () => buildRouteHooks
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(buildRouteHooks_exports);
|
|
24
|
+
var import_esbuild = require("esbuild");
|
|
25
|
+
var import_babel_config = require("@cedarjs/babel-config");
|
|
26
|
+
var import_files = require("@cedarjs/internal/dist/files.js");
|
|
27
|
+
var import_project_config = require("@cedarjs/project-config");
|
|
28
|
+
async function buildRouteHooks(verbose, rwPaths) {
|
|
29
|
+
const allRouteHooks = (0, import_files.findRouteHooksSrc)();
|
|
30
|
+
const runRwBabelTransformsPlugin = {
|
|
31
|
+
name: "rw-esbuild-babel-transform",
|
|
32
|
+
setup(build) {
|
|
33
|
+
build.onLoad({ filter: /\.(js|ts|tsx|jsx)$/ }, async (args) => {
|
|
34
|
+
const transformedCode = await (0, import_babel_config.transformWithBabel)(args.path, [
|
|
35
|
+
...(0, import_babel_config.getRouteHookBabelPlugins)()
|
|
36
|
+
]);
|
|
37
|
+
if (transformedCode?.code) {
|
|
38
|
+
return {
|
|
39
|
+
contents: transformedCode.code,
|
|
40
|
+
loader: "js"
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
throw new Error(`Could not transform file: ${args.path}`);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
await (0, import_esbuild.build)({
|
|
48
|
+
absWorkingDir: (0, import_project_config.getPaths)().web.base,
|
|
49
|
+
entryPoints: allRouteHooks,
|
|
50
|
+
platform: "node",
|
|
51
|
+
target: "node16",
|
|
52
|
+
// @MARK Disable splitting and esm, because Redwood web modules don't support esm yet
|
|
53
|
+
// outExtension: { '.js': '.mjs' },
|
|
54
|
+
// format: 'esm',
|
|
55
|
+
// splitting: true,
|
|
56
|
+
bundle: true,
|
|
57
|
+
plugins: [runRwBabelTransformsPlugin],
|
|
58
|
+
packages: "external",
|
|
59
|
+
logLevel: verbose ? "info" : "error",
|
|
60
|
+
outdir: rwPaths.web.distRouteHooks
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
64
|
+
0 && (module.exports = {
|
|
65
|
+
buildRouteHooks
|
|
66
|
+
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var buildRouteManifest_exports = {};
|
|
30
|
+
__export(buildRouteManifest_exports, {
|
|
31
|
+
buildRouteManifest: () => buildRouteManifest
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(buildRouteManifest_exports);
|
|
34
|
+
var import_promises = __toESM(require("node:fs/promises"), 1);
|
|
35
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
36
|
+
var import_node_url = __toESM(require("node:url"), 1);
|
|
37
|
+
var import_routes = require("@cedarjs/internal/dist/routes.js");
|
|
38
|
+
var import_project_config = require("@cedarjs/project-config");
|
|
39
|
+
async function buildRouteManifest() {
|
|
40
|
+
const rwPaths = (0, import_project_config.getPaths)();
|
|
41
|
+
const buildManifestUrl = import_node_url.default.pathToFileURL(
|
|
42
|
+
import_node_path.default.join((0, import_project_config.getPaths)().web.distBrowser, "client-build-manifest.json")
|
|
43
|
+
).href;
|
|
44
|
+
const clientBuildManifest = (await import(buildManifestUrl, { with: { type: "json" } })).default;
|
|
45
|
+
const routesList = (0, import_routes.getProjectRoutes)();
|
|
46
|
+
const routeManifest = routesList.reduce((acc, route) => {
|
|
47
|
+
acc[route.pathDefinition] = {
|
|
48
|
+
name: route.name,
|
|
49
|
+
bundle: route.relativeFilePath ? (
|
|
50
|
+
// @TODO(RSC_DC): this no longer resolves to anything i.e. its always null
|
|
51
|
+
// Because the clientBuildManifest has no pages, because all pages are Server-components?
|
|
52
|
+
// This may be a non-issue, because RSC pages don't need a client bundle per page (or atleast not the same bundle)
|
|
53
|
+
clientBuildManifest[route.relativeFilePath]?.file ?? null
|
|
54
|
+
) : null,
|
|
55
|
+
matchRegexString: route.matchRegexString,
|
|
56
|
+
// NOTE this is the path definition, not the actual path
|
|
57
|
+
// E.g. /blog/post/{id:Int}
|
|
58
|
+
pathDefinition: route.pathDefinition,
|
|
59
|
+
hasParams: route.hasParams,
|
|
60
|
+
routeHooks: FIXME_constructRouteHookPath(route.routeHooks),
|
|
61
|
+
redirect: route.redirect ? {
|
|
62
|
+
to: route.redirect?.to,
|
|
63
|
+
permanent: false
|
|
64
|
+
} : null,
|
|
65
|
+
relativeFilePath: route.relativeFilePath,
|
|
66
|
+
isPrivate: route.isPrivate,
|
|
67
|
+
unauthenticated: route.unauthenticated,
|
|
68
|
+
roles: route.roles,
|
|
69
|
+
pageIdentifier: route.pageIdentifier
|
|
70
|
+
};
|
|
71
|
+
return acc;
|
|
72
|
+
}, {});
|
|
73
|
+
console.log("routeManifest", JSON.stringify(routeManifest, null, 2));
|
|
74
|
+
const webRouteManifest = rwPaths.web.routeManifest;
|
|
75
|
+
await import_promises.default.mkdir(rwPaths.web.distSsr, { recursive: true });
|
|
76
|
+
return import_promises.default.writeFile(webRouteManifest, JSON.stringify(routeManifest, null, 2));
|
|
77
|
+
}
|
|
78
|
+
const FIXME_constructRouteHookPath = (routeHookSrcPath) => {
|
|
79
|
+
const rwPaths = (0, import_project_config.getPaths)();
|
|
80
|
+
if (!routeHookSrcPath) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
if ((0, import_project_config.getAppRouteHook)()) {
|
|
84
|
+
return import_node_path.default.relative(rwPaths.web.src, routeHookSrcPath).replace(".ts", ".js");
|
|
85
|
+
} else {
|
|
86
|
+
return import_node_path.default.relative(import_node_path.default.join(rwPaths.web.src, "pages"), routeHookSrcPath).replace(".ts", ".js");
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
90
|
+
0 && (module.exports = {
|
|
91
|
+
buildRouteManifest
|
|
92
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var buildRscClientAndServer_exports = {};
|
|
20
|
+
__export(buildRscClientAndServer_exports, {
|
|
21
|
+
buildRscClientAndServer: () => buildRscClientAndServer
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(buildRscClientAndServer_exports);
|
|
24
|
+
var import_rscBuildAnalyze = require("./rsc/rscBuildAnalyze.js");
|
|
25
|
+
var import_rscBuildClient = require("./rsc/rscBuildClient.js");
|
|
26
|
+
var import_rscBuildCopyCssAssets = require("./rsc/rscBuildCopyCssAssets.js");
|
|
27
|
+
var import_rscBuildEntriesFile = require("./rsc/rscBuildEntriesFile.js");
|
|
28
|
+
var import_rscBuildForServer = require("./rsc/rscBuildForServer.js");
|
|
29
|
+
var import_rscBuildForSsr = require("./rsc/rscBuildForSsr.js");
|
|
30
|
+
var import_rscBuildRwEnvVars = require("./rsc/rscBuildRwEnvVars.js");
|
|
31
|
+
const buildRscClientAndServer = async ({
|
|
32
|
+
verbose = false
|
|
33
|
+
}) => {
|
|
34
|
+
const { clientEntryFiles, serverEntryFiles } = await (0, import_rscBuildAnalyze.rscBuildAnalyze)();
|
|
35
|
+
const clientBuildOutput = await (0, import_rscBuildClient.rscBuildClient)(clientEntryFiles);
|
|
36
|
+
const ssrBuildOutput = await (0, import_rscBuildForSsr.rscBuildForSsr)({ clientEntryFiles, verbose });
|
|
37
|
+
const serverBuildOutput = await (0, import_rscBuildForServer.rscBuildForServer)(
|
|
38
|
+
clientEntryFiles,
|
|
39
|
+
serverEntryFiles,
|
|
40
|
+
{}
|
|
41
|
+
);
|
|
42
|
+
await (0, import_rscBuildCopyCssAssets.rscBuildCopyCssAssets)(serverBuildOutput);
|
|
43
|
+
await (0, import_rscBuildEntriesFile.rscBuildEntriesMappings)(
|
|
44
|
+
clientBuildOutput,
|
|
45
|
+
ssrBuildOutput,
|
|
46
|
+
serverBuildOutput,
|
|
47
|
+
clientEntryFiles
|
|
48
|
+
);
|
|
49
|
+
await (0, import_rscBuildRwEnvVars.rscBuildRwEnvVars)();
|
|
50
|
+
};
|
|
51
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
52
|
+
0 && (module.exports = {
|
|
53
|
+
buildRscClientAndServer
|
|
54
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "../client.d.ts"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "../clientSsr.d.ts"
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var import_server = require("@whatwg-node/server");
|
|
25
|
+
var import_express = __toESM(require("express"), 1);
|
|
26
|
+
var import_vite = require("vite");
|
|
27
|
+
var import_vite_plugin_cjs_interop = require("vite-plugin-cjs-interop");
|
|
28
|
+
var import_routes = require("@cedarjs/internal/dist/routes.js");
|
|
29
|
+
var import_project_config = require("@cedarjs/project-config");
|
|
30
|
+
var import_server_store = require("@cedarjs/server-store");
|
|
31
|
+
var import_registerFwGlobalsAndShims = require("./lib/registerFwGlobalsAndShims.js");
|
|
32
|
+
var import_invokeMiddleware = require("./middleware/invokeMiddleware.js");
|
|
33
|
+
var import_register = require("./middleware/register.js");
|
|
34
|
+
var import_vite_plugin_rsc_routes_auto_loader = require("./plugins/vite-plugin-rsc-routes-auto-loader.js");
|
|
35
|
+
var import_collectCss = require("./streaming/collectCss.js");
|
|
36
|
+
var import_createReactStreamingHandler = require("./streaming/createReactStreamingHandler.js");
|
|
37
|
+
var import_utils = require("./utils.js");
|
|
38
|
+
globalThis.__REDWOOD__PRERENDER_PAGES = {};
|
|
39
|
+
async function createServer() {
|
|
40
|
+
(0, import_utils.ensureProcessDirWeb)();
|
|
41
|
+
(0, import_registerFwGlobalsAndShims.registerFwGlobalsAndShims)();
|
|
42
|
+
const app = (0, import_express.default)();
|
|
43
|
+
const rwPaths = (0, import_project_config.getPaths)();
|
|
44
|
+
const rscEnabled = (0, import_project_config.getConfig)().experimental.rsc?.enabled ?? false;
|
|
45
|
+
const serverStorage = (0, import_server_store.createServerStorage)();
|
|
46
|
+
app.use("*", (req, _res, next) => {
|
|
47
|
+
const fullUrl = (0, import_utils.getFullUrl)(req, rscEnabled);
|
|
48
|
+
const perReqStore = (0, import_server_store.createPerRequestMap)({
|
|
49
|
+
// Convert express headers to fetch header
|
|
50
|
+
headers: (0, import_utils.convertExpressHeaders)(req.headersDistinct),
|
|
51
|
+
fullUrl
|
|
52
|
+
});
|
|
53
|
+
serverStorage.run(perReqStore, next);
|
|
54
|
+
});
|
|
55
|
+
if (!rwPaths.web.entryServer || !rwPaths.web.entryClient) {
|
|
56
|
+
throw new Error(
|
|
57
|
+
"Vite entry points not found. Please check that your project has an entry.client.{jsx,tsx} and entry.server.{jsx,tsx} file in the web/src directory."
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
if (!rwPaths.web.viteConfig) {
|
|
61
|
+
throw new Error(
|
|
62
|
+
"Vite config not found. You need to setup your project with Vite using `yarn rw setup vite`"
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
const vite = await (0, import_vite.createServer)({
|
|
66
|
+
configFile: rwPaths.web.viteConfig,
|
|
67
|
+
plugins: [
|
|
68
|
+
(0, import_vite_plugin_cjs_interop.cjsInterop)({
|
|
69
|
+
dependencies: [
|
|
70
|
+
// Skip ESM modules: rwjs/auth, rwjs/web, rwjs/auth-*-middleware, rwjs/router
|
|
71
|
+
"@cedarjs/forms",
|
|
72
|
+
"@cedarjs/prerender/*",
|
|
73
|
+
"@cedarjs/auth-*-api",
|
|
74
|
+
"@cedarjs/auth-*-web"
|
|
75
|
+
]
|
|
76
|
+
}),
|
|
77
|
+
rscEnabled && (0, import_vite_plugin_rsc_routes_auto_loader.rscRoutesAutoLoader)()
|
|
78
|
+
],
|
|
79
|
+
server: { middlewareMode: true },
|
|
80
|
+
logLevel: "info",
|
|
81
|
+
clearScreen: false,
|
|
82
|
+
appType: "custom"
|
|
83
|
+
});
|
|
84
|
+
const handleWithMiddleware = (route) => {
|
|
85
|
+
return (0, import_server.createServerAdapter)(async (req) => {
|
|
86
|
+
const middlewareRouter = await (0, import_register.createMiddlewareRouter)(vite);
|
|
87
|
+
const middleware = middlewareRouter.find(
|
|
88
|
+
req.method,
|
|
89
|
+
req.url
|
|
90
|
+
)?.handler;
|
|
91
|
+
if (!middleware) {
|
|
92
|
+
return new Response("No middleware found", { status: 404 });
|
|
93
|
+
}
|
|
94
|
+
const [mwRes] = await (0, import_invokeMiddleware.invoke)(req, middleware, {
|
|
95
|
+
route,
|
|
96
|
+
viteDevServer: vite
|
|
97
|
+
});
|
|
98
|
+
return mwRes.toResponse();
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
app.use(vite.middlewares);
|
|
102
|
+
if (rscEnabled) {
|
|
103
|
+
const { createRscRequestHandler } = await import("./rsc/rscRequestHandler.js");
|
|
104
|
+
app.use(
|
|
105
|
+
"/rw-rsc",
|
|
106
|
+
createRscRequestHandler({
|
|
107
|
+
getMiddlewareRouter: async () => (0, import_register.createMiddlewareRouter)(vite),
|
|
108
|
+
viteDevServer: vite
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
const routes = (0, import_routes.getProjectRoutes)();
|
|
113
|
+
const routeHandler = await (0, import_createReactStreamingHandler.createReactStreamingHandler)(
|
|
114
|
+
{
|
|
115
|
+
routes,
|
|
116
|
+
clientEntryPath: rwPaths.web.entryClient,
|
|
117
|
+
getStylesheetLinks: (route) => {
|
|
118
|
+
return getCssLinks({ rwPaths, route, vite });
|
|
119
|
+
},
|
|
120
|
+
// Recreate middleware router on each request in dev
|
|
121
|
+
getMiddlewareRouter: async () => (0, import_register.createMiddlewareRouter)(vite)
|
|
122
|
+
},
|
|
123
|
+
vite
|
|
124
|
+
);
|
|
125
|
+
app.get("*", (0, import_server.createServerAdapter)(routeHandler));
|
|
126
|
+
app.post("*", handleWithMiddleware());
|
|
127
|
+
const port = (0, import_project_config.getConfig)().web.port;
|
|
128
|
+
console.log(`Started server on http://localhost:${port}`);
|
|
129
|
+
return app.listen(port);
|
|
130
|
+
}
|
|
131
|
+
let devApp = createServer();
|
|
132
|
+
process.stdin.on("data", async (data) => {
|
|
133
|
+
const str = data.toString().trim().toLowerCase();
|
|
134
|
+
if (str === "rs" || str === "restart") {
|
|
135
|
+
console.log("Restarting dev web server.....");
|
|
136
|
+
(await devApp).close(() => {
|
|
137
|
+
devApp = createServer();
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
function getCssLinks({
|
|
142
|
+
rwPaths,
|
|
143
|
+
route,
|
|
144
|
+
vite
|
|
145
|
+
}) {
|
|
146
|
+
const appAndRouteModules = (0, import_collectCss.componentsModules)(
|
|
147
|
+
[rwPaths.web.app, route?.filePath].filter(Boolean),
|
|
148
|
+
vite
|
|
149
|
+
);
|
|
150
|
+
const collectedCss = (0, import_collectCss.collectCssPaths)(appAndRouteModules);
|
|
151
|
+
const cssLinks = Array.from(collectedCss);
|
|
152
|
+
return cssLinks;
|
|
153
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "../index.d.ts"
|