functions-runner v1.0.4
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-runnerQuickstarts
Quickstart: Hello, World on your local machine
Create an
index.jsfile with the following contents:exports.helloWorld = (req, res) => { res.send('Hello, World'); };Run the following command:
npx functions-runner --target=helloWorldOpen 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"
}
```Use
npm run start:devto start the built-in local development server:npm run start:dev ... Serving function... Function: helloWorld URL: http://localhost:8080/Send requests to this function using
curlfrom 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/"