refactor(biome): formats from biome

This commit is contained in:
2025-10-15 14:28:22 -05:00
parent 94e1198f63
commit 27fa45614e
4 changed files with 131 additions and 132 deletions

View File

@@ -1,42 +1,42 @@
import {
text,
pgTable,
timestamp,
uuid,
uniqueIndex,
jsonb,
boolean,
boolean,
jsonb,
pgTable,
text,
timestamp,
uniqueIndex,
uuid,
} from "drizzle-orm/pg-core";
import { createInsertSchema, createSelectSchema } from "drizzle-zod";
import { z } from "zod";
export const settings = pgTable(
"settings",
{
settings_id: uuid("settings_id").defaultRandom().primaryKey(),
name: text("name").notNull(),
value: text("value").notNull(), // this is used in junction with active, only needed if the setting isnt a bool
description: text("description"),
moduleName: text("moduleName"), // what part of lst dose it belong to this is used to split the settings out later
active: boolean("active").default(true),
roles: jsonb("roles").notNull().default(["systemAdmin"]), // role or roles to see this goes along with the moduleName, need to have a x role in module to see this setting.
add_User: text("add_User").default("LST_System").notNull(),
add_Date: timestamp("add_Date").defaultNow(),
upd_user: text("upd_User").default("LST_System").notNull(),
upd_date: timestamp("upd_date").defaultNow(),
},
(table) => [
// uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`),
uniqueIndex("name").on(table.name),
]
"settings",
{
settings_id: uuid("settings_id").defaultRandom().primaryKey(),
name: text("name").notNull(),
value: text("value").notNull(), // this is used in junction with active, only needed if the setting isnt a bool
description: text("description"),
moduleName: text("moduleName"), // what part of lst dose it belong to this is used to split the settings out later
active: boolean("active").default(true),
roles: jsonb("roles").notNull().default(["systemAdmin"]), // role or roles to see this goes along with the moduleName, need to have a x role in module to see this setting.
add_User: text("add_User").default("LST_System").notNull(),
add_Date: timestamp("add_Date").defaultNow(),
upd_user: text("upd_User").default("LST_System").notNull(),
upd_date: timestamp("upd_date").defaultNow(),
},
(table) => [
// uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`),
uniqueIndex("name").on(table.name),
],
);
export const settingSchema = createSelectSchema(settings);
export const newSettingSchema = createInsertSchema(settings, {
name: z.string().min(3, {
message: "The name of the setting must be longer than 3 letters",
}),
name: z.string().min(3, {
message: "The name of the setting must be longer than 3 letters",
}),
});
export type Setting = z.infer<typeof settingSchema>;

View File

@@ -1,42 +1,42 @@
import build from "pino-abstract-transport";
import { db } from "../db/db.js";
import { logs, type Log } from "../db/schema/logs.js";
import { type Log, logs } from "../db/schema/logs.js";
import { tryCatch } from "../utils/tryCatch.js";
const pinoLogLevels: any = {
10: "trace",
20: "debug",
30: "info",
40: "warn",
50: "error",
60: "fatal",
10: "trace",
20: "debug",
30: "info",
40: "warn",
50: "error",
60: "fatal",
};
// Create a custom transport function
export default async function (log: Log) {
//const {username, service, level, msg, ...extra} = log;
try {
return build(async function (source) {
for await (let obj of source) {
// convert to the name to make it more easy to find later :P
const levelName = pinoLogLevels[obj.level] || "unknown";
//const {username, service, level, msg, ...extra} = log;
try {
return build(async (source) => {
for await (const obj of source) {
// convert to the name to make it more easy to find later :P
const levelName = pinoLogLevels[obj.level] || "unknown";
const res = await tryCatch(
db.insert(logs).values({
level: levelName,
module: obj?.module?.toLowerCase(),
subModule: obj?.subModule?.toLowerCase(),
hostname: obj?.hostname?.toLowerCase(),
message: obj.msg,
stack: obj?.stack,
})
);
const res = await tryCatch(
db.insert(logs).values({
level: levelName,
module: obj?.module?.toLowerCase(),
subModule: obj?.subModule?.toLowerCase(),
hostname: obj?.hostname?.toLowerCase(),
message: obj.msg,
stack: obj?.stack,
}),
);
if (res.error) {
console.log(res.error);
}
}
});
} catch (err) {
console.error("Error inserting log into database:", err);
}
if (res.error) {
console.log(res.error);
}
}
});
} catch (err) {
console.error("Error inserting log into database:", err);
}
}

