functions-runner

1.0.4 • Public • Published

Functions Runner for Node.js

A CLI Tool (based on Express) for running and testing portable Node.js functions locally Without needing to worry about writing an HTTP server or complicated request handling logic.

Support

It helps spin up a local development server for quick testing of Functions from different providers, including:

Installation

Add the CLI Tool to your package.json file using npm.

npm install functions-runner

Quickstarts

Quickstart: Hello, World on your local machine

  1. Create an index.js file with the following contents:

    exports.helloWorld = (req, res) => {
      res.send('Hello, World');
    };
  2. Run the following command:

    npx functions-runner --target=helloWorld
  3. Open http://localhost:8080/helloWorld in your browser and see Hello, World.

you can a start script to package.json, with configuration passed via command-line arguments:

```js
  "scripts": {
    "start:dev": "functions-runner --target=helloWorld"
  }
```
  1. Use npm run start:dev to start the built-in local development server:

    npm run start:dev
    ...
    Serving function...
    Function: helloWorld
    URL: http://localhost:8080/
  2. Send requests to this function using curl from another terminal window:

    curl localhost:8080/helloWorld
    # Output: Hello, World

Configure the Functions Runner

You can configure the Functions Framework using command-line flags or environment variables. If you specify both, the environment variable will be ignored.

Command-line flag Default Description
--port 8080 The port on which the Functions Framework listens for requests. e.g --port=3000
--target required The name of the exported function to be invoked in response to requests. e.g --target=helloWorld
--targets optional The name of the exported functions to be invoked in response to requests e.g --targets=helloWorld,function,greeting
--src dir defined by main in package.json The path to index.js where the function(s) are exported from. e.g --src=dist/index.js
--provider GCP Supported Serverless provider GCP, AWS. e.g --provider=aws

TypeScript

Add this scripts to package.json

    "build": "tsc",

    "dev": "npm run build && npx functions-runner --target=helloWorld --src=dist/index.js",

    "start": "npm run build && node dist/index.js"

don't forget to add this to tsconfig.json

  "outDir": "dist/"

Package Sidebar

Install

npm i functions-runner

Weekly Downloads

3

Version

1.0.4

License

ISC

Unpacked Size

8.87 kB

Total Files

7

Last publish

Collaborators

  • vwedesam