Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@opendoor/cloudworker

Package Overview
Dependencies
Maintainers
73
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@opendoor/cloudworker

node.js runner for Cloudflare Workers

  • 0.1.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
33
increased by1000%
Maintainers
73
Weekly downloads
 
Created
Source

Opendoor fork to support node 14

  • Replaced "node-webcrypto-ossl" with "@peculiar/webcrypto"

Note: This does not address the issue from https://github.com/dollarshaveclub/cloudworker/pull/81 but our tests run with the simple replacement

Cloudworker allows you to run Cloudflare Worker scripts locally.

Installing

Install via NPM:

npm install -g @dollarshaveclub/cloudworker

Package Usage

const Cloudworker = require('@dollarshaveclub/cloudworker')

const simpleScript = `addEventListener('fetch', event => {
  event.respondWith(new Response('hello', {status: 200}))
})`

const req = new Cloudworker.Request('https://myfancywebsite.com/someurl')
const cw = new Cloudworker(simpleScript)
cw.dispatch(req).then((res) => {
  console.log("Response Status: ", res.status)
  res.text().then((body) =>{
    console.log("Response Body: ", body)
  })
})

CLI Usage

Usage: cloudworker [options] <file>

Options:
  -p, --port <port>                   Port (default: 3000)
  -d, --debug                         Debug
  -s, --kv-set [variable.key=value]   Binds variable to a local implementation of Workers KV and sets key to value (default: [])
  -f, --kv-file [variable=path]       Set the filepath for value peristence for the local implementation of Workers KV (default: [])
  -w, --wasm [variable=path]          Binds variable to wasm located at path (default: [])
  -c, --enable-cache                  Enables cache <BETA>
  -r, --watch                         Watch the worker script and restart the worker when changes are detected
  -h, --help                          output usage information

Simple

cloudworker example/example.js
curl localhost:3000/
cloudworker --debug example/example.js
curl localhost:3000/

Workers KV

cloudworker --debug --kv-set KeyValueStore.key=value --kv-set KeyValueStore.hello=world example/example-kv.js
curl localhost:3000/

Workers KV with Persistence

cloudworker --debug --kv-file KeyValueStore=kv.json --kv-set KeyValueStore.key=value --kv-set KeyValueStore.hello=world example/example-kv.js
curl localhost:3000/

WebAssembly

Simple
cloudworker --debug --wasm Wasm=example/simple.wasm example/example-wasm-simple.js
curl localhost:3000/

WebAssembly Source

Inverse Square Root
cloudworker --debug --wasm isqrt=example/isqrt.wasm example/example-wasm-isqrt.js
curl localhost:3000/?num=9

WebAssembly Source

Resizer
cloudworker --debug --wasm RESIZER_WASM=example/resizer.wasm example/example-wasm-resizer.js
curl localhost:3000/wasm-demo/dogdrone.png?width=210 # or open in browser

WebAssembly Source

Cloudflare Worker Compatibility

Cloudworker strives to be as similar to the Cloudflare Worker runtime as possible. A script should behave the same when executed by Cloudworker and when run within Cloudflare Workers. Please file an issue for scenarios in which Cloudworker behaves differently. As behavior differences are found, this package will be updated to match the Cloudflare Worker runtime. This may result in breakage if scripts depended on those behavior differences.

Release Process

For beta releases:

  • Create a new release branch named v[version]-beta. e.g. v0.0.10-beta
  • Run npm version [version]-beta.[beta number]. e.g npm version 0.0.10-beta.1
  • Push branch to origin.
  • Run npm publish --tag beta.
  • Create a new release in Github using tag created by npm version, write relevant release notes, and ensure "This is a pre-release" is checked.
  • Bug fixes and changes should be made on feature branches, merged into master, and then merged into the release branch.
  • Subsequent beta releases of the same beta version should be made off of the same release branch.

For production releases:

  • Merge release branch (if one exists) into master.
  • Run npm version [version]. e.g. npm version 0.0.10
  • Push master to origin.
  • Run npm publish.
  • Create a new release in Github using tag created by npm version and copy release notes from beta.

License

MIT

Keywords

FAQs

Package last updated on 11 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc