hyperform-dev v0.3.0
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 -gBasic Usage
$ js2faas OPTIONS...
Options
--name FUNCTIONNAME
--runtime 'nodejs8' | 'nodejs10' | 'latest'
--aws-role AWSROLEARNjs2faas 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 updateTo Google Cloud Functions
cd google
npm run deployTo IBM Functions
cd ibm
npm run deployExample
├── index.js
├── node_modules
├── package.json
└── package-lock.jsonLet'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
└── ibmDeploy 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.shLicence
Apache 2.0
5 years ago