40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
function beforeRequest(manager) {
|
|
this.beforeManagers.push(manager);
|
|
}
|
|
exports.beforeRequest = beforeRequest;
|
|
function afterRequest(manager) {
|
|
this.afterManagers.push(manager);
|
|
}
|
|
exports.afterRequest = afterRequest;
|
|
function invokeBARequest(collection, base, callback) {
|
|
function callCallback() {
|
|
if (callback)
|
|
process.nextTick(callback);
|
|
}
|
|
if (collection.length === 0) {
|
|
callCallback();
|
|
return;
|
|
}
|
|
base.callback = next;
|
|
var nb = collection.length + 1;
|
|
function next() {
|
|
--nb;
|
|
if (nb === 0) {
|
|
callCallback();
|
|
}
|
|
else
|
|
process.nextTick(function () { return collection[collection.length - nb](base, next); });
|
|
}
|
|
next();
|
|
}
|
|
function invokeBeforeRequest(base, callback) {
|
|
invokeBARequest(this.beforeManagers, base, callback);
|
|
}
|
|
exports.invokeBeforeRequest = invokeBeforeRequest;
|
|
function invokeAfterRequest(base, callback) {
|
|
invokeBARequest(this.afterManagers, base, callback);
|
|
}
|
|
exports.invokeAfterRequest = invokeAfterRequest;
|