File tree Expand file tree Collapse file tree 3 files changed +33
-14
lines changed Expand file tree Collapse file tree 3 files changed +33
-14
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' @sveltejs/kit ' : patch
3
+ ---
4
+
5
+ fix: correctly resolve no hooks file when a similarly named directory exists
Original file line number Diff line number Diff line change @@ -170,22 +170,24 @@ export function resolve_entry(entry) {
170
170
if ( fs . existsSync ( entry ) ) {
171
171
const stats = fs . statSync ( entry ) ;
172
172
const index = path . join ( entry , 'index' ) ;
173
- if ( stats . isDirectory ( ) && fs . existsSync ( index ) ) {
173
+
174
+ if ( stats . isFile ( ) ) {
175
+ return entry ;
176
+ } else if ( fs . existsSync ( index ) ) {
174
177
return resolve_entry ( index ) ;
175
178
}
179
+ }
176
180
177
- return entry ;
178
- } else {
179
- const dir = path . dirname ( entry ) ;
180
-
181
- if ( fs . existsSync ( dir ) ) {
182
- const base = path . basename ( entry ) ;
183
- const files = fs . readdirSync ( dir ) ;
181
+ const dir = path . dirname ( entry ) ;
184
182
185
- const found = files . find ( ( file ) => file . replace ( / \. ( j s | t s ) $ / , '' ) === base ) ;
183
+ if ( fs . existsSync ( dir ) ) {
184
+ const base = path . basename ( entry ) ;
185
+ const files = fs . readdirSync ( dir ) ;
186
+ const found = files . find ( ( file ) => {
187
+ return file . replace ( / \. ( j s | t s ) $ / , '' ) === base && fs . statSync ( path . join ( dir , file ) ) . isFile ( ) ;
188
+ } ) ;
186
189
187
- if ( found ) return path . join ( dir , found ) ;
188
- }
190
+ if ( found ) return path . join ( dir , found ) ;
189
191
}
190
192
191
193
return null ;
Original file line number Diff line number Diff line change @@ -101,14 +101,26 @@ test('replaces strings', () => {
101
101
} ) ;
102
102
103
103
test ( 'ignores hooks.server folder when resolving hooks' , ( ) => {
104
- write ( 'hooks.server/ index.js' , '' ) ;
104
+ write ( join ( 'hooks.server' , ' index.js') , '' ) ;
105
105
106
106
expect ( resolve_entry ( source_dir + '/hooks' ) ) . null ;
107
107
} ) ;
108
108
109
109
test ( 'ignores hooks folder that has no index file when resolving hooks' , ( ) => {
110
- write ( 'hooks/ not-index.js' , '' ) ;
110
+ write ( join ( 'hooks' , ' not-index.js') , '' ) ;
111
111
write ( 'hooks.js' , '' ) ;
112
112
113
- expect ( resolve_entry ( source_dir + '/hooks' ) ) . toBe ( source_dir + '/hooks' ) ;
113
+ expect ( resolve_entry ( source_dir + '/hooks' ) ) . toBe ( join ( source_dir , 'hooks.js' ) ) ;
114
+ } ) ;
115
+
116
+ test ( 'ignores hooks folder when resolving universal hooks' , ( ) => {
117
+ write ( join ( 'hooks' , 'hooks.server.js' ) , '' ) ;
118
+
119
+ expect ( resolve_entry ( source_dir + '/hooks' ) ) . null ;
120
+ } ) ;
121
+
122
+ test ( 'resolves entries that have an extension' , ( ) => {
123
+ write ( 'hooks.js' , '' ) ;
124
+
125
+ expect ( resolve_entry ( join ( source_dir , 'hooks.js' ) ) ) . toBe ( join ( source_dir , 'hooks.js' ) ) ;
114
126
} ) ;
You can’t perform that action at this time.
0 commit comments