@@ -19,71 +19,96 @@ const glob = require("glob");
1919 * @throws Will exit the process if an error occurs during file matching.
2020 */
2121function transpileCommand ( patterns , options ) {
22- const config = loadConfig ( options . config ) ;
23-
24- const finalPatterns = patterns . length > 0 ? patterns : config . patterns || [ "**/*.js" ] ;
25- let excludePatterns = options . exclude || config . exclude || [ ] ;
26- if ( typeof excludePatterns === "string" ) {
27- excludePatterns = [ excludePatterns ] ; // Convert to array if needed
22+ const config = loadConfig ( options . config ) ;
23+
24+ const finalPatterns =
25+ patterns . length > 0 ? patterns : config . patterns || [ "**/*.js" ] ;
26+ let excludePatterns = options . exclude || config . exclude || [ ] ;
27+ if ( typeof excludePatterns === "string" ) {
28+ excludePatterns = [ excludePatterns ] ; // Convert to array if needed
29+ }
30+
31+ const outputDir = options . output || config . output || "dist" ;
32+ const isSilent = options . silent ?? config . silent ;
33+ const isVerbose = options . verbose ?? config . verbose ;
34+
35+ logMessage ( "info" , "Starting transpilation process..." , isSilent ) ;
36+
37+ if ( ! isSilent && isVerbose ) {
38+ logMessage ( "debug" , `Using output directory: ${ outputDir } ` , false ) ;
39+ }
40+
41+ try {
42+ const files = glob . sync ( finalPatterns . join ( "|" ) , {
43+ ignore : excludePatterns ,
44+ nodir : true ,
45+ } ) ;
46+
47+ if ( files . length === 0 ) {
48+ logMessage ( "warn" , "No files matched for transpilation." , isSilent ) ;
49+ return ;
2850 }
2951
30- const outputDir = options . output || config . output || "dist" ;
31- const isSilent = options . silent ?? config . silent ;
32- const isVerbose = options . verbose ?? config . verbose ;
33-
34- logMessage ( "info" , "Starting transpilation process..." , isSilent ) ;
52+ logMessage ( "info" , `Processing ${ files . length } files...` , isSilent ) ;
3553
3654 if ( ! isSilent && isVerbose ) {
37- logMessage ( "debug" , `Using output directory : ${ outputDir } ` , false ) ;
55+ logMessage ( "debug" , `Matched files : ${ files . join ( ", " ) } ` , false ) ;
3856 }
3957
40- try {
41- const files = glob . sync ( finalPatterns . join ( "|" ) , { ignore : excludePatterns , nodir : true } ) ;
42-
43- if ( files . length === 0 ) {
44- logMessage ( "warn" , "No files matched for transpilation." , isSilent ) ;
45- return ;
46- }
47-
48- logMessage ( "info" , `Processing ${ files . length } files...` , isSilent ) ;
58+ const failedFiles = [ ] ;
4959
50- if ( ! isSilent && isVerbose ) {
51- logMessage ( "debug" , `Matched files: ${ files . join ( ", " ) } ` , false ) ;
52- }
60+ for ( const file of files ) {
61+ logMessage ( "info" , `Transpiling: ${ file } ` , isSilent ) ;
5362
54- const failedFiles = [ ] ;
63+ if ( ! isSilent && isVerbose ) {
64+ logMessage ( "debug" , `Source directory: ${ path . dirname ( file ) } ` , false ) ;
65+ }
5566
56- for ( const file of files ) {
57- logMessage ( "info" , `Transpiling: ${ file } ` , isSilent ) ;
67+ try {
68+ const destinationFile = path . join (
69+ outputDir ,
70+ path . dirname ( file ) ,
71+ path . basename ( file )
72+ ) ;
5873
59- if ( ! isSilent && isVerbose ) {
60- logMessage ( "debug" , `Source directory: ${ path . dirname ( file ) } ` , false ) ;
61- }
62-
63- try {
64- const destinationFile = path . join ( outputDir , path . dirname ( file ) , path . basename ( file ) ) ;
65-
66- if ( ! fs . existsSync ( path . dirname ( destinationFile ) ) ) {
67- fs . mkdirSync ( path . dirname ( destinationFile ) , { recursive : true } ) ;
68- }
69-
70- fs . copyFileSync ( file , destinationFile ) ;
71- logMessage ( "info" , `Successfully transpiled: ${ file } -> ${ destinationFile } ` , isSilent ) ;
72- } catch ( error ) {
73- logMessage ( "error" , `Failed to transpile ${ file } : ${ error . message } ` , isSilent ) ;
74- failedFiles . push ( file ) ;
75- }
74+ if ( ! fs . existsSync ( path . dirname ( destinationFile ) ) ) {
75+ fs . mkdirSync ( path . dirname ( destinationFile ) , { recursive : true } ) ;
7676 }
7777
78- logMessage ( "info" , "Transpilation process completed!" , isSilent ) ;
78+ fs . copyFileSync ( file , destinationFile ) ;
79+ logMessage (
80+ "info" ,
81+ `Successfully transpiled: ${ file } -> ${ destinationFile } ` ,
82+ isSilent
83+ ) ;
84+ } catch ( error ) {
85+ logMessage (
86+ "error" ,
87+ `Failed to transpile ${ file } : ${ error . message } ` ,
88+ isSilent
89+ ) ;
90+ failedFiles . push ( file ) ;
91+ }
92+ }
7993
80- if ( failedFiles . length > 0 ) {
81- logMessage ( "warn" , `Failed to transpile ${ failedFiles . length } files: ${ failedFiles . join ( ", " ) } ` , isSilent ) ;
82- }
83- } catch ( error ) {
84- logMessage ( "error" , `Error matching files: ${ error . message } ` , false ) ;
85- process . exit ( 1 ) ;
94+ logMessage ( "info" , "Transpilation process completed!" , isSilent ) ;
95+
96+ if ( failedFiles . length > 0 ) {
97+ logMessage (
98+ "warn" ,
99+ `Failed to transpile ${ failedFiles . length } files: ${ failedFiles . join (
100+ ", "
101+ ) } `,
102+ isSilent
103+ ) ;
104+ process . exit ( 1 ) ; // Indicate partial success with some failures
105+ } else {
106+ process . exit ( 0 ) ; // Indicate full success
86107 }
108+ } catch ( error ) {
109+ logMessage ( "error" , `Error matching files: ${ error . message } ` , false ) ;
110+ process . exit ( 2 ) ; // Indicate unrecoverable failure
111+ }
87112}
88113
89- module . exports = { transpileCommand } ;
114+ module . exports = { transpileCommand } ;
0 commit comments