europa-core
Version:
Europa core engine for converting HTML into valid Markdown
25 lines (24 loc) • 998 B
TypeScript
import { Plugin } from "./Plugin";
import { PluginApi } from "./PluginApi";
/**
* A collection of plugins that hook into the {@link EuropaCore} conversion process.
*/
export interface Preset {
/**
* The plugins that belong to this preset.
*/
readonly plugins?: Plugin[];
}
/**
* Provider a plugin preset compatible with {@link EuropaCore}.
*
* Invoked internally by {@link PluginManager#addPreset} in order to get the preset and is passed an `api`, which it can
* choose to use or not, although typically this will be passed to plugin providers to build its list of plugins.
*
* Any error that is thrown will bubble up and prevent any plugins within the preset from being added.
*
* @param api - The {@link PluginApi} that provides useful methods for preset and plugin providers.
* @return The provided {@link Preset}.
* @throws If a problem occurs while providing the preset or any of its plugins.
*/
export declare type PresetProvider = (api: PluginApi) => Preset;