botui
Version:
Build customizable conversational UIs and bots
25 lines (20 loc) • 494 B
text/typescript
import type { Block } from './block.js'
export type Plugin = (block: Block) => Block
export function pluginManager () {
const plugins: Plugin[] = []
const registerPlugin = (plugin: Plugin): Plugin[] => {
plugins.push(plugin)
return plugins
}
const runWithPlugins = (input: Block): Block => {
let output = input
plugins.forEach((plugin: Plugin) => {
output = plugin?.(output)
})
return output
}
return {
registerPlugin,
runWithPlugins
}
}