https://github.com/beeequeue/esbuild-cf-functions-plugin
🔧 A plugin to configure ESBuild for building code compatible with CloudFront Functions
https://github.com/beeequeue/esbuild-cf-functions-plugin
Last synced: 2 months ago
JSON representation
🔧 A plugin to configure ESBuild for building code compatible with CloudFront Functions
- Host: GitHub
- URL: https://github.com/beeequeue/esbuild-cf-functions-plugin
- Owner: beeequeue
- Created: 2022-06-19T17:19:59.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-11T18:56:53.000Z (3 months ago)
- Last Synced: 2025-04-13T12:11:41.803Z (2 months ago)
- Language: TypeScript
- Size: 888 KB
- Stars: 17
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# `esbuild-cf-functions-plugin`
[](https://www.npmjs.com/package/esbuild-cf-functions-plugin)


[](https://app.codecov.io/github/BeeeQueue/esbuild-cf-functions-plugin)This plugin configures ESBuild for building code [compatible][runtime] with [CloudFront Functions][cf-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][runtime] and [v2 runtime][runtime-v2]. By default the v1 runtime is assumed.
**Check out the [example](./example)!**
## Usage
Installation
```shell
npm i -D esbuild-cf-functions-plugin
``````shell
pnpm i -D esbuild-cf-functions-plugin
``````shell
yarn add -D esbuild-cf-functions-plugin
``````js
// 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:
```js
plugins: [CloudFrontFunctionsPlugin({ runtimeVersion: 2 })],
```_The plugin overrides the `format` and `target` options, unless I did something wrong._
[cf-functions]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-javascript-runtime-features.html
[runtime]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-javascript-runtime-features.html
[runtime-v2]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-javascript-runtime-20.html