This article is a work in progress.

Extension points

Right now, introducing custom operations is the only extension point available. However, new extension points (e.g. themes, translations) may become available in the future.

Extensibility principles and patterns

AMD modules

Promises

All functions you export from your modules may be asynchronous using Promises . See the signature of operation request handlers for example:

(request: OperationRequest) =>
  OperationResult | PromiseLike<OperationResult>

Being independent of a specific promise library is expressed in the API by the PromiseLike type.

Browser compatibility

Your extension should target modern browsers that support native ES Modules , native ESM dynamic import , and import.meta . Beyond that, you may use feature detection to produce sensible error messages to let the user know why a certain part of the extension is not available in the current browser.