A plugin is an object which has following properties.
Plugin Interface
name
- Type: string
- Required: true
Required property, the plugin name.
apply
- Type: (api: SaberInstance, options: any) => void
- Required: true
A function to invoke.
filterPlugins
- Type: FilterPlugins
- Required: false
Filter the plugins, you can use it to add or remove plugins.
type FilterPlugins = (plugins: Plugin[], options: any) => Plugins[]
interface Plugin {
  /* Plugin name */
  name: string
  apply: (api: SaberInstance, options?: any) => void
  filterPlugins: FilterPlugins
  /* Plugin options */
  options?: any
  /* The path to the plugin, only used in logs */
  location?: string
}