log-tags
Version:
Color tags for devtools console.log
29 lines (28 loc) • 782 B
JavaScript
import { isLogTag, isStyledText } from "./utils";
export function mergeTagsInArgs(loggerOrArgs) {
if (typeof loggerOrArgs === "function") {
return function (...args) {
loggerOrArgs.apply(this, mergeTagsInArgs(args));
};
}
const args = loggerOrArgs;
let tagStr = "";
const tagStyles = [];
const logArgs = [];
for (let i = 0; i < args.length; i++) {
const arg = args[i];
if (isStyledText(arg)) {
tagStr += arg;
tagStyles.push(args[i + 1]);
i++;
}
else if (isLogTag(arg)) {
tagStr += arg[0];
tagStyles.push(arg[1]);
}
else {
logArgs.push(arg);
}
}
return [tagStr, ...tagStyles, ...logArgs];
}