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) {
170170 if ( fs . existsSync ( entry ) ) {
171171 const stats = fs . statSync ( entry ) ;
172172 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 ) ) {
174177 return resolve_entry ( index ) ;
175178 }
179+ }
176180
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 ) ;
184182
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+ } ) ;
186189
187- if ( found ) return path . join ( dir , found ) ;
188- }
190+ if ( found ) return path . join ( dir , found ) ;
189191 }
190192
191193 return null ;
Original file line number Diff line number Diff line change @@ -101,14 +101,26 @@ test('replaces strings', () => {
101101} ) ;
102102
103103test ( 'ignores hooks.server folder when resolving hooks' , ( ) => {
104- write ( 'hooks.server/ index.js' , '' ) ;
104+ write ( join ( 'hooks.server' , ' index.js') , '' ) ;
105105
106106 expect ( resolve_entry ( source_dir + '/hooks' ) ) . null ;
107107} ) ;
108108
109109test ( 'ignores hooks folder that has no index file when resolving hooks' , ( ) => {
110- write ( 'hooks/ not-index.js' , '' ) ;
110+ write ( join ( 'hooks' , ' not-index.js') , '' ) ;
111111 write ( 'hooks.js' , '' ) ;
112112
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' ) ) ;
114126} ) ;
You can’t perform that action at this time.
0 commit comments