Skip to content

danny900714/ts-miniflare

Repository files navigation

ts-miniflare

npm npm

Run TypeScript Cloudflare Workers with Miniflare

Prerequisites

This project requires Node.js LTS (currently version 20.1.0 or later) and NPM. Node and NPM are really easy to install. To make sure you have them available on your machine, try running the following command.

Table of contents

Installation

BEFORE YOU INSTALL: please read the prerequisites

To install and set up the library, run:

$ npm install -S ts-miniflare

Or if you prefer using Yarn:

$ yarn add --dev ts-miniflare

Or if you prefer using Pnpm:

$ pnpm add -D ts-miniflare

Usage

Note

We currently only supports ES module format Cloudflare Worker.

Use inline script

import {Miniflare} from "ts-miniflare";

const mf = new Miniflare({
  module: true,
  script: `
  export default {
    async fetch(request, env, ctx) {
      return new Response("Hello Miniflare!");
    }
  }
  `
})

Use script file

export default {
  async fetch(request, env, ctx) {
    return new Response("Hello Miniflare!");
  }
}
import {Miniflare} from "ts-miniflare";

const mf = new Miniflare({
  module: true,
  scriptPath: "index.ts"
})

Running the tests

$ npm test

Building a distribution version

$ npm run build

This task will create a distribution version of the project inside your local dist/ folder

Serving the distribution version

$ npm run serve:dist

This will use lite-server for servign your already generated distribution version of the project.

Note this requires Building a distribution version first.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Add your changes: git add .
  4. Commit your changes: git commit -am 'Add some feature'
  5. Push to the branch: git push origin my-new-feature
  6. Submit a pull request 😎

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

License

MPL-2.0 © Chao Tzu-Hsien