vite-uni-dev-tool
Version:
vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试
274 lines (273 loc) • 6.04 kB
JavaScript
import "../utils/index.js";
import { transformValueToView as d, transformValueToShortString as D, isArray as v } from "../utils/language.js";
import { getCurrentPagePath as m } from "../utils/page.js";
import { getCurrentDate as h } from "../utils/date.js";
import { parseValue as M } from "../utils/object.js";
class k {
constructor(t) {
this.timeMap = /* @__PURE__ */ new Map(), this.countMap = /* @__PURE__ */ new Map(), this.event = t;
}
/**
* 包装之后的 console 方法
*
* @param {DevTool.ConsoleType} type
* @param {any[]} args
* @memberof DevConsole
*/
factory(t, o) {
var c, a, l;
if (console[t](...o), this.event.getDevToolDestroy())
return;
const i = m(), e = h(), s = (a = (c = new Error()) == null ? void 0 : c.stack) == null ? void 0 : a.split(`
`), r = (l = s == null ? void 0 : s.slice(3)) == null ? void 0 : l[0];
let p = o == null ? void 0 : o.map((y) => {
const u = d(y), g = M(y), f = u === "object" || u === "array" ? D(g, u) : "";
return {
type: u,
value: g,
shortValue: f
};
});
v(o) && o.length > 0 && this.event.updateConsoleList([
{
type: t,
position: i,
time: e,
args: p,
stack: r
}
]);
}
/**
* DevTool 包装之后的 console.log 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
log(...t) {
this.factory("log", t);
}
/**
* DevTool 包装之后的 console.info 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
info(...t) {
this.factory("info", t);
}
/**
* DevTool 包装之后的 console.warn 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
warn(...t) {
this.factory("warn", t);
}
/**
* DevTool 包装之后的 console.error 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
error(...t) {
this.factory("error", t);
}
/**
* DevTool 包装之后的 console.time 方法
*
* @param {string} label
* @memberof DevConsole
*/
time(t) {
console.time(t), this.timeMap.set(t, Date.now());
}
/**
* DevTool 包装之后的 console.timeEnd 方法
*
* @param {string} label
* @memberof DevConsole
*/
timeEnd(t) {
var p, c, a;
if (this.factory("timeEnd", [t]), this.event.getDevToolDestroy())
return;
const n = m(), i = h(), e = (c = (p = new Error()) == null ? void 0 : p.stack) == null ? void 0 : c.split(`
`), s = (a = e == null ? void 0 : e.slice(3)) == null ? void 0 : a[0], r = this.timeMap.get(t);
if (r) {
const l = Date.now() - r;
this.event.updateConsoleList([
{
type: "log",
position: n,
time: i,
args: [
{
type: "string",
value: `${t ?? "[DevTool timeEnd error]"}: ${l}ms`
}
],
stack: s
}
]);
}
this.timeMap.delete(t);
}
/**
* DevTool 包装之后的 console.clear 方法
*
* @memberof DevConsole
*/
clear() {
this.factory("clear", []), this.event.updateConsoleList([]);
}
/**
* DevTool 包装之后的 console.count 方法
*
* @param {string} [label='']
* @memberof DevConsole
*/
count(t = "") {
var e, s, r;
if (this.factory("count", [t]), this.event.getDevToolDestroy())
return;
this.countMap.set(t, (this.countMap.get(t) || 0) + 1);
const n = (s = (e = new Error()) == null ? void 0 : e.stack) == null ? void 0 : s.split(`
`), i = (r = n == null ? void 0 : n.slice(3)) == null ? void 0 : r[0];
this.event.updateConsoleList([
{
type: "log",
position: m(),
time: h(),
args: [
{
type: "string",
value: `${t}: ${this.countMap.get(t)}`
}
],
stack: i
}
]);
}
/**
* DevTool 包装之后的 console.countReset 方法
*
* @param {string} [label='']
* @memberof DevConsole
*/
countReset(t = "") {
this.countMap.delete(t);
}
/**
* 原始 console.assert 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
assert(...t) {
console.assert(...t);
}
/**
* 原始 console.debug 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
debug(...t) {
console.debug(...t);
}
/**
* 原始 console.dir 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
dir(...t) {
console.dir(...t);
}
/**
* 原始 console.dirxml 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
dirxml(...t) {
console.dirxml(...t);
}
/**
* 原始 console.group 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
group(...t) {
console.group(t);
}
/**
* 原始 console.groupCollapsed 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
groupCollapsed(...t) {
console.groupCollapsed(...t);
}
/**
* 原始 console.groupEnd 方法
*
* @memberof DevConsole
*/
groupEnd() {
console.groupEnd();
}
/**
* 原始 console.table 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
table(...t) {
console.table(...t);
}
/**
* 原始 console.timeStamp 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
timeStamp(...t) {
console.timeStamp(...t);
}
/**
* 原始 console.profile 方法
*
* @param {...any[]} args
* @memberof DevConsole
*/
trace(...t) {
var o;
(o = console == null ? void 0 : console.trace) == null || o.call(console, ...t);
}
/**
* 原始 console.profile 方法
*
* @param {string} label
* @memberof DevConsole
*/
// profile(label?: string) {
// console?.profile?.(label);
// }
/**
* 原始 console.profileEnd 方法
*
* @param {string} [label]
* @memberof DevConsole
*/
// profileEnd(label?: string) {
// console?.profileEnd?.(label);
// }
}
export {
k as DevConsole
};