0.2.1 • Published 4 years ago

yaf-pluginloader v0.2.1

Weekly downloads
-
License
GPL-3.0-or-later
Repository
gitlab
Last release
4 years ago

PluginLoader

Example

plugins/bla.plugin.ts

export default (BaseClass: ObjectConstructor) => class Bla extends BaseClass {
    bla() {
        console.log("bla")
    }
}

plugins/blu.plugin.ts

export default (BaseClass: ObjectConstructor) => class Blu extends BaseClass {
    blu() {
        console.log("blu")
    }

    test() {
        console.log("blu test")
    }
}
export const name = 'tescht'

main.ts

import NodePath from 'path'

import { PluginLoader } from "../PluginLoader"


class Test {
    test() {
        console.log("test")
    }
}


const pluginLoader = new PluginLoader(Test, {
    fileNamePart: 'plugin',
    path: NodePath.resolve(__dirname, './plugins')
})


const plugins = pluginLoader.load()
plugins.forEach(plugin => {
    console.log(plugin)
    const instance = new plugin.class()
    instance.test()
})
0.2.1

4 years ago

0.2.0

4 years ago

0.1.0

4 years ago