oberknecht-utils
Version:
Utils for oberknecht packages
58 lines (52 loc) • 1.39 kB
text/typescript
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(" "),
];
}
}
}