0.3.0 • Published 3 years ago

hyperform-dev v0.3.0

Weekly downloads
1
License
MIT
Repository
-
Last release
3 years ago

js2faas

JS Transpiler to port your code to Google, Amazon & IBM FaaS

Code requirements

➡️ Your entry point must be in index.js and be default-exported, for instance module.exports = (event) => { /* ... */ }

➡️ It will receive exactly one argument, the invocation payload (commonly called event)

➡️ If your code returns something, it must be an Object, or a Promise thereof

Install

Requires NodeJS >= 10.2.0

npm i js2faas -g

Basic Usage

$ js2faas OPTIONS... 
  
  Options
    --name FUNCTIONNAME 
    --runtime 'nodejs8' | 'nodejs10' | 'latest'
    --aws-role AWSROLEARN

js2faas will transpile your JS code it finds in the current directory, and put it into the newly created folders amazon, google and ibm, respectively. NPM dependencies are supported.

Deploy your code

To Amazon Lambda

cd amazon
npm run create # afterwards, npm run update

To Google Cloud Functions

cd google
npm run deploy

To IBM Functions

cd ibm
npm run deploy

Example

├── index.js
├── node_modules
├── package.json
└── package-lock.json

Let's look into our index.js:

// default-export your entry point
module.exports = (event) => {
 console.log(`Data passed: ${ event }`);
 return { a: 1, b: 2 }
}

Run js2faas

js2faas
  --name newFuncName
  --runtime nodejs10
  --aws-role xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
├── index.js
├── node_modules
├── package.json
├── package-lock.json
|
├── amazon
├── google
└── ibm

Deploy the function

Make sure you have installed the respective CLI tools (aws, gcloud, ibm) and have configured them. Otherwise the scripts will not know where to deploy to. Credentials are not baked into the folders.

cd amazon
sh deploy.sh  # afterwards, sh update.sh

# --

cd google
sh deploy.sh

# -- 

cd ibm
sh deploy.sh

Licence

Apache 2.0