Runtime

ScriptRunner Connect runtime is a custom JavaScript runtime based on Google's V8 engine, which is responsible for securely running your code. Because we have our own runtime, it's incompatible with other runtimes, such as Node or Deno. However, we are embracing implementing standardized APIs whenever possible and generally aim to be compatible with other runtimes of similar nature. We welcome and aim to be compatible with the WinterCG initiative.

What does that mean for you?

When you want to include an NPM package in your workspace, the package may not be (fully) compatible with our runtime if the package is exclusively built for Node or uses browser-based APIs that we don't support. This does not mean that you can't use any NPM package. There are many packages out there that solve the same problem; you just have to try a different one that may be written to utilize (more modern) standardized APIs. For example, an NPM package that uses Node's crypto module under the hood wouldn't work because we're not supporting that API. However, if you find a different package that does the same job and uses Web Crypto API, which is standardized, it's more than likely to work (although our Web Crypto support is currently partial).

We'll be curating a list of verified (to work in our runtime) third-party NPM packages, which you can easily pick from, but you can try out any NPM package you desire. Your mileage may vary.

Supported APIs

By default, V8 has a core standard library for JavaScript (ECMAScript 2020).

On top of the core standard library, we have added support for the following APIs:

If you're interested in TS types for our runtime, you can find them here.

Known limitations

Unhandled promise rejections are not captured and logged for floating promises. Use caution to not fire off a promise and not either awaiting  on them to complete or failing to add a catch method to capture any possible errors.

On this page