Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bitquant/cloudflare-workers-sandbox
https://github.com/bitquant/cloudflare-workers-sandbox
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/bitquant/cloudflare-workers-sandbox
- Owner: bitquant
- License: mit
- Created: 2019-02-14T03:40:51.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-07-19T08:11:59.000Z (over 1 year ago)
- Last Synced: 2024-10-31T17:46:45.651Z (about 1 month ago)
- Language: JavaScript
- Size: 95.7 KB
- Stars: 8
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# cloudflare-workers-sandbox
Test your Cloudflare Workers application with your local machine. This package configures a sandbox Cloudflare environment suitable for running and testing your worker code locally.
## Install
```sh
$ npm install -D cloudflare-workers-sandbox
```## Usage
```sh
# Node.js 18 is now required to support fetch() and web streams.npx sbox /path/to/cloudflare/workers/app.js
curl http://localhost:3000
```## Change Log
Starting with version 1.4.0 the [CHANGELOG](./CHANGELOG.md) contains the details of recent package changes.## Module Worker Setup
Example module worker stored in a file: `example-module-worker.js`
```javascript
export default {
async fetch(request, environment, context) {
return new Response("response from module worker");
}
}
```To use the above worker create a javascript file to import the module
worker and set `global.moduleWorker`.```javascript
import moduleWorker from './example-module-worker';global.moduleWorker = moduleWorker;
```Webpack can be used to bundle the files into a single file for use by the sandbox.
## Request Tracing
The sandbox logs all requests received and all fetch() dependencies made during request processing.## Workers KV Usage
There are two options to access KV from the sandbox### Option 1: cloudflare-workers-kv package
Use the [Cloudflare Workers KV](https://www.npmjs.com/package/cloudflare-workers-kv) library to access the live KV store when running in the local sandbox. The global dependencies required by the KV library are provided by the sandbox and do not need to be set like the example code shows.### Option 2: kv-config.json
Create a config file called kv-config.json. The Cloudflare Workers KV Rest API will be used to
get and save data.
```json
{
"accountId": "",
"apiToken": "",
"bindings": [
{
"name": "",
"namespaceId": ""
},
{
"name": "",
"namespaceId": ""
}
]
}
```## Service Bindings
### service-binding.json
Create a config file called service-binding.json. External API calls
will be made to the configured hostname while running in the sandbox.
```json
{
"bindings": [
{
"name": "exampleService",
"hostname": "service.example.com"
}
]
}
```## License
MIT license; see [LICENSE](./LICENSE).