plugin-group
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

Overview

加载储存插件,支持函数、对象、路径引入

Install

安装依赖

npm i plugin-store
// esm
import { PluginGroup } from 'plugin-Store'

const pluginGroup = new PluginGroup()
// cjs
const { PluginGroup } = require('plugin-Store')

const pluginGroup = new PluginGroup()
// script引入
<script src="https://unpkg.com/box-cat/dist/boxCat.js"></script>
const pluginGroup = new PluginGroup.PluginGroup()

Class

PluginGroup类型

type CreatePluginData<T> = () => T
type AddType<T> = T | CreatePluginData<T>
export class PluginGroup<T extends {
  id: any
}> {
  map: Map<string, T>
  use(...plugins: Array<AddType<T> | string>): Promise<void>
  get(id: T['id']): T | undefined
  remove(id: string): void
}

Api

use

注册插件,数据结构需要带id字段,用来标识插件id,防止重复注册。

路径注册通过 import 读取默认导出的插件

pluginGroup.use({
  id: 'test'
}, createPlugin(), './plugin')

get

通过id获取插件

const id = 'test'
pluginGroup.use({
  id
})
pluginGroup.get(id).id === id

remove

通过id删除插件

pluginGroup.remove('test')

Readme

Keywords

Package Sidebar

Install

npm i plugin-group

Weekly Downloads

3

Version

1.0.6

License

MIT

Unpacked Size

14.2 kB

Total Files

24

Last publish

Collaborators

  • abmao