Skip to content

Commit 5645614

Browse files
fix: prevent hooks.server code being imported into client during build (#12195)
* fix hooks.server matching hooks * changeset * unit test * Update .changeset/slimy-eyes-pull.md --------- Co-authored-by: Tee Ming <[email protected]>
1 parent 97d1085 commit 5645614

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

.changeset/slimy-eyes-pull.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@sveltejs/kit": patch
3+
---
4+
5+
fix: prevent client import error when a `hooks.server` file imports a private environment variable

packages/kit/src/utils/filesystem.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ export function resolve_entry(entry) {
181181
const base = path.basename(entry);
182182
const files = fs.readdirSync(dir);
183183

184-
const found = files.find((file) => file.replace(/\.[^.]+$/, '') === base);
184+
const found = files.find((file) => file.replace(/\.(js|ts)$/, '') === base);
185185

186186
if (found) return path.join(dir, found);
187187
}

packages/kit/src/utils/filesystem.spec.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { mkdtempSync, writeFileSync, readdirSync, mkdirSync, readFileSync } from
22
import { tmpdir } from 'node:os';
33
import { dirname, join } from 'node:path';
44
import { assert, expect, beforeEach, test } from 'vitest';
5-
import { copy, mkdirp } from './filesystem.js';
5+
import { copy, mkdirp, resolve_entry } from './filesystem.js';
66

77
/** @type {string} */
88
let source_dir;
@@ -99,3 +99,9 @@ test('replaces strings', () => {
9999
'the quick brown fox jumps over the lazy dog'
100100
);
101101
});
102+
103+
test('ignores hooks.server folder when resolving hooks', () => {
104+
write('hooks.server/index.js', '');
105+
106+
expect(resolve_entry(source_dir + '/hooks')).null;
107+
});

0 commit comments

Comments
 (0)