Skip to content

flowscripter/plugin-api

Repository files navigation

plugin-api

license dependencies travis npm

Flowscripter Plugin API.

Overview

This project provides a Plugin API for the Flowscripter system.

This is a work in progress

Plugins and Extensions

Plugins are based on extensions to the interfaces provided in the @flowscripter/esm-dynamic-plugins and @flowscripter/cli-framework projects.

The extended interfaces declare stricter types which explicitly define their use as a plugin mechanism for the Flowscripter CLI and Flowscripter Runtime.

The two extensions which can be implemented by plugins are:

  • FlowscripterComponent: These extend the Flowscripter Runtime with core functionality (e.g. payload types, datastores and operators) and may access the Runtime Context.
  • FlowscripterCommand: These extend the Flowscripter CLI with parameterised TypeScript or JavaScript and may access the Runtime API.

The following high level class diagram illustrates these relationships:

High Level Plugin Class Diagram

Runtime and Context

The Runtime interface allows FlowscripterCommand implementations to manipulate and manage a Flowscripter Runtime instance.

The Runtime Context interface allows FlowscripterComponent implementations to interact with the internal processing loop of the Flowscripter Runtime.

The following high level class diagram illustrates these relationships:

High Level Runtime Class Diagram

Development

Firstly:

npm install

then:

Build: npm run build

Watch: npm run watch

Lint: npm run lint

Docs: npm run docs

API

API documentation

Further Details

Further details on project configuration files and Javascript version support can be found in the template for this project.

License

MIT © Flowscripter