@steve02081504/virtual-console 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/browser.d.mts CHANGED
@@ -1,4 +1,3 @@
1
- import type { AsyncLocalStorage } from 'node:async_hooks'
2
1
  import type { Console } from 'node:console'
3
2
  import type { Writable } from 'node:stream'
4
3
 
@@ -13,7 +12,7 @@ export interface VirtualConsoleOptions {
13
12
  /** 专门处理单个 Error 对象的错误处理器 */
14
13
  error_handler?: ((error: Error) => void) | null
15
14
  /** 用于 realConsoleOutput 的底层控制台实例 */
16
- base_console?: Console
15
+ base_console?: VirtualConsole | Console
17
16
  }
18
17
 
19
18
  /**
@@ -21,7 +20,7 @@ export interface VirtualConsoleOptions {
21
20
  */
22
21
  export interface ConsoleReflect {
23
22
  /** 从默认控制台获取当前控制台对象 */
24
- Reflect: () => Console
23
+ Reflect: () => VirtualConsole
25
24
  /** 设置当前控制台对象的函数 */
26
25
  ReflectSet: (value: VirtualConsole) => void
27
26
  /** 在新的异步上下文中执行函数的函数 */
@@ -56,10 +55,10 @@ export class VirtualConsole extends Console {
56
55
  outputsHtml: string
57
56
  /** 最终合并后的配置项 */
58
57
  options: Required<Omit<VirtualConsoleOptions, 'base_console'>> & {
59
- base_console?: Console
58
+ base_console?: VirtualConsole | Console
60
59
  }
61
60
  /** 用于 realConsoleOutput 的底层控制台实例 */
62
- base_console: Console
61
+ base_console: VirtualConsole | Console
63
62
 
64
63
  constructor(options?: VirtualConsoleOptions)
65
64
 
@@ -98,7 +97,7 @@ export const globalConsoleAdditionalProperties: Record<string, unknown>
98
97
  * @param ReflectRun 在新的异步上下文中执行函数的函数
99
98
  */
100
99
  export function setGlobalConsoleReflect(
101
- Reflect: (defaultConsole: VirtualConsole) => Console,
100
+ Reflect: (defaultConsole: VirtualConsole) => VirtualConsole,
102
101
  ReflectSet: (value: VirtualConsole) => void,
103
102
  ReflectRun: <T>(value: VirtualConsole, fn: () => T | Promise<T>) => Promise<T>
104
103
  ): void
@@ -107,4 +106,9 @@ export function setGlobalConsoleReflect(
107
106
  export function getGlobalConsoleReflect(): ConsoleReflect
108
107
 
109
108
  /** 全局控制台实例(代理对象,委托给当前活动的虚拟控制台) */
110
- export const console: Console
109
+ export const console: VirtualConsole
110
+
111
+ declare global {
112
+ /** 全局控制台实例 */
113
+ var console: VirtualConsole
114
+ }
package/browser.mjs CHANGED
@@ -282,11 +282,18 @@ export function getGlobalConsoleReflect() {
282
282
  }
283
283
  }
284
284
 
285
+ /**
286
+ * 代理对象的基础对象,避免重复的内存分配。
287
+ * @type {object}
288
+ */
289
+ const proxyBase = {
290
+ ...originalConsole,
291
+ }
285
292
  /**
286
293
  * 导出一个代理对象作为全局 console,它将所有操作委托给当前的活动控制台。
287
294
  * 这与原始 Node.js 版本的实现完全相同。
288
295
  */
289
- export const console = globalThis.console = new FullProxy(() => Object.assign({}, globalConsoleAdditionalProperties, consoleReflect()), {
296
+ export const console = globalThis.console = new FullProxy(() => Object.assign(proxyBase, globalConsoleAdditionalProperties, consoleReflect()), {
290
297
  /**
291
298
  * 设置属性时的处理逻辑。
292
299
  * @param {object} target - 目标对象。
package/main.d.mts CHANGED
@@ -15,7 +15,7 @@ export interface VirtualConsoleOptions {
15
15
  /** 专门处理单个 Error 对象的错误处理器 */
16
16
  error_handler?: ((error: Error) => void) | null
17
17
  /** 用于 realConsoleOutput 的底层控制台实例 */
18
- base_console?: Console
18
+ base_console?: VirtualConsole | Console
19
19
  }
20
20
 
21
21
  /**
@@ -23,7 +23,7 @@ export interface VirtualConsoleOptions {
23
23
  */
24
24
  export interface ConsoleReflect {
25
25
  /** 从默认控制台获取当前控制台对象 */
26
- Reflect: () => Console
26
+ Reflect: () => VirtualConsole
27
27
  /** 设置当前控制台对象的函数 */
28
28
  ReflectSet: (value: VirtualConsole) => void
29
29
  /** 在新的异步上下文中执行函数的函数 */
@@ -58,10 +58,10 @@ export class VirtualConsole extends Console {
58
58
  outputsHtml: string
59
59
  /** 最终合并后的配置项 */
60
60
  options: Required<Omit<VirtualConsoleOptions, 'base_console'>> & {
61
- base_console?: Console
61
+ base_console?: VirtualConsole | Console
62
62
  }
63
63
  /** 用于 realConsoleOutput 的底层控制台实例 */
64
- base_console: Console
64
+ base_console: VirtualConsole | Console
65
65
 
66
66
  constructor(options?: VirtualConsoleOptions)
67
67
 
@@ -101,7 +101,7 @@ export const globalConsoleAdditionalProperties: Record<string, unknown>
101
101
  * @param ReflectRun 在新的异步上下文中执行函数的函数
102
102
  */
103
103
  export function setGlobalConsoleReflect(
104
- Reflect: (defaultConsole: VirtualConsole) => Console,
104
+ Reflect: (defaultConsole: VirtualConsole) => VirtualConsole,
105
105
  ReflectSet: (value: VirtualConsole) => void,
106
106
  ReflectRun: <T>(value: VirtualConsole, fn: () => T | Promise<T>) => Promise<T>
107
107
  ): void
@@ -109,5 +109,10 @@ export function setGlobalConsoleReflect(
109
109
  /** 获取全局控制台反射逻辑 */
110
110
  export function getGlobalConsoleReflect(): ConsoleReflect
111
111
 
112
- /** 全局控制台实例(代理对象,委托给当前活动的虚拟控制台) */
113
- export const console: Console
112
+ /** 全局控制台实例 */
113
+ export const console: VirtualConsole
114
+
115
+ declare global {
116
+ /** 全局控制台实例 */
117
+ var console: VirtualConsole
118
+ }
package/node.d.mts CHANGED
@@ -15,7 +15,7 @@ export interface VirtualConsoleOptions {
15
15
  /** 专门处理单个 Error 对象的错误处理器 */
16
16
  error_handler?: ((error: Error) => void) | null
17
17
  /** 用于 realConsoleOutput 的底层控制台实例 */
18
- base_console?: Console
18
+ base_console?: VirtualConsole | Console
19
19
  }
20
20
 
21
21
  /**
@@ -23,7 +23,7 @@ export interface VirtualConsoleOptions {
23
23
  */
24
24
  export interface ConsoleReflect {
25
25
  /** 从默认控制台获取当前控制台对象 */
26
- Reflect: () => Console
26
+ Reflect: () => VirtualConsole
27
27
  /** 设置当前控制台对象的函数 */
28
28
  ReflectSet: (value: VirtualConsole) => void
29
29
  /** 在新的异步上下文中执行函数的函数 */
@@ -58,10 +58,10 @@ export class VirtualConsole extends Console {
58
58
  outputsHtml: string
59
59
  /** 最终合并后的配置项 */
60
60
  options: Required<Omit<VirtualConsoleOptions, 'base_console'>> & {
61
- base_console?: Console
61
+ base_console?: VirtualConsole | Console
62
62
  }
63
63
  /** 用于 realConsoleOutput 的底层控制台实例 */
64
- base_console: Console
64
+ base_console: VirtualConsole | Console
65
65
 
66
66
  constructor(options?: VirtualConsoleOptions)
67
67
 
@@ -101,7 +101,7 @@ export const globalConsoleAdditionalProperties: Record<string, unknown>
101
101
  * @param ReflectRun 在新的异步上下文中执行函数的函数
102
102
  */
103
103
  export function setGlobalConsoleReflect(
104
- Reflect: (defaultConsole: VirtualConsole) => Console,
104
+ Reflect: (defaultConsole: VirtualConsole) => VirtualConsole,
105
105
  ReflectSet: (value: VirtualConsole) => void,
106
106
  ReflectRun: <T>(value: VirtualConsole, fn: () => T | Promise<T>) => Promise<T>
107
107
  ): void
@@ -110,4 +110,9 @@ export function setGlobalConsoleReflect(
110
110
  export function getGlobalConsoleReflect(): ConsoleReflect
111
111
 
112
112
  /** 全局控制台实例(代理对象,委托给当前活动的虚拟控制台) */
113
- export const console: Console
113
+ export const console: VirtualConsole
114
+
115
+ declare global {
116
+ /** 全局控制台实例 */
117
+ var console: VirtualConsole
118
+ }
package/node.mjs CHANGED
@@ -402,10 +402,18 @@ export function getGlobalConsoleReflect() {
402
402
  ReflectRun: consoleReflectRun
403
403
  }
404
404
  }
405
+
406
+ /**
407
+ * 代理对象的基础对象,避免重复的内存分配。
408
+ * @type {object}
409
+ */
410
+ const proxyBase = {
411
+ ...originalConsole,
412
+ }
405
413
  /**
406
414
  * 全局控制台实例。
407
415
  */
408
- export const console = globalThis.console = new FullProxy(() => Object.assign({}, globalConsoleAdditionalProperties, consoleReflect()), {
416
+ export const console = globalThis.console = new FullProxy(() => Object.assign(proxyBase, globalConsoleAdditionalProperties, consoleReflect()), {
409
417
  /**
410
418
  * 设置属性时的处理逻辑。
411
419
  * @param {object} target - 目标对象。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steve02081504/virtual-console",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "A virtual console for capturing and manipulating terminal output.",
5
5
  "main": "main.mjs",
6
6
  "type": "module",