plugin-api
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:
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:
Development
Firstly:
npm install
then:
Build: npm run build
Watch: npm run watch
Lint: npm run lint
Docs: npm run docs
API
Further Details
Further details on project configuration files and Javascript version support can be found in the template for this project.
License
MIT © Flowscripter