Skip to content

Apache OpenWhisk Runtime Deno supports Apache OpenWhisk functions written in Deno

License

Notifications You must be signed in to change notification settings

apache/openwhisk-runtime-deno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

33580ef · Sep 24, 2024

History

18 Commits
Aug 15, 2022
Oct 8, 2021
Aug 4, 2022
Aug 15, 2022
Sep 24, 2024
Mar 1, 2021
Mar 1, 2021
Mar 1, 2021
Mar 9, 2021
Mar 1, 2021
Mar 1, 2021
Feb 13, 2023
Mar 1, 2021
Aug 4, 2022
Aug 4, 2022
Feb 16, 2023

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