@@ -85,19 +85,29 @@ export function get_tsconfig(kit, include_base_url) {
85
85
/** @param {string } file */
86
86
const config_relative = ( file ) => posixify ( path . relative ( kit . outDir , file ) ) ;
87
87
88
- const include = [ 'ambient.d.ts' , './types/**/$types.d.ts' , config_relative ( 'vite.config.ts' ) ] ;
89
- for ( const dir of [ kit . files . routes , kit . files . lib ] ) {
90
- const relative = project_relative ( path . dirname ( dir ) ) ;
91
- include . push ( config_relative ( `${ relative } /**/*.js` ) ) ;
92
- include . push ( config_relative ( `${ relative } /**/*.ts` ) ) ;
93
- include . push ( config_relative ( `${ relative } /**/*.svelte` ) ) ;
88
+ const include = new Set ( [
89
+ 'ambient.d.ts' ,
90
+ './types/**/$types.d.ts' ,
91
+ config_relative ( 'vite.config.ts' )
92
+ ] ) ;
93
+ // TODO(v2): find a better way to include all src files. We can't just use routes/lib only because
94
+ // people might have other folders/files in src that they want included.
95
+ const src_includes = [ kit . files . routes , kit . files . lib , path . resolve ( 'src' ) ] . filter ( ( dir ) => {
96
+ const relative = path . relative ( path . resolve ( 'src' ) , dir ) ;
97
+ return ! relative || relative . startsWith ( '..' ) ;
98
+ } ) ;
99
+ for ( const dir of src_includes ) {
100
+ include . add ( config_relative ( `${ dir } /**/*.js` ) ) ;
101
+ include . add ( config_relative ( `${ dir } /**/*.ts` ) ) ;
102
+ include . add ( config_relative ( `${ dir } /**/*.svelte` ) ) ;
94
103
}
104
+
95
105
// Test folder is a special case - we advocate putting tests in a top-level test folder
96
106
// and it's not configurable (should we make it?)
97
107
const test_folder = project_relative ( 'tests' ) ;
98
- include . push ( config_relative ( `${ test_folder } /**/*.js` ) ) ;
99
- include . push ( config_relative ( `${ test_folder } /**/*.ts` ) ) ;
100
- include . push ( config_relative ( `${ test_folder } /**/*.svelte` ) ) ;
108
+ include . add ( config_relative ( `${ test_folder } /**/*.js` ) ) ;
109
+ include . add ( config_relative ( `${ test_folder } /**/*.ts` ) ) ;
110
+ include . add ( config_relative ( `${ test_folder } /**/*.svelte` ) ) ;
101
111
102
112
const exclude = [ config_relative ( 'node_modules/**' ) , './[!ambient.d.ts]**' ] ;
103
113
if ( path . extname ( kit . files . serviceWorker ) ) {
@@ -135,7 +145,7 @@ export function get_tsconfig(kit, include_base_url) {
135
145
// TODO(v2): use the new flag verbatimModuleSyntax instead (requires support by Vite/Esbuild)
136
146
ignoreDeprecations : ts && Number ( ts . version . split ( '.' ) [ 0 ] ) >= 5 ? '5.0' : undefined
137
147
} ,
138
- include,
148
+ include : [ ... include ] ,
139
149
exclude
140
150
} ;
141
151
0 commit comments