frontend/.pnpm-store/v3/files/81/ff010202cb76fb7b1f9d64b55905508c20c0fe86d60d55b606105253fb6017439a42044e4335f87d6849b2d7084e19535cffb1ceddf572bb36c0b2bd260428

28 lines
678 B
Plaintext

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)();
});
}