Skip to content

Latest commit

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Babel Runtime for Serverless

serverless

Features

  • Runs locally and deploys functions written in ES2015 syntax (via Babel)
  • Classic and Modern JS Style handlers
  • Browserifies, minifies your functions on deployment

Install

Note: Serverless v0.5.0 or higher is required.

  • Install via npm in the root of your Serverless Project: npm install serverless-runtime-babel --save
  • In the plugins array in your s-project.json add "serverless-runtime-babel"
  • All done!

Usage

All you need is to set runtime property of s-function.json to babel. You could use the classic style handler when you need to call context.done() or the modern style when your functions should return a promise.

Classic Style

/* handler.js */'use strict';module.exports.handler=function(event,context){/* Everything is the same but better */let[name,age,isAdmin]=['bob',23,false];letuser={name, age};returncontext.done(null,{
isAdmin,userName: user.name,userAge: user.age});};

Modern JS Style

/* event.json */{"repos": ["serverless/serverless","serverless/serverless-runtime-babel"]}
/* handler.js */import"babel-polyfill"importrequestfrom"request-promise"constheaders={'User-Agent': 'Serverless'};exportdefault({repos})=>{returnPromise.all(repos.map(repo=>{leturi=`https://api.github.com/repos/${repo}`returnrequest({headers, uri,json: true}).then(({stargazers_count})=>({repo,stars: stargazers_count}))}))}

Scaffold

You can use serverless function create as usual — it will promt you for a runtime unless you add the -r babel flag.

Examples

Options

Configuration options can be used by setting the custom.runtime of s-function.json. The following options are available:

  • babel — An object with a Babel configuration

  • minify — When set to true, this will enable minification. Default: true.

Browserify Options

Browserify options can be included as normal configuration options to the runtime object. The following options are supported:

  • handlerExt
  • requires
  • plugins
  • transforms
  • exclude
  • ignore (defaults to ["aws-sdk"])
  • extensions

For more information on these options, please visit the Browserify Documentaton.

Example

Example Babel Runtime configuration with default values:

{/*s-function.json*//*...*/"runtime": "babel","custom": {"runtime": {"babel": {"presets": ["es2015"]},"handlerExt": "js","requires": [],"plugins": [],"transforms": [],"exclude": [],"ignore": ["aws-sdk"],"extensions": [],"minify": true}},/*...*/}

About

Babel runtime for v.0.5 of the Serverless Framework

Resources

Stars

68 stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages