plugout

General purpose plugin manager for Node.js

Showing:

Popularity

Downloads/wk

0

GitHub Stars

2

Maintenance

Last Commit

8yrs ago

Contributors

1

Package

Dependencies

0

License

Type Definitions

Tree-Shakeable

No?

Categories

Readme

Plugout

Plugout is a general purpose plugin manager with no dependencies.

  • Easily add plugins to your application with a consistent and flexible format
  • Load, unload, reload plugins on-the-fly
  • Plugins can:
  • Listen for events on the main application
  • Emit events on the main application
  • Provide an API that can be used by the main application or other plugins

Plugins

Format

Plugins are defined as node.js modules in a directory of your choosing. The module exports object should be the plugin object and can have the following keys:

  • defaultOptions: An object containing default options. These can be overwritten at load, and the final options object will be in plugins.options.
  • init: a function that is called just after the plugin has been loaded. Most setup functionality should be done in this function.
  • listeners: an object defining event names and listeners (see plugin.listen() below [preferred])
  • provides: an object defining provided functions (see plugin.provide() below [preferred])

API

The following objects/functions are available once the plugin has been loaded (ie, in the init function, but not in the bare module).

  • plugin.context / plugin.getContext(): A reference to the main application. Set in the constructor.
  • plugin.logger: A shortcut to plugin.context.logger (if defined)
  • plugin.options: Merged options object containing defaultOptions, overrides, and prefix (name of the plugin)
  • plugin.provide(name, fn): Defines a function to provide to the outside world.
  • plugin.invoke(name, args...): Calls another plugin's provided function.
  • plugin.emit(name, args...): Emits an event on the context object (main application).
  • plugin.listen(name, listener): Defines a listener for events on the context object (main application).

See samples directory

License

Copyright 2013/2014 Northern Arizona University

This file is part of Plugout.

Plugout is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Plugout is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Plugout. If not, see http://www.gnu.org/licenses/.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial