UNPKG

@hoangnam.io/qa-tools

Version:

Logging, Error handling, Notifying for Express codebase

37 lines (33 loc) 1.09 kB
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 };