1.0.4 • Published 7 months ago

functions-runner v1.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
7 months ago

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 flagDefaultDescription
--port8080The port on which the Functions Framework listens for requests. e.g --port=3000
--targetrequiredThe name of the exported function to be invoked in response to requests. e.g --target=helloWorld
--targetsoptionalThe name of the exported functions to be invoked in response to requests e.g --targets=helloWorld,function,greeting
--srcdir defined by main in package.jsonThe path to index.js where the function(s) are exported from. e.g --src=dist/index.js
--providerGCPSupported 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/"