Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thomascogez/cf-script
Run local script that can access your cloudflare worker bindings
https://github.com/thomascogez/cf-script
cli cloudflare cloudflare-pages cloudflare-workers script
Last synced: 5 days ago
JSON representation
Run local script that can access your cloudflare worker bindings
- Host: GitHub
- URL: https://github.com/thomascogez/cf-script
- Owner: Thomascogez
- Created: 2025-01-22T23:17:20.000Z (20 days ago)
- Default Branch: main
- Last Pushed: 2025-02-05T14:54:23.000Z (6 days ago)
- Last Synced: 2025-02-05T15:45:20.089Z (6 days ago)
- Topics: cli, cloudflare, cloudflare-pages, cloudflare-workers, script
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/cf-script
- Size: 1.66 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
![]()
Cloudflare script
A simple CLI tool that allow to run local scripts that can access your Worker bindings
![screenshot](./assets/demo.gif)
## What is this ?
When working with cloudflare worker and cloudflare platform locally we don't have any easy way to directly access
Worker bindings such has (kv, r2, d1, ...).This is by the nature of the secure cloudflare design where the bindings are provided to the app and not directly accessible.
So cf-script allow to run piece of code (scripts) that have access to your local cloudflare worker bindings. This can allow you to:
- Run one time sql query against your D1 database
- List, debug, write value in your KV database
- Download a file from your R2 bucket## How To Use
### 1. Install
```bash
npm install cf-script # For local project install# or
npm install cf-script -g # For global install
```### 2. Write your first script
In order to write script you need to create a new file either (.ts or .js) and make it export by default a function
```ts
export default (env, args) => {
console.log("Running script with following bindings ", env)
console.log("And following args ", args)
}
```### 3. Run your script
```bash
cf-script ./scripts/my-first-script.ts
```And that it ๐
You can check examples in the `/dogfood` folder (including one using typescript)
## CLI args
| Name | Description | Default | Example |
| --- | --- | --- | --- |
| `--env` | Environment to run the script in | undefined (default wrangler env) | --env staging |
| `--wcp` | Path to the wrangler config file | undefined (by default it will look for the closest one from cwd) | --wcp ./wrangler.toml |
| `--cwd` | Current working directory | process.cwd() | --cwd ./my-project |
| `--sa` | Args that will be passed to the executed script | undefined (no args) | --sa foo:bar or --sa foo:bar biz:baz |## Credits
This software uses the following open source packages:
- [jiti](https://github.com/unjs/jiti)
- [wrangler](https://github.com/cloudflare/workers-sdk)
- [commander](https://github.com/tj/commander.js)
- [ora](https://github.com/sindresorhus/ora)
- [vitest](https://github.com/vitest-dev/vitest)
- [biome](https://github.com/biomejs/biome)
- [tsup](https://github.com/egoist/tsup)## License
MIT
---
> GitHub [@Thomascogez](https://github.com/Thomascogez) ย ยทย
> X [@Thomascogez](https://x.com/ThomasCogez)