Files
wehub-resource-sync 311a3666c4
Build documentation / build (push) Failing after 0s
Unit tests / build (18) (push) Has been cancelled
Unit tests / build (20) (push) Has been cancelled
Unit tests / build (22) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:44:39 +08:00

43 lines
1.4 KiB
JavaScript

import { colors } from "./logger.mjs";
/**
* Plugin to log rebuild information in watch mode
* @param {string} targetName - Name of the build target
* @param {Object} log - Logger instance
* @param {Object} options - Plugin options
* @param {boolean} options.logFirstBuild - Whether to log the first build completion (default: true)
*/
export function rebuildPlugin(targetName, log, options = {}) {
const { logFirstBuild = true } = options;
return {
name: "rebuild-logger",
setup(build) {
let startTime = 0;
let isFirstBuild = true;
build.onStart(() => {
startTime = performance.now();
if (!isFirstBuild) {
log.build(`${colors.gray}Rebuilding ${targetName}...${colors.reset}`);
}
});
build.onEnd((result) => {
const endTime = performance.now();
const duration = (endTime - startTime).toFixed(2);
if (result.errors.length > 0) {
log.error(`${colors.bright}${targetName}${colors.reset} - Build failed with ${result.errors.length} error(s) in ${duration}ms`);
} else if (!isFirstBuild) {
log.done(`${colors.bright}${targetName}${colors.reset} - Rebuilt in ${colors.gray}${duration}ms${colors.reset}`);
} else if (logFirstBuild) {
log.done(`${colors.bright}${targetName}${colors.reset} - Built in ${colors.gray}${duration}ms${colors.reset}`);
}
isFirstBuild = false;
});
},
};
}