# worker-runtime

> A core component of a serverless architecture inspired by [Cloudflare Workers](https://workers.cloudflare.com/)

Latest version **0.29.3** (published 2021-07-25) · 0 weekly downloads

## Install

```sh
npm install worker-runtime
pnpm add worker-runtime
yarn add worker-runtime
bun add worker-runtime
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.29.3 |
| Published | 2021-07-25 |
| First published | 2021-07-25 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 888.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | yes |
| Maintainers | heineiuo |

## Links

- npm: https://www.npmjs.com/package/worker-runtime
- npm.io page: https://npm.io/package/worker-runtime

## Dependencies (7)

- [jsdom](https://npm.io/package/jsdom.md) ^16.5.1
- [find-up](https://npm.io/package/find-up.md) ^4.1.0
- [raw-body](https://npm.io/package/raw-body.md) ^2.4.1
- [node-fetch](https://npm.io/package/node-fetch.md) ^2.6.0
- [http-errors](https://npm.io/package/http-errors.md) ^1.7.1
- [content-type](https://npm.io/package/content-type.md) ^1.0.4
- [performance-now](https://npm.io/package/performance-now.md) ^2.1.0

## Recent versions

- 0.29.3 (latest) — 2021-07-25
- 0.29.2 — 2021-07-25

## README

# Worker Runtime

A core component of a serverless architecture inspired by [Cloudflare Workers](https://workers.cloudflare.com/)

## Get started

```
npm i
cd example
npm i
node index.js
```

## Example


worker.js
```js
addEventListener('fetch', (e) => {
  e.respondWith(new Response('hello world', { status: 200 }))
})

```

index.js
```js
const { Runtime } = require('worker-runtime')
const path = require('path')
const http = require('http')

const runtime = new Runtime(path.resolve(__dirname, './worker.js'))

runtime.start()

http
  .createServer((request, response) => {
    runtime.request({
      type: 'fetch',
      payload: { request, response },
    })
  })
  .listen(8080, () => {
    console.log('Listing on port 8080')
  })

```

## Roadmap

- [x] Remove youkuohao-cli (use rollup config)


## Extension Mechanism

TODO


## Compatibility

node.js >=v16.0.0

## Warning

IT'S NOT A SECURITY MECHANISM, DON'T RUN UNTRUSTED CODE.

---
_Source: https://npm.io/package/worker-runtime · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
