Apache OpenWhisk Runtime Deno supports Apache OpenWhisk functions written in Deno

Clone this repo:

Branches

  1. 33580ef Update .asf.yaml - fix spelling (#20) by John Bampton · 10 weeks ago master
  2. 6edd223 update core OpenWhisk version (#19) by David Grove · 1 year, 10 months ago
  3. f93aa0b remove travis badge (#18) by David Grove · 1 year, 10 months ago
  4. 0e4a9cf remove Travis CI config and scripts (#17) by David Grove · 1 year, 10 months ago
  5. 76d4a5f remove travis from required checks for merging PRs (#16) by David Grove · 2 years ago

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