esm-worker v0.135.16
esm-worker
A Cloudflare worker handles all requests of esm.sh at the edge(earth).
Installation
npm install esm-worker@^0.135.0
Configuration
You need to add following configuration to your wrangler.toml
:
kv_namespaces = [
{
binding = "KV",
id = "YOUR_KV_ID",
preview_id = "YOUR_PREVIEW_KV_ID"
}
# your other namespaces...
]
[vars]
ESM_ORIGIN = "https://esm.sh" # change to your self-hosting esm.sh server if needed
NPM_REGISTRY = "https://registry.npmjs.org/" # change to your private npm registry if needed
# your other vars...
[[r2_buckets]]
binding = "R2"
bucket_name = "YOUR_BUCKET_NAME"
preview_bucket_name = "YOUR_PREVIEW_BUCKET_NAME"
Other optional configurations in secrets:
- If you are using a self-hosting esm.sh server with
authSecret
option, you need to add the following configuration:wrangler secret put ESM_TOKEN
- If you are using a private npm registry, you need to add the following configuration:
wrangler secret put NPM_TOKEN
Usage
Wrap your Cloudflare worker with the withESMWorker
function:
import { withESMWorker } from "esm-worker";
// extend the `Env` interface
declare global {
interface Env {
// your other vars in `wrangler.toml` ...
}
}
export default withESMWorker((req, env, ctx) => {
const { url } = ctx;
// using a custom homepage
if (url.pathname === "/") {
return new Response("<h1>Welcome to esm.sh!</h1>", {
headers: { "Content-Type": "text/html" },
});
}
// using the cache API
if (url.pathname === "/boom") {
return ctx.withCache(() =>
new Response("Boom!", {
headers: { "Cache-Control": "public; max-age=3600" },
})
);
}
// return void to let esm-worker handle the rest requests
});
Deploy to Cloudflare Workers
wrangler deploy
23 days ago
23 days ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
7 months ago
8 months ago
8 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
12 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago