noun

0.2.0 • Public • Published

noun NPM version

Load and use plugins to manipulate objects. Load locally defined plugins, or define a namespace to automatically load plugins from node_modules. Easy to use and extend.

Noun makes it easy to extend your application with basic plugin functionality.

Usage

var Noun = require('noun');

npm plugins

By default, plugins named noun-* are automatically loaded from node_modules.

Pass a namespace to use your own naming convention:

// load plugins named `my-app-*`
var noun = new Noun('my-app');

Note that plugins are only loaded if they are listed in dependencies or devDependencies in package.json.

See the examples and tests for a better understanding of how Noun works.

local plugins

For local plugins, simply use a leading dot ./ in the path, just like require() rules:

noun.loadPlugins('./plugins/*.js');

Install

Install with npm

npm i noun --save

Run tests

npm test

API

Noun

Create an instance of Noun with the given namespace.

  • namespace {Object}: Used to automatically load plugins from node_modules.
  • source {Object}: Pass an object to directly extend the this object.
var Noun = require('noun');
var noun = new Noun('foo');

.plugin

Define a plugin.

  • fn {Function}: The function to call.
  • returns {Object}: Returns Noun for chaining.
noun
  .plugin(foo())
  .plugin(bar())
  .plugin(baz())

.loadPlugins

Load plugins.

  • pattern {String}: Optionally pass a glob pattern when calling the method directly.
  • returns {Object}: Returns an object of plugins loaded from node_modules.

Called in the constructor to load plugins from node_modules using the given namespace, but you may also call the method directly.

For example, the namespace foo would load plugins using the foo-* glob pattern, e.g:

noun.loadPlugins('foo-*');

.runPlugins

Run an object of plugins. By default, the .runPlugins() method is called in the constructor, but it may also be used directly.

  • fns {Object}: Object of plugins.

When used directly, each plugin is a key-value pair, where the key is the plugin name, and the value is the function to be called.

Currently, the plugin name is useless, so this could have been setup to take an array. However, there are plans to add additional features to take advantage of this configuration.

Example:

noun.runPlugins({'myPlugin': [function]});

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Author

Jon Schlinkert

License

Copyright (c) 2014 Jon Schlinkert, contributors.
Released under the MIT license


This file was generated by verb-cli on October 27, 2014.

Package Sidebar

Install

npm i noun

Weekly Downloads

1

Version

0.2.0

License

none

Last publish

Collaborators

  • jonschlinkert