@@ -85,19 +85,29 @@ export function get_tsconfig(kit, include_base_url) {
8585 /** @param {string } file */
8686 const config_relative = ( file ) => posixify ( path . relative ( kit . outDir , file ) ) ;
8787
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` ) ) ;
94103 }
104+
95105 // Test folder is a special case - we advocate putting tests in a top-level test folder
96106 // and it's not configurable (should we make it?)
97107 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` ) ) ;
101111
102112 const exclude = [ config_relative ( 'node_modules/**' ) , './[!ambient.d.ts]**' ] ;
103113 if ( path . extname ( kit . files . serviceWorker ) ) {
@@ -135,7 +145,7 @@ export function get_tsconfig(kit, include_base_url) {
135145 // TODO(v2): use the new flag verbatimModuleSyntax instead (requires support by Vite/Esbuild)
136146 ignoreDeprecations : ts && Number ( ts . version . split ( '.' ) [ 0 ] ) >= 5 ? '5.0' : undefined
137147 } ,
138- include,
148+ include : [ ... include ] ,
139149 exclude
140150 } ;
141151
0 commit comments