{"version":3,"file":"index.mjs","sources":["../../src/index.js"],"sourcesContent":["class ConsoleListener {\n  // 是否为内部调用\n  #isInternalCall\n\n  constructor() {\n    this.consoleMethods = [\n      \"assert\",\n      \"clear\",\n      \"count\",\n      \"debug\",\n      \"dir\",\n      \"dirxml\",\n      \"error\",\n      \"exception\",\n      \"group\",\n      \"groupCollapsed\",\n      \"groupEnd\",\n      \"info\",\n      \"log\",\n      \"profile\",\n      \"profileEnd\",\n      \"table\",\n      \"time\",\n      \"timeEnd\",\n      \"timeStamp\",\n      \"trace\",\n      \"warn\",\n    ]\n\n    this.allHandlers = []\n    this.methodObj = {}\n    this.#isInternalCall = false\n\n    this.initializeMethods()\n  }\n\n  initializeMethods() {\n    for (const method of this.consoleMethods) {\n      this.methodObj[method] = { handlers: [] }\n      this.overrideMethod(method)\n    }\n  }\n\n  overrideMethod(methodName) {\n    if (!console[methodName]) return\n    const originalMethod = console[methodName]\n\n    console[methodName] = (...args) => {\n      if (this.#isInternalCall) {\n        // 如果是内部调用，直接执行原始方法，防止递归\n        originalMethod(...args)\n        return\n      }\n\n      // 否则，正常触发监听器\n      this.#isInternalCall = true\n\n      for (const handler of this.methodObj[methodName].handlers) {\n        handler(...args)\n      }\n\n      for (const handler of this.allHandlers) {\n        handler(methodName, ...args)\n      }\n\n      this.#isInternalCall = false\n\n      originalMethod(...args)\n    }\n  }\n\n  on(methodName, callback) {\n    if (typeof methodName === \"function\") {\n      this.allHandlers.push(methodName)\n    } else if (typeof methodName === \"string\" && methodName in this.methodObj) {\n      this.methodObj[methodName].handlers.push(callback)\n    } else if (typeof methodName === \"object\") {\n      for (const key in methodName) {\n        if (key === \"all\") {\n          this.allHandlers.push(methodName[key])\n        } else if (key in this.methodObj) {\n          this.methodObj[key].handlers.push(methodName[key])\n        }\n      }\n    }\n  }\n}\n\nexport default ConsoleListener\n"],"names":["ConsoleListener","constructor","consoleMethods","allHandlers","methodObj","initializeMethods","method","handlers","overrideMethod","methodName","console","originalMethod","args","handler","on","callback","push","key"],"mappings":"AAAA,MAAMA,eAAe,CAAC;AACpB;AACA,EAAA,eAAe;AAEfC,EAAAA,WAAWA,GAAG;IACZ,IAAI,CAACC,cAAc,GAAG,CACpB,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,KAAK,EACL,SAAS,EACT,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,WAAW,EACX,OAAO,EACP,MAAM,CACP;IAED,IAAI,CAACC,WAAW,GAAG,EAAE;AACrB,IAAA,IAAI,CAACC,SAAS,GAAG,EAAE;AACnB,IAAA,IAAI,CAAC,eAAe,GAAG,KAAK;IAE5B,IAAI,CAACC,iBAAiB,EAAE;AAC1B;AAEAA,EAAAA,iBAAiBA,GAAG;AAClB,IAAA,KAAK,MAAMC,MAAM,IAAI,IAAI,CAACJ,cAAc,EAAE;AACxC,MAAA,IAAI,CAACE,SAAS,CAACE,MAAM,CAAC,GAAG;AAAEC,QAAAA,QAAQ,EAAE;OAAI;AACzC,MAAA,IAAI,CAACC,cAAc,CAACF,MAAM,CAAC;AAC7B;AACF;EAEAE,cAAcA,CAACC,UAAU,EAAE;AACzB,IAAA,IAAI,CAACC,OAAO,CAACD,UAAU,CAAC,EAAE;AAC1B,IAAA,MAAME,cAAc,GAAGD,OAAO,CAACD,UAAU,CAAC;AAE1CC,IAAAA,OAAO,CAACD,UAAU,CAAC,GAAG,CAAC,GAAGG,IAAI,KAAK;AACjC,MAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB;QACAD,cAAc,CAAC,GAAGC,IAAI,CAAC;AACvB,QAAA;AACF;;AAEA;AACA,MAAA,IAAI,CAAC,eAAe,GAAG,IAAI;MAE3B,KAAK,MAAMC,OAAO,IAAI,IAAI,CAACT,SAAS,CAACK,UAAU,CAAC,CAACF,QAAQ,EAAE;QACzDM,OAAO,CAAC,GAAGD,IAAI,CAAC;AAClB;AAEA,MAAA,KAAK,MAAMC,OAAO,IAAI,IAAI,CAACV,WAAW,EAAE;AACtCU,QAAAA,OAAO,CAACJ,UAAU,EAAE,GAAGG,IAAI,CAAC;AAC9B;AAEA,MAAA,IAAI,CAAC,eAAe,GAAG,KAAK;MAE5BD,cAAc,CAAC,GAAGC,IAAI,CAAC;KACxB;AACH;AAEAE,EAAAA,EAAEA,CAACL,UAAU,EAAEM,QAAQ,EAAE;AACvB,IAAA,IAAI,OAAON,UAAU,KAAK,UAAU,EAAE;AACpC,MAAA,IAAI,CAACN,WAAW,CAACa,IAAI,CAACP,UAAU,CAAC;AACnC,KAAC,MAAM,IAAI,OAAOA,UAAU,KAAK,QAAQ,IAAIA,UAAU,IAAI,IAAI,CAACL,SAAS,EAAE;MACzE,IAAI,CAACA,SAAS,CAACK,UAAU,CAAC,CAACF,QAAQ,CAACS,IAAI,CAACD,QAAQ,CAAC;AACpD,KAAC,MAAM,IAAI,OAAON,UAAU,KAAK,QAAQ,EAAE;AACzC,MAAA,KAAK,MAAMQ,GAAG,IAAIR,UAAU,EAAE;QAC5B,IAAIQ,GAAG,KAAK,KAAK,EAAE;UACjB,IAAI,CAACd,WAAW,CAACa,IAAI,CAACP,UAAU,CAACQ,GAAG,CAAC,CAAC;AACxC,SAAC,MAAM,IAAIA,GAAG,IAAI,IAAI,CAACb,SAAS,EAAE;AAChC,UAAA,IAAI,CAACA,SAAS,CAACa,GAAG,CAAC,CAACV,QAAQ,CAACS,IAAI,CAACP,UAAU,CAACQ,GAAG,CAAC,CAAC;AACpD;AACF;AACF;AACF;AACF;;;;"}