Unleash awesomeness. Private packages, team management tools, and powerful integrations. Get started with npm Orgs »

twilio-run

1.0.0-beta.4 • Public • Published

npm npm npm Build Status All Contributors

☁️ twilio-run ☁️

CLI tool to run Twilio Functions locally for development

📦 Installation

You can install the CLI tool via npm or another package manager. Ideally install it as a dev dependency instead of global:

# Install it as a dev dependency 
$ npm install twilio-run --save-dev
 
# Afterwards you can use by using: 
$ node_modules/.bin/twilio-run
 
$ npx twilio-run
 
# Or inside your package.json scripts section as "twilio-run" 

📖 Usage

  CLI tool to run Twilio Functions locally for development

  Usage
    $ twilio-run [dir]

  Options
    --load-local-env, -f Includes the local environment variables
    --env, -e [/path/to/.env] Loads .env file, overrides local env variables
    --port, -p <port> Override default port of 3000
    --ngrok [subdomain] Uses ngrok to create an outfacing url

  Examples
    $ twilio-run
    # Serves all functions in current functions sub directory

    $ twilio-run demo
    # Serves all functions in demo/functions

    $ PORT=9000 twilio-run
    # Serves functions on port 9000

    $ twilio-run --port=4200
    # Serves functions on port 4200

    $ twilio-run --env
    # Loads environment variables from .env file

    $ twilio-run --ngrok
    # Exposes the Twilio functions via ngrok to share them

🔬 API

The module also exposes two functions that you can use outside of the CLI tool:

runDevServer(port: number, baseDir: string): Promise<Express.Application>

This allows you to trigger running an express server that will expose all functions and assets. Example:

const { runDevServer } = require('twilio-run');
 
runDevServer(9000)
  .then(app => {
    console.log(`Server is running on port ${app.get('port')})`);
  })
  .catch(err => {
    console.error('Something failed');
  });
handleToExpressRoute(handler: TwilioHandlerFunction): Express.RequestHandler

You can take the handler function of a Twilio Function file and expose it in an existing Express server. Example:

const express = require('express');
const bodyParser = require('body-parser');
const { handlerToExpressRoute } = require('twilio-run');
 
const { handler } = require('./path/to/function.js');
 
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
 
app.all(handlerToExpressRoute(handler));
 
app.listen(3000, () => console.log('Server running on port 3000'));

💞 Contributing

💖 Please be aware that this project has a Code of Conduct 💖

  1. Fork the project
  2. Clone your own fork like this:
$ git clone git@github.com:dkundel/twilio-run.git
  1. Install the dependencies
cd twilio-run
$ npm install
  1. Make changes
  2. Test your changes by running
$ npm test
  1. Commit your changes and open a pull request

✨ Contributors

Thanks goes to these wonderful people (emoji key):


Dominik Kundel

💻

dbbidclips

💻 🐛

Shelby Hagman

🐛 💻

JavaScript Joe

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

📜 License

MIT

install

npm i twilio-run

Downloadsweekly downloads

15

version

1.0.0-beta.4

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability