@hoangnam.io/qa-tools
Version:
Logging, Error handling, Notifying for Express codebase
37 lines (33 loc) • 1.09 kB
JavaScript
const { default: z } = require("zod");
const getLoggerOptionsSchema = z.object({
consoleConfig: z
.object({
mode: z.enum(["dev", "prod"]).default("prod"),
})
.optional(),
mongoConfig: z
.object({
connectionString: z.string(),
collectionName: z.string().default("request_logs"),
})
.optional(),
gcConfig: z
.object({
projectId: z.string(),
keyFilename: z.string(),
logName: z.string().default("request_logs"),
})
.optional(),
});
const createLogMiddlewareSchema = z.object({
extractCallerFunc: z.any(),
loggerOptions: getLoggerOptionsSchema,
appName: z.string().default("AppNameUndefined"),
sensitiveRoutes: z.string().array().default(["login", "sign-up", "account", "auth", "token"]),
ignoreRoutes: z
.object({ method: z.enum(["GET", "POST", "PUT", "DELETE"]), route: z.string() })
.array()
.default([{ method: "GET", route: `/Some/route/that-we-don't-care` }]),
TZ: z.string().default("Asia/Ho_Chi_Minh"),
});
module.exports = { getLoggerOptionsSchema, createLogMiddlewareSchema };