From 442651739bc9746362040eb47d3e0bd83a315f41 Mon Sep 17 00:00:00 2001 From: Kitsune Date: Mon, 3 Jul 2023 02:55:18 -0300 Subject: [PATCH 1/3] adapter-node: Enforce `dir` to be an actual directory. --- .changeset/sweet-ties-wonder.md | 5 +++++ packages/adapter-node/src/handler.js | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/sweet-ties-wonder.md diff --git a/.changeset/sweet-ties-wonder.md b/.changeset/sweet-ties-wonder.md new file mode 100644 index 000000000000..bc71251118dd --- /dev/null +++ b/.changeset/sweet-ties-wonder.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-node': patch +--- + +Enforce the calculated server directory is actually a directory (compatibility with bundlers) diff --git a/packages/adapter-node/src/handler.js b/packages/adapter-node/src/handler.js index 495f35db5236..3f93e7a45755 100644 --- a/packages/adapter-node/src/handler.js +++ b/packages/adapter-node/src/handler.js @@ -21,7 +21,8 @@ const protocol_header = env('PROTOCOL_HEADER', '').toLowerCase(); const host_header = env('HOST_HEADER', 'host').toLowerCase(); const body_size_limit = parseInt(env('BODY_SIZE_LIMIT', '524288')); -const dir = fileURLToPath(import.meta.SERVER_DIR); +const root = fileURLToPath(import.meta.SERVER_DIR); +const dir = root.endsWith('.js') ? path.dirname(root) : root; /** * @param {string} path From df19982e9273b81f9c0ffd94aef03782218c92b6 Mon Sep 17 00:00:00 2001 From: Kitsune Date: Mon, 3 Jul 2023 13:55:54 -0300 Subject: [PATCH 2/3] adapter-node: Use statSync instead of extension check --- packages/adapter-node/src/handler.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/adapter-node/src/handler.js b/packages/adapter-node/src/handler.js index 3f93e7a45755..d86a233b195b 100644 --- a/packages/adapter-node/src/handler.js +++ b/packages/adapter-node/src/handler.js @@ -22,7 +22,7 @@ const host_header = env('HOST_HEADER', 'host').toLowerCase(); const body_size_limit = parseInt(env('BODY_SIZE_LIMIT', '524288')); const root = fileURLToPath(import.meta.SERVER_DIR); -const dir = root.endsWith('.js') ? path.dirname(root) : root; +const dir = !fs.statSync(root).isDirectory() ? path.dirname(root) : root; /** * @param {string} path From a74475a1b584d7f179244697f2ae82b9608262b4 Mon Sep 17 00:00:00 2001 From: Kitsune Date: Mon, 3 Jul 2023 13:58:48 -0300 Subject: [PATCH 3/3] Prefix Changeset with fix --- .changeset/sweet-ties-wonder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/sweet-ties-wonder.md b/.changeset/sweet-ties-wonder.md index bc71251118dd..3276ccd27a1d 100644 --- a/.changeset/sweet-ties-wonder.md +++ b/.changeset/sweet-ties-wonder.md @@ -2,4 +2,4 @@ '@sveltejs/adapter-node': patch --- -Enforce the calculated server directory is actually a directory (compatibility with bundlers) +fix: Enforce the calculated server directory is actually a directory (compatibility with bundlers)