zs-core-db
Version:
Servicios generales de acceso a bases de datos
57 lines (46 loc) • 1.21 kB
JavaScript
//@ts-check
const separator = require("path").sep;
const caller = () => {
const stack = new Error().stack?.split("\n")[3]?.trim();
const script = stack?.split(separator).reverse()[0].split(":")[0];
const caller = stack?.split("at ")[1].split(" ")[0];
return `${caller} at ${script}:`;
};
const parsedMessage = (...msg) => {
const messages = msg.join(" ");
return messages.startsWith("Error: ") ? messages.substring(7) : messages;
};
/**
* @param {...any} msg
*/
const log = (...msg) => console.log(new Date(), caller(), ...msg);
/**
* @param {...any} msg
*/
const info = (...msg) => console.info(new Date(), ...msg);
/**
* @param {...any} msg
*/
const warn = (...msg) => console.warn(new Date(), "WARNING:", caller(), ...msg);
/**
* @param {...any} msg
*/
const error = (...msg) =>
console.error(new Date(), "ERROR:", caller(), parsedMessage(...msg));
/**
* @param {...any} msg
*/
const raise = (...msg) => {
const err = new Error(msg.join(" "));
Error.captureStackTrace(err, this.raise);
const stack = err.stack?.split("\n");
stack?.splice(1, 1);
throw err && parsedMessage(stack?.join("\n"));
};
module.exports = {
log,
info,
warn,
error,
raise,
};