Skip to content

Commit

Permalink
fix(bundling): update esbuild executor to emit correct events
Browse files Browse the repository at this point in the history
  • Loading branch information
jaysoo authored and Jack Hsu committed Jan 6, 2023
1 parent bd305fd commit c9823d5
Showing 1 changed file with 23 additions and 18 deletions.
41 changes: 23 additions & 18 deletions packages/esbuild/src/executors/esbuild/esbuild.impl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { createAsyncIterable } from '@nrwl/devkit/src/utils/async-iterable';
import { buildEsbuildOptions } from './lib/build-esbuild-options';
import { getExtraDependencies } from './lib/get-extra-dependencies';
import { DependentBuildableProjectNode } from '@nrwl/workspace/src/utilities/buildable-libs-utils';
import { join } from 'path';

const CJS_FILE_EXTENSION = '.cjs' as const;

Expand Down Expand Up @@ -115,7 +116,7 @@ export async function* esbuildExecutor(

next({
success: !!error && !hasTypeErrors,
outfile: esbuildOptions.outfile,
outfile: join(context.root, esbuildOptions.outfile),
});
},
}
Expand All @@ -125,7 +126,7 @@ export async function* esbuildExecutor(

next({
success: true,
outfile: esbuildOptions.outfile,
outfile: join(context.root, esbuildOptions.outfile),
});

return result;
Expand Down Expand Up @@ -164,33 +165,37 @@ export async function* esbuildExecutor(
}
);
} else {
const buildResults = await Promise.all(
options.format.map((format) =>
esbuild.build(buildEsbuildOptions(format, options, context))
)
);
const buildSuccess = buildResults.every((r) => r.errors?.length === 0);

let hasTypeErrors = false;
// Run type-checks first and bail if they don't pass.
if (!options.skipTypeCheck) {
const { errors } = await runTypeCheck(options, context);
hasTypeErrors = errors.length > 0;
if (errors.length > 0) {
yield { success: false };
return;
}
}

if (options.metafile) {
buildResults.forEach((r, idx) => {
// Emit a build event for each file format.
for (let i = 0; i < options.format.length; i++) {
const format = options.format[i];
const esbuildOptions = buildEsbuildOptions(format, options, context);
const buildResult = await esbuild.build(esbuildOptions);

if (options.metafile) {
const filename =
options.format.length === 1
? 'meta.json'
: `meta.${options.format[idx]}.json`;
: `meta.${options.format[i]}.json`;
writeJsonSync(
joinPathFragments(options.outputPath, filename),
r.metafile
buildResult.metafile
);
});
}
}

return { success: buildSuccess && !hasTypeErrors };
yield {
success: buildResult.errors.length === 0,
outfile: join(context.root, esbuildOptions.outfile),
};
}
}
}

Expand Down

0 comments on commit c9823d5

Please sign in to comment.