Dear OpenWhiskers

We merged the PR [1] to add the nodejs 8 runtime in the default deployment
configuration.

This allows you now to specify the kind nodejs:8 [2]

Node.js 6 already has good support for ES2015, Node.js 8 added a few more
like async/await part of the ES2017 spec. You can now use async in the main
function of the Action, I guess any function :-)

This add a 3rd programing style in addition of callbacks and promises like
this:

const { promisify } = require('util');
const request = promisify(require('request'));

async function main({
  location='San Juan',
  url=`https://query.yahooapis.com/v1/public/yql?q=select item.condition
from weather.forecast where woeid in (select woeid from geo.places(1) where
text="'${location}'")&format=json`
}){
  let response
  try {
    response = await request(url)
  } catch (err) {
    console.error('Http error', err)
    return Promise.reject({Error:err});
  }
  return JSON.parse(response.body).query.results.channel.item.condition;
}


For now, the default the nodejs kind is set to nodejs:6, the same for
pre-warm containers on initialization of invoker.

The nodejs 8 runtime only includes pre-installed the openwhisk sdk

I added a webpack section [3] to the docs to illustrate how to add npm
dependencies to their actions, in addition of using a zip archive.

Also want to note that the breakdown of the runtimes into separate repos
was a building block for my team to deliver in the downstream IBM Cloud
Functions nodejs 8 support, the runtime in IBM includes some pre-installed
latest npm packages for IBM services such as db2, s3 Object Storage,
Watson, Cloudant and others similar set as node:js6 [4]

Here is a good post from the Node.js team back when they introduced version
8 as current [5]

[1] https://github.com/apache/incubator-openwhisk/pull/2958
[2]
https://github.com/apache/incubator-openwhisk/blob/master/docs/reference.md#nodejs-version-8-environment
[3]
https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#package-an-action-as-a-single-bundle
[4]
https://console.bluemix.net/docs/openwhisk/openwhisk_reference.html##openwhisk_ref_javascript_environments_8
[5] https://nodejs.org/en/blog/release/v8.0.0/


Carlos

On Tue, Nov 7, 2017 at 11:27 AM Carlos Santana <[email protected]> wrote:

> Hi
>   I started looking into nodejs 8 support
>
> Something cool about nodejs8 it allows native support for async and wait,
> and the new promisify
> here is some good read on this:
> http://2ality.com/2017/05/util-promisify.html
>
> I have a WIP PR with the support here
> https://github.com/apache/incubator-openwhisk-runtime-nodejs/pull/5
>
> There are few things I want to see if we can improve and take the chance
> to it since this will be a new kind. I added a list in the PR
>
> I have no issue opened because the repo is not enable with Issues, that's
> why I put the details in the PR
>
> -- Carlos
>
>

Reply via email to