0.135.16 • Published 23 days ago

esm-worker v0.135.16

Weekly downloads
-
License
MIT
Repository
github
Last release
23 days ago

esm-worker

A Cloudflare worker handles all requests of esm.sh at the edge(earth).

  • Cache everything at the edge
  • Store modules in KV
  • Store assets in R2

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
0.135.14

23 days ago

0.135.16

23 days ago

0.135.13

2 months ago

0.135.12

2 months ago

0.135.11

3 months ago

0.135.8

3 months ago

0.135.7

3 months ago

0.135.6

3 months ago

0.135.5

3 months ago

0.135.9

3 months ago

0.135.10

3 months ago

0.135.4

4 months ago

0.135.3

5 months ago

0.135.2

5 months ago

0.135.1

6 months ago

0.135.0

6 months ago

0.134.0

6 months ago

0.133.0

7 months ago

0.132.1

8 months ago

0.132.0

8 months ago

0.131.0

9 months ago

0.131.1

9 months ago

0.128.8

10 months ago

0.128.7

10 months ago

0.128.6

10 months ago

0.128.5

10 months ago

0.128.9

10 months ago

0.127.1

10 months ago

0.127.0

11 months ago

0.129.0

10 months ago

0.128.10

10 months ago

0.128.11

10 months ago

0.128.12

10 months ago

0.128.14

10 months ago

0.128.15

10 months ago

0.128.16

10 months ago

0.130.1

10 months ago

0.130.0

10 months ago

0.130.4

10 months ago

0.130.3

10 months ago

0.130.2

10 months ago

0.128.0

10 months ago

0.128.4

10 months ago

0.128.3

10 months ago

0.128.2

10 months ago

0.128.1

10 months ago

0.122.11

12 months ago

0.122.10

12 months ago

0.122.12

12 months ago

0.122.6

12 months ago

0.122.5

12 months ago

0.126.0

11 months ago

0.122.4

12 months ago

0.125.0

11 months ago

0.124.1

12 months ago

0.122.3

12 months ago

0.121.4

12 months ago

0.122.9

12 months ago

0.122.8

12 months ago

0.122.7

12 months ago

0.124.0

12 months ago

0.122.2

12 months ago

0.121.3

12 months ago

0.123.0

12 months ago

0.122.1

12 months ago

0.121.2

12 months ago

0.122.0

12 months ago

0.121.1

12 months ago

0.121.0

12 months ago

0.119.0

1 year ago

0.119.1

1 year ago

0.120.5

1 year ago

0.120.6

1 year ago

0.120.1

1 year ago

0.120.2

1 year ago

0.120.3

1 year ago

0.120.4

1 year ago

0.120.0

1 year ago

0.0.10

3 years ago

0.0.11

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago