This plugin configures ESBuild for building code compatible with CloudFront Functions.
As can be seen in the documentation, CloudFront Functions do not run on Node, but on AWS's custom JS runtime.
According to them, it
... is compliant with ECMAScript (ES) version 5.1 and also supports some features of ES versions 6 through 9.
This plugin does its best to enable and disable transpiling features as the documentation says is available for the v1 runtime and v2 runtime. By default the v1 runtime is assumed.
Check out the example!
Installation
npm i -D esbuild-cf-functions-plugin
pnpm i -D esbuild-cf-functions-plugin
yarn add -D esbuild-cf-functions-plugin
// build.mjs
import { build } from "esbuild"
import { CloudFrontFunctionsPlugin } from "esbuild-cf-functions-plugin"
void build({
entryPoints: ["src/index.ts"],
outdir: "dist",
minify: true,
logLevel: "info",
plugins: [CloudFrontFunctionsPlugin()],
})
To enable v2 runtime features:
plugins: [CloudFrontFunctionsPlugin({ runtimeVersion: 2 })],
The plugin overrides the format
and target
options, unless I did something wrong.