Skip to content

Commit

Permalink
Refactor build function to capture and display build errors
Browse files Browse the repository at this point in the history
  • Loading branch information
xentobias committed Sep 27, 2024
1 parent 8afd6a3 commit 457284c
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/commands/build/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ export interface BuildOptions {
export async function build(options: BuildOptions) {
const spinner = ora('Building integration...').start();

const logs: string[] = [];
try {
await Promise.all([
createIntegrationBuilder({
...options,
onBuildLog(log) {
const message = log.toString().replaceAll('\n', ' ').trim();
onBuildLog(data) {
const log = data.toString();
logs.push(log);

const message = log.replaceAll('\n', ' ').trim();
if (message) {
spinner.text = `Building integration... ${gray(`(${message})`)}`;
}
Expand All @@ -41,7 +45,8 @@ export async function build(options: BuildOptions) {
buildIntegrationDefinition(),
]);
} catch (error) {
spinner.fail('Build failed');
spinner.clear();
console.error(logs.join(''));
throw new ActionError(
error instanceof Error ? error.message : String(error),
);
Expand Down Expand Up @@ -84,7 +89,7 @@ export async function createIntegrationBuilder(
// https://github.com/nodejs/node/issues/32106
const isIpcRequired = !!options?.onBuildSuccess || !!options?.onBuildError;
const args = [options?.watch && '--watch'].filter(Boolean) as string[];
const builder = spawn('node', [builderPath, ...args], {
const builder = spawn('node', ['--no-warnings', builderPath, ...args], {
stdio: ['pipe', 'pipe', 'pipe', isIpcRequired ? 'ipc' : undefined],
cwd: process.cwd(),
});
Expand Down

0 comments on commit 457284c

Please sign in to comment.