dtp-tripwire-agent
Version:
A service for protecting your node against malicious attacks and scans.
61 lines (49 loc) • 1.43 kB
text/typescript
// src/harness.ts
// Copyright (C) 2025 DTP Technologies, LLC
// All Rights Reserved
// import env from "./config/env.js";
import log from "./lib/log.js";
import express, { NextFunction, Request, Response } from "express";
import Tripwire from "./service.js";
async function defaultErrorHandler(
err: Error,
req: Request,
res: Response,
next: NextFunction
) {
await Tripwire.processError(err, req, res);
log.error("ExpressJS error", { error: err });
res.locals.errorCode = err.statusCode || 500;
res.locals.error = err;
res.status(res.locals.errorCode).json({
success: false,
message: err.message,
});
return next();
}
(async () => {
try {
await Tripwire.start();
const app = express();
app.use(Tripwire.middleware());
app.get("/", (_req: Request, res: Response) => {
res.send("Hello World!");
});
app.use((_req: Request, _res: Response, next: NextFunction) => {
const error = new Error("Not Found");
error.statusCode = 404;
next(error);
});
app.use(defaultErrorHandler);
app.listen(3000, "127.0.0.1", 32, (error?: Error) => {
if (error) {
log.error("Tripwire harness has failed to start", { error });
process.exit(1);
}
log.info("Tripwire harness is listening on port 3000");
});
} catch (error) {
log.error("Tripwire harness has failed", { error });
process.exit(1);
}
})();