Skip to content

Commit 3f9833d

Browse files
committed
Apply feedback
1 parent cdfbbbe commit 3f9833d

File tree

2 files changed

+19
-27
lines changed

2 files changed

+19
-27
lines changed

packages/zudoku/src/config/loader.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { stat } from "node:fs/promises";
22
import path from "node:path";
33
import colors from "picocolors";
44
import {
5-
type build,
65
type ConfigEnv,
76
runnerImport,
87
loadEnv as viteLoadEnv,
@@ -106,23 +105,6 @@ async function loadZudokuConfigWithMeta(
106105
return configWithMetadata;
107106
}
108107

109-
type BuildResult = Awaited<ReturnType<typeof build>>;
110-
111-
export function findOutputPathOfServerConfig(output: BuildResult) {
112-
if (Array.isArray(output)) {
113-
throw new Error("Expected a single output, but got an array");
114-
}
115-
if ("output" in output) {
116-
const result = output.output.find(
117-
(o) => "isEntry" in o && o.isEntry && o.fileName === "zudoku.config.js",
118-
);
119-
if (result) {
120-
return result.fileName;
121-
}
122-
}
123-
throw new Error("Could not find server config output file");
124-
}
125-
126108
function loadEnv(configEnv: ConfigEnv, rootDir: string) {
127109
const envPrefix = ["ZUPLO_PUBLIC_", "ZUDOKU_PUBLIC_"];
128110
const localEnv = viteLoadEnv(configEnv.mode, rootDir, envPrefix);

packages/zudoku/src/vite/build.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
22
import path from "node:path";
33
import { build as esbuild } from "esbuild";
4-
import { createBuilder } from "vite";
4+
import { createBuilder, type Rolldown } from "vite";
55
import { ZuploEnv } from "../app/env.js";
66
import { getZudokuRootDir } from "../cli/common/package-json.js";
7-
import {
8-
findOutputPathOfServerConfig,
9-
loadZudokuConfig,
10-
} from "../config/loader.js";
7+
import { type ConfigWithMeta, loadZudokuConfig } from "../config/loader.js";
118
import { getIssuer } from "../lib/auth/issuer.js";
129
import invariant from "../lib/util/invariant.js";
1310
import { joinUrl } from "../lib/util/joinUrl.js";
@@ -46,7 +43,11 @@ export async function runBuild(options: BuildOptions) {
4643
clientResult && !Array.isArray(clientResult) && "output" in clientResult,
4744
"Client build failed to produce valid output",
4845
);
49-
invariant(serverResult, "SSR build failed to produce valid output");
46+
47+
invariant(
48+
serverResult && !Array.isArray(serverResult) && "output" in serverResult,
49+
"SSR build failed to produce valid output",
50+
);
5051

5152
const { config } = await loadZudokuConfig(
5253
{ mode: "production", command: "build" },
@@ -102,18 +103,27 @@ export async function runBuild(options: BuildOptions) {
102103

103104
type PrerenderOptions = {
104105
dir: string;
105-
config: Awaited<ReturnType<typeof loadZudokuConfig>>["config"];
106+
config: ConfigWithMeta;
106107
html: string;
107108
clientOutDir: string;
108109
serverOutDir: string;
109-
serverResult: Awaited<ReturnType<typeof import("vite").build>>;
110+
serverResult: Rolldown.RolldownOutput;
111+
};
112+
113+
const findServerConfigFilename = (result: Rolldown.RolldownOutput) => {
114+
const entry = result.output.find(
115+
(o) => o.type === "chunk" && o.isEntry && o.fileName === "zudoku.config.js",
116+
);
117+
invariant(entry, "Could not find zudoku.config entry in server build output");
118+
119+
return entry.fileName;
110120
};
111121

112122
const runPrerender = async (options: PrerenderOptions) => {
113123
const { dir, config, html, clientOutDir, serverOutDir, serverResult } =
114124
options;
115125
const issuer = await getIssuer(config);
116-
const serverConfigFilename = findOutputPathOfServerConfig(serverResult);
126+
const serverConfigFilename = findServerConfigFilename(serverResult);
117127

118128
try {
119129
const { workerResults, rewrites } = await prerender({

0 commit comments

Comments
 (0)