Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

plug-and-play

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

plug-and-play - npm Package Compare versions

Comparing version 2.2.0 to 2.3.0

test/call.handler_error.coffee

2

CHANGELOG.md

@@ -5,2 +5,4 @@ # Changelog

## [2.3.0](https://github.com/adaltas/node-plug-and-play/compare/v2.2.0...v2.3.0) (2021-03-23)
## [2.2.0](https://github.com/adaltas/node-plug-and-play/compare/v2.1.0...v2.2.0) (2021-03-04)

@@ -7,0 +9,0 @@

2

package.json
{
"name": "plug-and-play",
"version": "2.2.0",
"version": "2.3.0",
"author": "David Worms <david@adaltas.com>",

@@ -5,0 +5,0 @@ "bugs": {

[![Build Status](https://secure.travis-ci.org/adaltas/node-plug-and-play.svg)](http://travis-ci.org/adaltas/node-plug-and-play)
# Node.js Plugable package
# Node.js Plug-And-Play package

@@ -87,1 +87,99 @@ Easily create hooks and let users plug their own logic across your code to make it extensible by everyone with new features.

```
## API
The package export a function to create a new instance:
```
const plugandplay = require('plug-and-play')
const plugins = plugandplay()
```
It accepts an option object with the properties:
* `args` ([string])
Arguments to pass to the plugin when they are instantiated, only apply if the plugin is defined as a function.
* `chain` (any)
The value returned by Plug-And-Play `register` function, default to the Plug-And-Play instance.
* `parent` (plugandplay)
A parent instance of Plug-And-Play to inherit plugins from.
* `plugins` ([plugin])
List of plugins to register
### Plugin object
A plugin is an object literal with the properties:
* `hooks` ({name: hook})
List of hooks identified by hook names.
* `name` (string)
Name of the plugin.
Alternatively, a plugin can be defined as a function which return the same plugin object and receive the `args` property from the Plug-And-Play function.
### Hook object
A hook is an object literal with the properties:
* `after` ([string])
List of plugin names with hook of the same name are to be executed before, a string is coerced to an array.
* `name` (string)
The name of the hook.
* `before` ([string])
List of plugin names with hook of the same name are to be executed after, a string is coerced to an array.
Note, when referencing plugins with `after` and `before`, the plugins do not need to exists. If they do, they are required to export a hook of the same name.
### Call function
The function signature is:
```
call({args = [], handler, hooks = [], name})
```
Execute a hander function and its associated hooks. The first argument is an object with the properties:
* `args` (any)
The argument pass to the handler function as well as all hook handlers
* `handler` (function)
The function to decorate, receive the value assocaited with the `args` property.
* `name` (string)
The plugin hook to refer to.
* `hooks` ([hook])
List of completary hooks from the end user.
### Get function
The function signature is:
```
get({name, hooks, sort})
```
The `get` function return hooks. It expects a property `option` which is a literal object with the properties:
* `name` (string)
Name of the hook.
* `hooks` ([hook])
List of completary hooks from the end user.
* `sort` (boolean)
Sort the hooks relatively to each other using the `after` and `before` properties.
### Register function
The function signature is:
```
register(plugin)
```
Plugin can be provided when instantiating Plug-And-Play by passing the `plugins` property or they can be provided later on by calling the `register` function. The function only accept one argument, the `plugin` property:
* `plugin` (plugin)
A plugin object.
## Roadmap
Worth considering: move the `name` property of `get` and `call` into the first argument and move the other properties into a second argument named option.

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc