Skip to content

Commit

Permalink
Refactor esbuild options into a reusable function
Browse files Browse the repository at this point in the history
  • Loading branch information
tgerulaitis committed Jan 28, 2025
1 parent 44962c9 commit f96b2d6
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
12 changes: 2 additions & 10 deletions build/esbuild/bundle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { BuildOptions, buildSync } from "esbuild";
import { writeFileSync } from "fs";
import { sync } from "glob";
import { join } from "path";
import { getEsbuildOptions } from "../../utils/esbuild";
import { getRuntimeConfig, RuntimeConfig } from "../../utils/runtimeConfig";

const bundle = (
Expand All @@ -24,16 +25,7 @@ const bundle = (

writeFileSync(join(outDir, "functions.json"), JSON.stringify(runtimeConfigs, null, 2));
runtimeConfigs.forEach(config => {
buildSync({
entryPoints: [config.file],
absWorkingDir: process.cwd(),
format: "cjs",
bundle: true,
platform: "node",
outfile: join(outDir, `functions/${config.name}/index.js`),
sourcemap: "both",
...esbuildOptions,
});
buildSync(getEsbuildOptions(config, outDir, esbuildOptions));
});
};

Expand Down
20 changes: 20 additions & 0 deletions utils/esbuild.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { BuildOptions } from "esbuild";
import { join } from "node:path";
import { RuntimeConfig } from "./runtimeConfig";

export function getEsbuildOptions(
functionConfig: RuntimeConfig,
outputDirectory: string,
additionalOptions?: Partial<BuildOptions>,
): Partial<BuildOptions> {
return {
entryPoints: [functionConfig.file],
absWorkingDir: process.cwd(), // We should probably infer the working directory from the cloudseed.json file
format: "cjs",
bundle: true,
platform: "node",
outfile: join(outputDirectory, `functions/${functionConfig.name}/index.js`),
sourcemap: "both",
...additionalOptions,
};
}

0 comments on commit f96b2d6

Please sign in to comment.