mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-26 13:01:43 -04:00
23 lines
513 B
JavaScript
23 lines
513 B
JavaScript
module.exports = Hook
|
|
|
|
var register = require('./lib/register')
|
|
var addHook = require('./lib/add')
|
|
var removeHook = require('./lib/remove')
|
|
|
|
function Hook () {
|
|
var state = {
|
|
registry: {}
|
|
}
|
|
|
|
var hook = register.bind(null, state)
|
|
hook.remove = {}
|
|
hook.api = {remove: {}}
|
|
|
|
;['before', 'error', 'after'].forEach(function (kind) {
|
|
hook[kind] = hook.api[kind] = addHook.bind(null, state, kind)
|
|
hook.remove[kind] = hook.api.remove[kind] = removeHook.bind(null, state, kind)
|
|
})
|
|
|
|
return hook
|
|
}
|