UNPKG

oberknecht-utils

Version:
58 lines (52 loc) 1.39 kB
import { extendedTypeof, staticSpacer } from "."; export type stackNameReturnType = [string, string[], string[], string]; export function stackName(...args: any[]): stackNameReturnType { let opt = args[0]; let staticSpacerWidth = extendedTypeof(args[1]) === "number" ? args[1] : 2; // let args = [...arguments]; if ((opt ?? undefined) && !isNaN(opt)) args.shift(); if (staticSpacerWidth === [...arguments][1]) args.shift(); let stackret = args.map((a) => { if (typeof a === "string") { return `[${a.toUpperCase()}]`; } else { return `nameerr`; } }); let stackcolor = stackret.some((s2) => { return s2 == "[ERROR]"; }) ? "\x1b[4;31m" : "\x1b[4;1;36m"; switch (opt) { default: { return [ stackret.join(" "), stackret, stackret.map((s) => { return staticSpacer(staticSpacerWidth, s, stackcolor); }), stackret .map((s) => { return staticSpacer(staticSpacerWidth, s, stackcolor); }) .join(" "), ]; } case 1: { return [ stackret.join(" "), stackret, stackret.map((s) => { return staticSpacer(staticSpacerWidth, s); }), stackret .map((s) => { return staticSpacer(staticSpacerWidth, s); }) .join(" "), ]; } } }