Plugins
Plugins extend your CLI's capabilities. They can add commands, modify config, hook into lifecycle events, and more.
Using a Plugin
typescript
import { defineConfig } from 'create-bcli-app'
import autoComplete from 'create-bcli-app-plugin-autocomplete'
import updateNotifier from 'create-bcli-app-plugin-update'
export default defineConfig({
name: 'my-cli',
version: '1.0.0',
plugins: [
autoComplete(),
updateNotifier(),
],
})Writing a Plugin
typescript
import { definePlugin } from 'create-bcli-app'
export default definePlugin({
name: 'my-plugin',
setup: (config) => {
// Modify config
config.middlewares = config.middlewares ?? []
config.middlewares.push({
phase: 'preRun',
run: (ctx) => {
console.log('Plugin hook running!')
},
})
// Return modified config
return config
},
})Plugin API
typescript
interface PluginDefinition {
name: string
setup: (config: CraftConfig) => CraftConfig | void
}Official Plugins
| Plugin | Description |
|---|---|
create-bcli-app-plugin-autocomplete | Shell autocomplete (bash/zsh/fish) |
create-bcli-app-plugin-update | Check for updates on npm |
create-bcli-app-plugin-telemetry | Anonymous usage analytics |
Publishing Plugins
Publish your plugin as an npm package with the create-bcli-app-plugin- prefix:
create-bcli-app-plugin-<name>Users just install and add to their config.