| 12345678910111213141516171819202122232425262728 |
- module.exports = register
- function register (state, name, method, options) {
- if (typeof method !== 'function') {
- throw new Error('method for before hook must be a function')
- }
- if (!options) {
- options = {}
- }
- if (Array.isArray(name)) {
- return name.reverse().reduce(function (callback, name) {
- return register.bind(null, state, name, callback, options)
- }, method)()
- }
- return Promise.resolve()
- .then(function () {
- if (!state.registry[name]) {
- return method(options)
- }
- return (state.registry[name]).reduce(function (method, registered) {
- return registered.hook.bind(null, method, options)
- }, method)()
- })
- }
|