Move packages/apps back
This commit is contained in:
parent
6eaaf8e9be
commit
5535d6b575
348 changed files with 0 additions and 0 deletions
37
packages/metamigo-common/plugins/request-id.ts
Normal file
37
packages/metamigo-common/plugins/request-id.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
import { Server } from "@hapi/hapi";
|
||||
import { v4 as uuid } from "uuid";
|
||||
|
||||
interface RequestIdOptions {
|
||||
header?: string;
|
||||
}
|
||||
|
||||
const register = async (
|
||||
server: Server,
|
||||
options?: RequestIdOptions
|
||||
): Promise<void> => {
|
||||
const header = options?.header || "x-request-id";
|
||||
server.ext("onPreResponse", async (request, h) => {
|
||||
if (!request.response) {
|
||||
return h.continue;
|
||||
}
|
||||
|
||||
if ("isBoom" in request.response) {
|
||||
const id = request.response.output.headers[header] || uuid();
|
||||
request.response.output.headers[header] = id;
|
||||
} else {
|
||||
const id = request.headers[header] || uuid();
|
||||
// @ts-ignore
|
||||
request.response.header(header, id);
|
||||
}
|
||||
|
||||
return h.continue;
|
||||
});
|
||||
};
|
||||
|
||||
const RequestIdPlugin = {
|
||||
register,
|
||||
name: "request-id",
|
||||
version: "0.0.1",
|
||||
};
|
||||
|
||||
export default RequestIdPlugin;
|
||||
Loading…
Add table
Add a link
Reference in a new issue