@@ -341,70 +341,70 @@ def install_typescript_dependencies
341341 MSG
342342 GeneratorMessages . add_warning ( warning )
343343 end
344- end
345344
346- def create_css_module_types
347- puts Rainbow ( "📝 Creating CSS module type definitions..." ) . yellow
345+ def create_css_module_types
346+ puts Rainbow ( "📝 Creating CSS module type definitions..." ) . yellow
348347
349- # Ensure the types directory exists
350- FileUtils . mkdir_p ( "app/javascript/types" )
348+ # Ensure the types directory exists
349+ FileUtils . mkdir_p ( "app/javascript/types" )
351350
352- css_module_types_content = <<~TS . strip
353- // TypeScript definitions for CSS modules
354- declare module "*.module.css" {
355- const classes: { [key: string]: string };
356- export default classes;
357- }
351+ css_module_types_content = <<~TS . strip
352+ // TypeScript definitions for CSS modules
353+ declare module "*.module.css" {
354+ const classes: { [key: string]: string };
355+ export default classes;
356+ }
358357
359- declare module "*.module.scss" {
360- const classes: { [key: string]: string };
361- export default classes;
362- }
358+ declare module "*.module.scss" {
359+ const classes: { [key: string]: string };
360+ export default classes;
361+ }
363362
364- declare module "*.module.sass" {
365- const classes: { [key: string]: string };
366- export default classes;
367- }
368- TS
363+ declare module "*.module.sass" {
364+ const classes: { [key: string]: string };
365+ export default classes;
366+ }
367+ TS
369368
370- File . write ( "app/javascript/types/css-modules.d.ts" , css_module_types_content )
371- puts Rainbow ( "✅ Created CSS module type definitions" ) . green
372- end
369+ File . write ( "app/javascript/types/css-modules.d.ts" , css_module_types_content )
370+ puts Rainbow ( "✅ Created CSS module type definitions" ) . green
371+ end
373372
374- def create_typescript_config
375- tsconfig_content = {
376- "compilerOptions" => {
377- "target" => "es2018" ,
378- "lib" => [ "dom" , "dom.iterable" , "es6" ] ,
379- "allowJs" => true ,
380- "skipLibCheck" => true ,
381- "esModuleInterop" => true ,
382- "allowSyntheticDefaultImports" => true ,
383- "strict" => true ,
384- "forceConsistentCasingInFileNames" => true ,
385- "noFallthroughCasesInSwitch" => true ,
386- "module" => "esnext" ,
387- "moduleResolution" => "node" ,
388- "resolveJsonModule" => true ,
389- "isolatedModules" => true ,
390- "noEmit" => true ,
391- "jsx" => "react-jsx"
392- } ,
393- "include" => [
394- "app/javascript/**/*"
395- ] ,
396- "exclude" => [
397- "node_modules"
398- ]
399- }
373+ def create_typescript_config
374+ tsconfig_content = {
375+ "compilerOptions" => {
376+ "target" => "es2018" ,
377+ "lib" => [ "dom" , "dom.iterable" , "es6" ] ,
378+ "allowJs" => true ,
379+ "skipLibCheck" => true ,
380+ "esModuleInterop" => true ,
381+ "allowSyntheticDefaultImports" => true ,
382+ "strict" => true ,
383+ "forceConsistentCasingInFileNames" => true ,
384+ "noFallthroughCasesInSwitch" => true ,
385+ "module" => "esnext" ,
386+ "moduleResolution" => "node" ,
387+ "resolveJsonModule" => true ,
388+ "isolatedModules" => true ,
389+ "noEmit" => true ,
390+ "jsx" => "react-jsx"
391+ } ,
392+ "include" => [
393+ "app/javascript/**/*"
394+ ] ,
395+ "exclude" => [
396+ "node_modules"
397+ ]
398+ }
400399
401- File . write ( "tsconfig.json" , JSON . pretty_generate ( tsconfig_content ) )
402- puts Rainbow ( "✅ Created tsconfig.json" ) . green
403- end
400+ File . write ( "tsconfig.json" , JSON . pretty_generate ( tsconfig_content ) )
401+ puts Rainbow ( "✅ Created tsconfig.json" ) . green
402+ end
404403
405- # Removed: Shakapacker auto-installation logic (now explicit dependency)
404+ # Removed: Shakapacker auto-installation logic (now explicit dependency)
406405
407- # Removed: Shakapacker 8+ is now required as explicit dependency
408- # rubocop:enable Metrics/ClassLength
406+ # Removed: Shakapacker 8+ is now required as explicit dependency
407+ # rubocop:enable Metrics/ClassLength
408+ end
409409 end
410410end
0 commit comments