Skip to content

Commit 291fc7a

Browse files
committed
update transpile.js
1 parent 5138d39 commit 291fc7a

File tree

1 file changed

+77
-52
lines changed

1 file changed

+77
-52
lines changed

src/commands/transpile.js

Lines changed: 77 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -19,71 +19,96 @@ const glob = require("glob");
1919
* @throws Will exit the process if an error occurs during file matching.
2020
*/
2121
function 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

Comments
 (0)