CircleCI npm version Coverage Status
Dependency injection with promise support for Node.js.
This is Heartsradiant's fork.
npm install @asd14/pluginus
plugin-1.js
exports default { /** * Which plugins need loading before this one * * @type {string[]} */ depend: [], /** * Name other plugins can use to reference and use this plugin * * @type {string} */ name: "PluginOne", /** * Factory function, only runs once when ititialized. The value this function * returns or resolves to will be passed to other plugins depending on it. * * @param {any} ...dependentPlugins * * @returns {* | Promise<*>} */ create: () => { return new Promise(resolve => { setTimeout(() => { resolve({ foo: "bar", }) }, 50) }) }, }
plugin-2.js
export default { depend: ["PluginOne"], name: "Plugin2", create: PluginOne => ({ lorem: `ipsum ${PluginOne.foo}`, }), }
index.js
import { pluginus } from "@asd14/pluginus" pluginus({ source: ["path-to-plugin1", "path-to-plugin2"], }).then(({ PluginOne, Plugin2 }) => { // PluginOne // => { // foo: "bar", // } // Plugin2 // => { // lorem: "ipsum bar", // } })
git clone git@github.com:asd-xiv/pluginus.git && \ cd pluginus && \ npm run setup
Run all *.test.js in src folder
npm testWatch src and examples folder for changes and re-run tests
npm run tdd
See the releases section for details.