Skip to content

Commit 1dfb5d0

Browse files
committed
Normalize import paths in dev and make sure rewritten build manifest paths are correct on windows as well
1 parent 56e3828 commit 1dfb5d0

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

packages/cli-v3/e2e/e2e.test.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as fs from "node:fs";
33
import { mkdir, rename, rm } from "node:fs/promises";
44
import * as path from "node:path";
55
import { rimraf } from "rimraf";
6-
import { buildWorker } from "../src/build/buildWorker.js";
6+
import { buildWorker, rewriteBuildManifestPaths } from "../src/build/buildWorker.js";
77
import { loadConfig } from "../src/config.js";
88
import { indexWorkerManifest } from "../src/indexing/indexWorkerManifest.js";
99
import { writeJSONFile } from "../src/utilities/fileSystem.js";
@@ -201,6 +201,13 @@ describe.concurrent("buildWorker", async () => {
201201

202202
logger.debug("Build manifest", buildManifest!);
203203

204+
const rewrittenManifest = rewriteBuildManifestPaths(buildManifest!, destination.path);
205+
206+
expect(rewrittenManifest.loaderEntryPoint).toBe("/app/src/entryPoints/loader.mjs");
207+
expect(rewrittenManifest.indexWorkerEntryPoint).toBe(
208+
"/app/src/entryPoints/deploy-index-worker.mjs"
209+
);
210+
204211
const stdout: string[] = [];
205212
const stderr: string[] = [];
206213

packages/cli-v3/src/build/buildWorker.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ import {
1919
deployRunWorker,
2020
telemetryEntryPoint,
2121
} from "./packageModules.js";
22-
import { join, relative } from "node:path";
22+
import { join, relative, sep } from "node:path";
2323
import { generateContainerfile } from "../deploy/buildImage.js";
2424
import { writeFile } from "node:fs/promises";
2525
import { buildManifestToJSON } from "../utilities/buildManifest.js";
2626
import { readPackageJSON, writePackageJSON } from "pkg-types";
2727
import { writeJSONFile } from "../utilities/fileSystem.js";
28+
import { isWindows } from "std-env";
29+
import { pathToFileURL } from "node:url";
2830

2931
export type BuildWorkerEventListener = {
3032
onBundleStart?: () => void;
@@ -109,7 +111,7 @@ export async function buildWorker(options: BuildWorkerOptions) {
109111
return buildManifest;
110112
}
111113

112-
function rewriteBuildManifestPaths(
114+
export function rewriteBuildManifestPaths(
113115
buildManifest: BuildManifest,
114116
destinationDir: string
115117
): BuildManifest {
@@ -142,7 +144,16 @@ function cleanEntryPath(entry: string): string {
142144
}
143145

144146
function rewriteOutputPath(destinationDir: string, filePath: string) {
145-
return `/app/${relative(destinationDir, filePath)}`;
147+
if (isWindows) {
148+
return `/app/${relative(
149+
pathToFileURL(destinationDir).pathname,
150+
pathToFileURL(filePath).pathname
151+
)
152+
.split(sep)
153+
.join("/")}`;
154+
} else {
155+
return `/app/${relative(destinationDir, filePath)}`;
156+
}
146157
}
147158

148159
async function writeDeployFiles(

packages/cli-v3/src/entryPoints/dev-index-worker.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { readFile } from "node:fs/promises";
1515
import sourceMapSupport from "source-map-support";
1616
import { registerTasks } from "../indexing/registerTasks.js";
1717
import { env } from "std-env";
18+
import { normalizeImportPath } from "../utilities/normalizeImportPath.js";
1819

1920
sourceMapSupport.install({
2021
handleUncaughtExceptions: false,
@@ -54,7 +55,7 @@ taskCatalog.setGlobalTaskCatalog(new StandardTaskCatalog());
5455
async function importConfig(
5556
configPath: string
5657
): Promise<{ config: TriggerConfig; handleError?: HandleErrorFunction }> {
57-
const configModule = await import(configPath);
58+
const configModule = await import(normalizeImportPath(configPath));
5859

5960
const config = configModule?.default ?? configModule?.config;
6061

packages/cli-v3/src/entryPoints/dev-run-worker.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { readFile } from "node:fs/promises";
3434
import sourceMapSupport from "source-map-support";
3535
import { VERSION } from "../version.js";
3636
import { env } from "std-env";
37+
import { normalizeImportPath } from "../utilities/normalizeImportPath.js";
3738

3839
sourceMapSupport.install({
3940
handleUncaughtExceptions: false,
@@ -80,7 +81,7 @@ const triggerLogLevel = getEnvVar("TRIGGER_LOG_LEVEL");
8081
async function importConfig(
8182
configPath: string
8283
): Promise<{ config: TriggerConfig; handleError?: HandleErrorFunction }> {
83-
const configModule = await import(configPath);
84+
const configModule = await import(normalizeImportPath(configPath));
8485

8586
const config = configModule?.default ?? configModule?.config;
8687

@@ -206,7 +207,7 @@ const zodIpc = new ZodIpcConnection({
206207
}
207208

208209
try {
209-
await import(taskManifest.entryPoint);
210+
await import(normalizeImportPath(taskManifest.entryPoint));
210211
} catch (err) {
211212
console.error(`Failed to import task ${execution.task.id}`, err);
212213

0 commit comments

Comments
 (0)