View File

@@ -1,48 +1,48 @@
import pino, { type Logger } from "pino";
export let logLevel = process.env.LOG_LEVEL || "info";
export const logLevel = process.env.LOG_LEVEL || "info";
const transport = pino.transport({
targets: [
{
target: "pino-pretty",
options: {
colorize: true,
singleLine: true,
// customPrettifiers: {
// time: (time) => `🕰 ${time}`,
// },
destination: process.stdout.fd,
},
},
{
target: "./dbTransport.js",
},
{
target: "./notification.js",
},
// Only log to Go if LST_USE_GO=true
...(process.env.LST_USE_GO === "true"
? [
{
target: "./goTransport.js", // New transport for Go
},
]
: []),
],
targets: [
{
target: "pino-pretty",
options: {
colorize: true,
singleLine: true,
// customPrettifiers: {
// time: (time) => `🕰 ${time}`,
// },
destination: process.stdout.fd,
},
},
{
target: "./dbTransport.js",
},
{
target: "./notification.js",
},
// Only log to Go if LST_USE_GO=true
...(process.env.LST_USE_GO === "true"
? [
{
target: "./goTransport.js", // New transport for Go
},
]
: []),
],
});
export const rootLogger: Logger = pino(
{
level: logLevel,
redact: { paths: ["email", "password"], remove: true },
},
transport
{
level: logLevel,
redact: { paths: ["email", "password"], remove: true },
},
transport,
);
/**
* factory to create child to log things for us
*/
export function createLogger(bindings: Record<string, unknown>): Logger {
return rootLogger.child(bindings);
return rootLogger.child(bindings);
}

View File

@@ -1,52 +1,51 @@
import build from "pino-abstract-transport";
import { type Log } from "../db/schema/logs.js";
import type { Log } from "../db/schema/logs.js";
import { validateEnv } from "../utils/envValidator.js";
import { sendNotify } from "../utils/notify.js";
const env = validateEnv(process.env);
const pinoLogLevels: any = {
10: "trace",
20: "debug",
30: "info",
40: "warn",
50: "error",
60: "fatal",
10: "trace",
20: "debug",
30: "info",
40: "warn",
50: "error",
60: "fatal",
};
// discord function
export default async function (log: Log) {
//const {username, service, level, msg, ...extra} = log;
try {
return build(async function (source) {
for await (let obj of source) {
// convert to the name to make it more easy to find later :P
const levelName = pinoLogLevels[obj.level] || "unknown";
//const {username, service, level, msg, ...extra} = log;
try {
return build(async (source) => {
for await (const obj of source) {
// convert to the name to make it more easy to find later :P
const levelName = pinoLogLevels[obj.level] || "unknown";
const newlog = {
level: levelName,
module: obj.module
? String(obj.module).toLowerCase()
: undefined,
subModule: obj.subModule
? String(obj.subModule).toLowerCase()
: undefined,
hostname: obj.hostname
? String(obj.hostname).toLowerCase()
: undefined,
message: obj.msg,
stack: obj.stack ? obj.stack : undefined,
};
if (!process.env.WEBHOOK_URL) {
console.log("WebHook is missing we wont move foward.");
return;
}
const newlog = {
level: levelName,
module: obj.module ? String(obj.module).toLowerCase() : undefined,
subModule: obj.subModule
? String(obj.subModule).toLowerCase()
: undefined,
hostname: obj.hostname
? String(obj.hostname).toLowerCase()
: undefined,
message: obj.msg,
stack: obj.stack ? obj.stack : undefined,
};
if (!process.env.WEBHOOK_URL) {
console.log("WebHook is missing we wont move foward.");
return;
}
if (obj.level >= 60 && obj.notify) {
sendNotify(newlog as Log);
}
}
});
} catch (err) {
console.error("Error inserting log into database:", err);
}
if (obj.level >= 60 && obj.notify) {
sendNotify(newlog as Log);
}
}
});
} catch (err) {
console.error("Error inserting log into database:", err);
}
}