npm.io
1.15.1 • Published 7 years ago

webiny-plugins

Licence
MIT
Version
1.15.1
Deps
1
Size
21 kB
Vulns
0
Weekly
0
Stars
8.0K

webiny-plugins

code style: prettier PRs Welcome

A simple registry that stores all plugins in a shared object. The only requirement for a plugin is to have a name and a type properties. The rest is entirely up to you.

There is nothing spectacular going on under the hood, just a simple object for storing references and a few utility functions.

For more information, please visit the official docs.

Install

npm install --save webiny-plugins

Or if you prefer yarn:

yarn add webiny-plugins

Usage

Adding a plugin
import { registerPlugins } from "webiny-plugins";

// Add a plugin
registerPlugins({
    name: "my-plugin",
    type: "say-hi",
    salute: () => "Hi!"
});

registerPlugins({
    name: "my-second-plugin",
    type: "say-hi",
    salute: () => "Yo!"
});
Getting plugins by type
// anywhere in your app
import { getPlugins } from "webiny-plugins";

const plugins = getPlugins("say-hi");
plugins.forEach(plugin => {
    // Call "salute" function
    plugin.salute();
});
Getting a single plugin by name
// anywhere in your app
import { getPlugin } from "webiny-plugins";

const plugin = getPlugin("my-plugin");
// Call "salute" function
plugin.salute();
Removing a plugin
// anywhere in your app
import { unregisterPlugin } from "webiny-plugins";

unregisterPlugin("my-plugin");