Apache OpenWhisk Runtime for Deno

License

This repository contains sources files needed to build the Deno runtimes for Apache OpenWhisk. The build system will produce a Docker image for each runtime version. These images are used in the platform to execute Deno actions.

Try it out using Docker image:

wsk action create hello main.ts --docker=openwhisk/action-deno-1.3.0

The content of the main.ts is shown below.

export default (args: any) => {
  return {
    message: `Hello, ${args.name || 'World'}!`
  }
}

For the return result, not only support dictionary but also support array

So a very simple hello array function would be:

export default (args: any) => {
   return ["a", "b"]
}

And support array result for sequence action as well, the first action‘s array result can be used as next action’s input parameter.

So the function can be:

func main(args: Any) -> Any {
    return args
}

When invokes above action, we can pass an array object as the input parameter.

Development

A Dockerfile for each runtime image is defined in its respective runtime version directory. Modify this file if you need to add extra dependencies to a runtime version.

Build

  • Run the distDocker command to generate local Docker images for the different runtime versions.
./gradlew distDocker

Test

  1. Build the local Docker images for the Deno runtime (see the instructions above).

  2. Install project dependencies from the top-level Apache OpenWhisk project, which ensures correct versions of dependent libraries are available in the Maven cache.

./gradlew install

This command MUST BE run from the directory containing the main Apache OpenWhisk repository, not this repository's directory.

  1. Run the project tests.
./gradlew :tests:test