@aikidosec/firewall
Version:
Zen by Aikido is an embedded Web Application Firewall that autonomously protects Node.js apps against common and critical attacks
46 lines (45 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Restify = void 0;
const wrapRequestHandler_1 = require("./restify/wrapRequestHandler");
const wrapExport_1 = require("../agent/hooks/wrapExport");
class Restify {
wrapArgs(args) {
return args.map((arg) => {
// Ignore non-function arguments
if (typeof arg !== "function") {
return arg;
}
return (0, wrapRequestHandler_1.wrapRequestHandler)(arg);
});
}
wrap(hooks) {
hooks
.addPackage("restify")
.withVersion("^8.0.0")
.onFileRequire("lib/server.js", (exports, pkgInfo) => {
// See https://restify.com/docs/server-api/
// We don't need to wrap `server.param(...)` because it uses `server.use(...)` internally
// We don't wrap `server.pre(...)` because it's used to modify the request before it reaches the handlers
for (const method of [
"get",
"head",
"post",
"put",
"patch",
"del",
"opts",
]) {
(0, wrapExport_1.wrapExport)(exports.prototype, method, pkgInfo, {
kind: undefined,
modifyArgs: (args) => this.wrapArgs(args),
});
}
(0, wrapExport_1.wrapExport)(exports.prototype, "use", pkgInfo, {
kind: undefined,
modifyArgs: (args) => this.wrapArgs(args),
});
});
}
}
exports.Restify = Restify;