Deploys cloudflare workers without the overhead of wrangler/node
Go to file
2023-10-20 14:37:52 -07:00
src add workaround for 16KiB TLS issue 2023-10-20 14:37:52 -07:00
.gitignore load wasm dynamically 2023-10-18 09:15:57 -07:00
build.zig initial commit 2023-10-17 13:39:59 -07:00
index.js move user-editable things to a place where users can deal 2023-10-18 10:17:38 -07:00
LICENSE initial commit 2023-10-17 13:39:59 -07:00
README.md move user-editable things to a place where users can deal 2023-10-18 10:17:38 -07:00

Upload worker to CloudFlare

zig build run -- <worker name> <script file>. Make sure that CF_X_AUTH_EMAIL and CF_X_AUTH_KEY environment variables are set with the correct authentication parameters. An example index.js file is included in the root of the project

Getting new src/script_harness.js

  • Run a real wrangler deploy, then go into the console and copy/paste

Getting new memfs.wasm

npm view @cloudflare/workers-wasi

.tarball: https://registry.npmjs.org/@cloudflare/workers-wasi/-/workers-wasi-0.0.5.tgz
.shasum: 1d9a69c668fd9e240f929dfd5ca802447f31d911
.integrity: sha512-Gxu2tt2YY8tRgN7vfY8mSW0Md5wUj5+gb5eYrqsGRM+qJn9jx+ButL6BteLluDe5vlEkxQ69LagEMHjE58O7iQ==

Steps we take:

  1. Get account id. CF_ACCOUNT_ID environment variable will be checked first. If not, GET https://api.cloudflare.com/client/v4/accounts/
  2. Check if the worker exists: GET https://api.cloudflare.com/client/v4/accounts//workers/services/<worker_name> 404 - does not exist
  3. Add the "script" PUT https://api.cloudflare.com/client/v4/accounts//workers/scripts/<worker_name>?include_subdomain_availability=true&excludeScript=true
  4. Get the "subdomain". I believe this is simply to determine the test url: GET https://api.cloudflare.com/client/v4/accounts//workers/subdomain
  5. Enable the script: This is only done if the script did not exist. Subsequent flows leave this alone POST https://api.cloudflare.com/client/v4/accounts//workers/scripts/<worker_name>/subdomain Data: { "enabled": true }