traceperf 0.1.0 → 0.1.1
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/README.md +31 -0
- package/dist/browser.d.ts +9 -3
- package/dist/browser.js +28 -8
- package/dist/browser.js.map +1 -1
- package/dist/esm/browser.d.ts +73 -0
- package/dist/esm/browser.js +275 -0
- package/dist/esm/browser.js.map +1 -0
- package/dist/esm/core/config.d.ts +77 -0
- package/dist/esm/core/config.js +112 -0
- package/dist/esm/core/config.js.map +1 -0
- package/dist/esm/core/constants.d.ts +78 -0
- package/dist/esm/core/constants.js +106 -0
- package/dist/esm/core/constants.js.map +1 -0
- package/dist/esm/core/index.d.ts +3 -0
- package/dist/esm/core/index.js +4 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/logger.d.ts +84 -0
- package/dist/esm/core/logger.js +170 -0
- package/dist/esm/core/logger.js.map +1 -0
- package/dist/esm/formatters/ascii.d.ts +52 -0
- package/dist/esm/formatters/ascii.js +100 -0
- package/dist/esm/formatters/ascii.js.map +1 -0
- package/dist/esm/formatters/cli.d.ts +50 -0
- package/dist/esm/formatters/cli.js +96 -0
- package/dist/esm/formatters/cli.js.map +1 -0
- package/dist/esm/formatters/index.d.ts +3 -0
- package/dist/esm/formatters/index.js +4 -0
- package/dist/esm/formatters/index.js.map +1 -0
- package/dist/esm/formatters/json.d.ts +45 -0
- package/dist/esm/formatters/json.js +85 -0
- package/dist/esm/formatters/json.js.map +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.js +29 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/trackers/execution.d.ts +72 -0
- package/dist/esm/trackers/execution.js +143 -0
- package/dist/esm/trackers/execution.js.map +1 -0
- package/dist/esm/trackers/index.d.ts +2 -0
- package/dist/esm/trackers/index.js +3 -0
- package/dist/esm/trackers/index.js.map +1 -0
- package/dist/esm/trackers/performance.d.ts +82 -0
- package/dist/esm/trackers/performance.js +106 -0
- package/dist/esm/trackers/performance.js.map +1 -0
- package/dist/esm/types/config.d.ts +110 -0
- package/dist/esm/types/config.js +2 -0
- package/dist/esm/types/config.js.map +1 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/logger.d.ts +127 -0
- package/dist/esm/types/logger.js +2 -0
- package/dist/esm/types/logger.js.map +1 -0
- package/dist/esm/utils/colors.d.ts +87 -0
- package/dist/esm/utils/colors.js +134 -0
- package/dist/esm/utils/colors.js.map +1 -0
- package/dist/esm/utils/index.d.ts +3 -0
- package/dist/esm/utils/index.js +4 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/stack.d.ts +63 -0
- package/dist/esm/utils/stack.js +110 -0
- package/dist/esm/utils/stack.js.map +1 -0
- package/dist/esm/utils/timing.d.ts +65 -0
- package/dist/esm/utils/timing.js +99 -0
- package/dist/esm/utils/timing.js.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/types/config.js +2 -1
- package/dist/types/index.js +18 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/logger.js +2 -1
- package/package.json +16 -2
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ Advanced console logging & performance tracking for Node.js applications.
|
|
|
13
13
|
- **Conditional Logging Modes**: Different logging levels for development, staging, and production.
|
|
14
14
|
- **Nested Logging**: Group related logs with indentation for better readability.
|
|
15
15
|
- **Auto-Remove Debug Logs**: Automatically filter out debug logs in production.
|
|
16
|
+
- **Universal Module Compatibility**: Works with both CommonJS and ESM environments.
|
|
16
17
|
|
|
17
18
|
## Installation
|
|
18
19
|
|
|
@@ -22,6 +23,8 @@ npm install traceperf
|
|
|
22
23
|
|
|
23
24
|
## Basic Usage
|
|
24
25
|
|
|
26
|
+
### CommonJS (Node.js)
|
|
27
|
+
|
|
25
28
|
```javascript
|
|
26
29
|
const tracePerf = require('traceperf');
|
|
27
30
|
|
|
@@ -41,6 +44,15 @@ tracePerf.warn('Invalid password attempt');
|
|
|
41
44
|
tracePerf.groupEnd();
|
|
42
45
|
```
|
|
43
46
|
|
|
47
|
+
### ESM (ECMAScript Modules)
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
import tracePerf from 'traceperf';
|
|
51
|
+
|
|
52
|
+
// Use the same API as with CommonJS
|
|
53
|
+
tracePerf.info('This is an info message');
|
|
54
|
+
```
|
|
55
|
+
|
|
44
56
|
## Execution Flow Tracking
|
|
45
57
|
|
|
46
58
|
```javascript
|
|
@@ -108,12 +120,31 @@ tracePerf.error('Error message'); // Shown
|
|
|
108
120
|
|
|
109
121
|
TracePerf also provides a browser-compatible version for use in frontend applications:
|
|
110
122
|
|
|
123
|
+
### ESM (Modern Browsers)
|
|
124
|
+
|
|
111
125
|
```javascript
|
|
112
126
|
// Import the browser version
|
|
113
127
|
import tracePerf from 'traceperf/browser';
|
|
114
128
|
|
|
115
129
|
// Use it just like the Node.js version
|
|
116
130
|
tracePerf.info('This works in the browser!');
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### CommonJS (Bundlers with CommonJS support)
|
|
134
|
+
|
|
135
|
+
```javascript
|
|
136
|
+
// Import the browser version with require
|
|
137
|
+
const tracePerf = require('traceperf/browser');
|
|
138
|
+
|
|
139
|
+
// Use it just like the Node.js version
|
|
140
|
+
tracePerf.info('This works in the browser with CommonJS bundlers!');
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Browser Example
|
|
144
|
+
|
|
145
|
+
```javascript
|
|
146
|
+
// Import using your preferred method
|
|
147
|
+
import tracePerf from 'traceperf/browser';
|
|
117
148
|
|
|
118
149
|
// Track function performance
|
|
119
150
|
function expensiveCalculation() {
|
package/dist/browser.d.ts
CHANGED
|
@@ -61,7 +61,13 @@ declare class BrowserLogger {
|
|
|
61
61
|
track<T>(fn: () => T, options?: ITrackOptions): T;
|
|
62
62
|
private log;
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Create a new browser logger instance
|
|
66
|
+
*
|
|
67
|
+
* @param config - Configuration options
|
|
68
|
+
* @returns A new BrowserLogger instance
|
|
69
|
+
*/
|
|
66
70
|
export declare function createBrowserLogger(config?: Partial<ILoggerConfig>): BrowserLogger;
|
|
67
|
-
|
|
71
|
+
declare const defaultBrowserLogger: BrowserLogger;
|
|
72
|
+
export default defaultBrowserLogger;
|
|
73
|
+
export { BrowserLogger, BrowserPerformanceMonitor, BrowserExecutionTracker };
|
package/dist/browser.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Browser-compatible version of TracePerf
|
|
3
4
|
*
|
|
4
5
|
* This file provides a browser-compatible version of TracePerf that can be used
|
|
5
6
|
* in React, Next.js, or other frontend applications.
|
|
6
7
|
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BrowserExecutionTracker = exports.BrowserPerformanceMonitor = exports.BrowserLogger = void 0;
|
|
10
|
+
exports.createBrowserLogger = createBrowserLogger;
|
|
7
11
|
/**
|
|
8
12
|
* Browser-compatible performance monitoring
|
|
9
13
|
*/
|
|
@@ -60,6 +64,7 @@ class BrowserPerformanceMonitor {
|
|
|
60
64
|
return `🛠 Potential Fix: Review ${functionName} for performance optimizations`;
|
|
61
65
|
}
|
|
62
66
|
}
|
|
67
|
+
exports.BrowserPerformanceMonitor = BrowserPerformanceMonitor;
|
|
63
68
|
/**
|
|
64
69
|
* Browser-compatible execution tracker
|
|
65
70
|
*/
|
|
@@ -143,6 +148,7 @@ class BrowserExecutionTracker {
|
|
|
143
148
|
this._callStack = [];
|
|
144
149
|
}
|
|
145
150
|
}
|
|
151
|
+
exports.BrowserExecutionTracker = BrowserExecutionTracker;
|
|
146
152
|
/**
|
|
147
153
|
* Browser-compatible logger
|
|
148
154
|
*/
|
|
@@ -247,14 +253,28 @@ class BrowserLogger {
|
|
|
247
253
|
}
|
|
248
254
|
}
|
|
249
255
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
+
exports.BrowserLogger = BrowserLogger;
|
|
257
|
+
/**
|
|
258
|
+
* Create a new browser logger instance
|
|
259
|
+
*
|
|
260
|
+
* @param config - Configuration options
|
|
261
|
+
* @returns A new BrowserLogger instance
|
|
262
|
+
*/
|
|
263
|
+
function createBrowserLogger(config = {}) {
|
|
256
264
|
return new BrowserLogger(config);
|
|
257
265
|
}
|
|
258
|
-
//
|
|
259
|
-
|
|
266
|
+
// Create a singleton instance
|
|
267
|
+
const defaultBrowserLogger = new BrowserLogger();
|
|
268
|
+
// Export the singleton instance as the default export
|
|
269
|
+
exports.default = defaultBrowserLogger;
|
|
270
|
+
// Add CommonJS compatibility
|
|
271
|
+
if (typeof module !== 'undefined' && module.exports) {
|
|
272
|
+
module.exports = Object.assign(defaultBrowserLogger, {
|
|
273
|
+
default: defaultBrowserLogger,
|
|
274
|
+
createBrowserLogger,
|
|
275
|
+
BrowserLogger,
|
|
276
|
+
BrowserPerformanceMonitor,
|
|
277
|
+
BrowserExecutionTracker
|
|
278
|
+
});
|
|
279
|
+
}
|
|
260
280
|
//# sourceMappingURL=browser.js.map
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-compatible version of TracePerf
|
|
3
|
+
*
|
|
4
|
+
* This file provides a browser-compatible version of TracePerf that can be used
|
|
5
|
+
* in React, Next.js, or other frontend applications.
|
|
6
|
+
*/
|
|
7
|
+
import { ILoggerConfig, LogMode, ITrackOptions } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Browser-compatible performance monitoring
|
|
10
|
+
*/
|
|
11
|
+
declare class BrowserPerformanceMonitor {
|
|
12
|
+
private _timers;
|
|
13
|
+
private _defaultThreshold;
|
|
14
|
+
constructor(options?: {
|
|
15
|
+
defaultThreshold?: number;
|
|
16
|
+
});
|
|
17
|
+
startTimer(label: string): string;
|
|
18
|
+
endTimer(id: string): number;
|
|
19
|
+
isBottleneck(duration: number, threshold?: number): boolean;
|
|
20
|
+
getMemoryUsage(): {
|
|
21
|
+
heapUsed: number;
|
|
22
|
+
heapTotal: number;
|
|
23
|
+
external: number;
|
|
24
|
+
rss: number;
|
|
25
|
+
};
|
|
26
|
+
generateSuggestion(functionName: string, duration: number, memoryUsage?: number): string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Browser-compatible execution tracker
|
|
30
|
+
*/
|
|
31
|
+
declare class BrowserExecutionTracker {
|
|
32
|
+
private _callStack;
|
|
33
|
+
private _executions;
|
|
34
|
+
private _currentExecution;
|
|
35
|
+
private _defaultThreshold;
|
|
36
|
+
constructor(options?: {
|
|
37
|
+
defaultThreshold?: number;
|
|
38
|
+
});
|
|
39
|
+
track<T>(fn: () => T, options?: ITrackOptions): T;
|
|
40
|
+
getCallStack(): string[];
|
|
41
|
+
generateFlowChart(): string;
|
|
42
|
+
clear(): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Browser-compatible logger
|
|
46
|
+
*/
|
|
47
|
+
declare class BrowserLogger {
|
|
48
|
+
private _mode;
|
|
49
|
+
private _indentLevel;
|
|
50
|
+
private _executionTracker;
|
|
51
|
+
private _performanceMonitor;
|
|
52
|
+
constructor(config?: Partial<ILoggerConfig>);
|
|
53
|
+
info(message: string | object, ...args: any[]): void;
|
|
54
|
+
warn(message: string | object, ...args: any[]): void;
|
|
55
|
+
error(message: string | object, ...args: any[]): void;
|
|
56
|
+
debug(message: string | object, ...args: any[]): void;
|
|
57
|
+
group(label: string): void;
|
|
58
|
+
groupEnd(): void;
|
|
59
|
+
setMode(mode: LogMode): void;
|
|
60
|
+
getMode(): LogMode;
|
|
61
|
+
track<T>(fn: () => T, options?: ITrackOptions): T;
|
|
62
|
+
private log;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a new browser logger instance
|
|
66
|
+
*
|
|
67
|
+
* @param config - Configuration options
|
|
68
|
+
* @returns A new BrowserLogger instance
|
|
69
|
+
*/
|
|
70
|
+
export declare function createBrowserLogger(config?: Partial<ILoggerConfig>): BrowserLogger;
|
|
71
|
+
declare const defaultBrowserLogger: BrowserLogger;
|
|
72
|
+
export default defaultBrowserLogger;
|
|
73
|
+
export { BrowserLogger, BrowserPerformanceMonitor, BrowserExecutionTracker };
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-compatible version of TracePerf
|
|
3
|
+
*
|
|
4
|
+
* This file provides a browser-compatible version of TracePerf that can be used
|
|
5
|
+
* in React, Next.js, or other frontend applications.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Browser-compatible performance monitoring
|
|
9
|
+
*/
|
|
10
|
+
class BrowserPerformanceMonitor {
|
|
11
|
+
constructor(options = {}) {
|
|
12
|
+
var _a;
|
|
13
|
+
this._timers = new Map();
|
|
14
|
+
this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
|
|
15
|
+
}
|
|
16
|
+
startTimer(label) {
|
|
17
|
+
const id = `${label}-${Math.random().toString(36).substring(2, 9)}`;
|
|
18
|
+
this._timers.set(id, performance.now());
|
|
19
|
+
return id;
|
|
20
|
+
}
|
|
21
|
+
endTimer(id) {
|
|
22
|
+
const startTime = this._timers.get(id);
|
|
23
|
+
if (!startTime) {
|
|
24
|
+
throw new Error(`Timer with id ${id} not found`);
|
|
25
|
+
}
|
|
26
|
+
const duration = performance.now() - startTime;
|
|
27
|
+
this._timers.delete(id);
|
|
28
|
+
return duration;
|
|
29
|
+
}
|
|
30
|
+
isBottleneck(duration, threshold) {
|
|
31
|
+
const effectiveThreshold = threshold !== null && threshold !== void 0 ? threshold : this._defaultThreshold;
|
|
32
|
+
return duration > effectiveThreshold;
|
|
33
|
+
}
|
|
34
|
+
getMemoryUsage() {
|
|
35
|
+
// Use browser performance API if available
|
|
36
|
+
if (performance && 'memory' in performance) {
|
|
37
|
+
const memory = performance.memory;
|
|
38
|
+
return {
|
|
39
|
+
heapUsed: (memory === null || memory === void 0 ? void 0 : memory.usedJSHeapSize) || 0,
|
|
40
|
+
heapTotal: (memory === null || memory === void 0 ? void 0 : memory.totalJSHeapSize) || 0,
|
|
41
|
+
external: 0, // Not available in browser
|
|
42
|
+
rss: 0, // Not available in browser
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Fallback for browsers without memory API
|
|
46
|
+
return {
|
|
47
|
+
heapUsed: 0,
|
|
48
|
+
heapTotal: 0,
|
|
49
|
+
external: 0,
|
|
50
|
+
rss: 0,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
generateSuggestion(functionName, duration, memoryUsage) {
|
|
54
|
+
if (duration > 1000) {
|
|
55
|
+
return `🛠 Potential Fix: Consider optimizing or adding caching to ${functionName}`;
|
|
56
|
+
}
|
|
57
|
+
if (duration > 500) {
|
|
58
|
+
return `🛠 Potential Fix: Look for blocking operations in ${functionName}`;
|
|
59
|
+
}
|
|
60
|
+
return `🛠 Potential Fix: Review ${functionName} for performance optimizations`;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Browser-compatible execution tracker
|
|
65
|
+
*/
|
|
66
|
+
class BrowserExecutionTracker {
|
|
67
|
+
constructor(options = {}) {
|
|
68
|
+
var _a;
|
|
69
|
+
this._callStack = [];
|
|
70
|
+
this._executions = [];
|
|
71
|
+
this._currentExecution = null;
|
|
72
|
+
this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
|
|
73
|
+
}
|
|
74
|
+
track(fn, options) {
|
|
75
|
+
var _a;
|
|
76
|
+
const fnName = (options === null || options === void 0 ? void 0 : options.label) || fn.name || '<anonymous>';
|
|
77
|
+
const threshold = (_a = options === null || options === void 0 ? void 0 : options.threshold) !== null && _a !== void 0 ? _a : this._defaultThreshold;
|
|
78
|
+
// Start timing
|
|
79
|
+
const startTime = performance.now();
|
|
80
|
+
// Add to call stack
|
|
81
|
+
this._callStack.push(fnName);
|
|
82
|
+
// Create execution record
|
|
83
|
+
const execution = {
|
|
84
|
+
name: fnName,
|
|
85
|
+
duration: 0,
|
|
86
|
+
isSlow: false,
|
|
87
|
+
level: this._callStack.length - 1,
|
|
88
|
+
startTime,
|
|
89
|
+
children: [],
|
|
90
|
+
};
|
|
91
|
+
// Set parent-child relationship
|
|
92
|
+
if (this._currentExecution) {
|
|
93
|
+
execution.parent = this._currentExecution;
|
|
94
|
+
this._currentExecution.children.push(execution);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this._executions.push(execution);
|
|
98
|
+
}
|
|
99
|
+
// Save the previous current execution
|
|
100
|
+
const previousExecution = this._currentExecution;
|
|
101
|
+
// Set this as the current execution
|
|
102
|
+
this._currentExecution = execution;
|
|
103
|
+
try {
|
|
104
|
+
// Execute the function
|
|
105
|
+
return fn();
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
// End timing
|
|
109
|
+
const endTime = performance.now();
|
|
110
|
+
// Calculate duration
|
|
111
|
+
execution.duration = endTime - startTime;
|
|
112
|
+
// Check if it's a bottleneck
|
|
113
|
+
execution.isSlow = execution.duration > threshold;
|
|
114
|
+
// Restore the previous current execution
|
|
115
|
+
this._currentExecution = previousExecution;
|
|
116
|
+
// Remove from call stack
|
|
117
|
+
this._callStack.pop();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
getCallStack() {
|
|
121
|
+
return [...this._callStack];
|
|
122
|
+
}
|
|
123
|
+
generateFlowChart() {
|
|
124
|
+
// Simplified flow chart for browser
|
|
125
|
+
let chart = 'Execution Flow:\n';
|
|
126
|
+
const flattenExecutions = (executions, level = 0) => {
|
|
127
|
+
executions.forEach(execution => {
|
|
128
|
+
const indent = ' '.repeat(level);
|
|
129
|
+
const duration = execution.duration.toFixed(2);
|
|
130
|
+
const slowMarker = execution.isSlow ? ' ⚠️ SLOW' : '';
|
|
131
|
+
chart += `${indent}${execution.name} (${duration}ms)${slowMarker}\n`;
|
|
132
|
+
if (execution.children && execution.children.length > 0) {
|
|
133
|
+
flattenExecutions(execution.children, level + 1);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
flattenExecutions(this._executions);
|
|
138
|
+
return chart;
|
|
139
|
+
}
|
|
140
|
+
clear() {
|
|
141
|
+
this._executions = [];
|
|
142
|
+
this._currentExecution = null;
|
|
143
|
+
this._callStack = [];
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Browser-compatible logger
|
|
148
|
+
*/
|
|
149
|
+
class BrowserLogger {
|
|
150
|
+
constructor(config = {}) {
|
|
151
|
+
this._mode = 'dev';
|
|
152
|
+
this._indentLevel = 0;
|
|
153
|
+
this._mode = config.mode || 'dev';
|
|
154
|
+
this._executionTracker = new BrowserExecutionTracker({
|
|
155
|
+
defaultThreshold: config.performanceThreshold || 100,
|
|
156
|
+
});
|
|
157
|
+
this._performanceMonitor = new BrowserPerformanceMonitor({
|
|
158
|
+
defaultThreshold: config.performanceThreshold || 100,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
info(message, ...args) {
|
|
162
|
+
this.log('info', message, args);
|
|
163
|
+
}
|
|
164
|
+
warn(message, ...args) {
|
|
165
|
+
this.log('warn', message, args);
|
|
166
|
+
}
|
|
167
|
+
error(message, ...args) {
|
|
168
|
+
this.log('error', message, args);
|
|
169
|
+
}
|
|
170
|
+
debug(message, ...args) {
|
|
171
|
+
if (this._mode === 'prod') {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
this.log('debug', message, args);
|
|
175
|
+
}
|
|
176
|
+
group(label) {
|
|
177
|
+
this.info(label);
|
|
178
|
+
this._indentLevel++;
|
|
179
|
+
if (typeof console.group === 'function') {
|
|
180
|
+
console.group(label);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
groupEnd() {
|
|
184
|
+
if (this._indentLevel > 0) {
|
|
185
|
+
this._indentLevel--;
|
|
186
|
+
}
|
|
187
|
+
if (typeof console.groupEnd === 'function') {
|
|
188
|
+
console.groupEnd();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
setMode(mode) {
|
|
192
|
+
this._mode = mode;
|
|
193
|
+
}
|
|
194
|
+
getMode() {
|
|
195
|
+
return this._mode;
|
|
196
|
+
}
|
|
197
|
+
track(fn, options) {
|
|
198
|
+
var _a;
|
|
199
|
+
const silent = (_a = options === null || options === void 0 ? void 0 : options.silent) !== null && _a !== void 0 ? _a : false;
|
|
200
|
+
// Track the function execution
|
|
201
|
+
const result = this._executionTracker.track(fn, options);
|
|
202
|
+
// Log the execution flow if not silent
|
|
203
|
+
if (!silent) {
|
|
204
|
+
const flowChart = this._executionTracker.generateFlowChart();
|
|
205
|
+
console.log(flowChart);
|
|
206
|
+
}
|
|
207
|
+
return result;
|
|
208
|
+
}
|
|
209
|
+
log(level, message, args) {
|
|
210
|
+
// Skip logs based on mode
|
|
211
|
+
if (this._mode === 'prod' && level !== 'error') {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
if (this._mode === 'staging' && (level === 'debug' || level === 'info')) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
// Format the message
|
|
218
|
+
let formattedMessage;
|
|
219
|
+
if (typeof message === 'string') {
|
|
220
|
+
formattedMessage = message;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
try {
|
|
224
|
+
formattedMessage = JSON.stringify(message, null, 2);
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
formattedMessage = String(message);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Add indentation
|
|
231
|
+
const indent = ' '.repeat(this._indentLevel);
|
|
232
|
+
formattedMessage = `${indent}${formattedMessage}`;
|
|
233
|
+
// Log to console with appropriate method
|
|
234
|
+
switch (level) {
|
|
235
|
+
case 'info':
|
|
236
|
+
console.info(formattedMessage, ...args);
|
|
237
|
+
break;
|
|
238
|
+
case 'warn':
|
|
239
|
+
console.warn(formattedMessage, ...args);
|
|
240
|
+
break;
|
|
241
|
+
case 'error':
|
|
242
|
+
console.error(formattedMessage, ...args);
|
|
243
|
+
break;
|
|
244
|
+
case 'debug':
|
|
245
|
+
console.debug(formattedMessage, ...args);
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Create a new browser logger instance
|
|
252
|
+
*
|
|
253
|
+
* @param config - Configuration options
|
|
254
|
+
* @returns A new BrowserLogger instance
|
|
255
|
+
*/
|
|
256
|
+
export function createBrowserLogger(config = {}) {
|
|
257
|
+
return new BrowserLogger(config);
|
|
258
|
+
}
|
|
259
|
+
// Create a singleton instance
|
|
260
|
+
const defaultBrowserLogger = new BrowserLogger();
|
|
261
|
+
// Export the singleton instance as the default export
|
|
262
|
+
export default defaultBrowserLogger;
|
|
263
|
+
// Export classes for advanced usage
|
|
264
|
+
export { BrowserLogger, BrowserPerformanceMonitor, BrowserExecutionTracker };
|
|
265
|
+
// Add CommonJS compatibility
|
|
266
|
+
if (typeof module !== 'undefined' && module.exports) {
|
|
267
|
+
module.exports = Object.assign(defaultBrowserLogger, {
|
|
268
|
+
default: defaultBrowserLogger,
|
|
269
|
+
createBrowserLogger,
|
|
270
|
+
BrowserLogger,
|
|
271
|
+
BrowserPerformanceMonitor,
|
|
272
|
+
BrowserExecutionTracker
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ILoggerConfig, LogLevel, LogMode } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration manager for the logger
|
|
4
|
+
* Handles merging user config with defaults and provides utility methods
|
|
5
|
+
*/
|
|
6
|
+
export declare class ConfigManager {
|
|
7
|
+
private _config;
|
|
8
|
+
/**
|
|
9
|
+
* Create a new ConfigManager instance
|
|
10
|
+
*
|
|
11
|
+
* @param userConfig - User-provided configuration options
|
|
12
|
+
*/
|
|
13
|
+
constructor(userConfig?: Partial<ILoggerConfig>);
|
|
14
|
+
/**
|
|
15
|
+
* Get the current configuration
|
|
16
|
+
*
|
|
17
|
+
* @returns The current configuration
|
|
18
|
+
*/
|
|
19
|
+
getConfig(): ILoggerConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Update the configuration
|
|
22
|
+
*
|
|
23
|
+
* @param newConfig - New configuration options to merge
|
|
24
|
+
*/
|
|
25
|
+
updateConfig(newConfig: Partial<ILoggerConfig>): void;
|
|
26
|
+
/**
|
|
27
|
+
* Get the current mode
|
|
28
|
+
*
|
|
29
|
+
* @returns The current mode
|
|
30
|
+
*/
|
|
31
|
+
getMode(): LogMode;
|
|
32
|
+
/**
|
|
33
|
+
* Set the current mode
|
|
34
|
+
*
|
|
35
|
+
* @param mode - The mode to set
|
|
36
|
+
*/
|
|
37
|
+
setMode(mode: LogMode): void;
|
|
38
|
+
/**
|
|
39
|
+
* Check if a log level should be displayed based on the current mode and level
|
|
40
|
+
*
|
|
41
|
+
* @param level - The log level to check
|
|
42
|
+
* @returns Whether the log level should be displayed
|
|
43
|
+
*/
|
|
44
|
+
shouldLog(level: LogLevel): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Get the higher priority level between two log levels
|
|
47
|
+
*
|
|
48
|
+
* @param levelA - First log level
|
|
49
|
+
* @param levelB - Second log level
|
|
50
|
+
* @returns The higher priority level
|
|
51
|
+
*/
|
|
52
|
+
private getHigherPriorityLevel;
|
|
53
|
+
/**
|
|
54
|
+
* Get the performance threshold
|
|
55
|
+
*
|
|
56
|
+
* @returns The performance threshold in milliseconds
|
|
57
|
+
*/
|
|
58
|
+
getPerformanceThreshold(): number;
|
|
59
|
+
/**
|
|
60
|
+
* Get the indentation size
|
|
61
|
+
*
|
|
62
|
+
* @returns The number of spaces for each indentation level
|
|
63
|
+
*/
|
|
64
|
+
getIndentSize(): number;
|
|
65
|
+
/**
|
|
66
|
+
* Check if colorization is enabled
|
|
67
|
+
*
|
|
68
|
+
* @returns Whether colorization is enabled
|
|
69
|
+
*/
|
|
70
|
+
isColorEnabled(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Check if timestamps are enabled
|
|
73
|
+
*
|
|
74
|
+
* @returns Whether timestamps are enabled
|
|
75
|
+
*/
|
|
76
|
+
isTimestampEnabled(): boolean;
|
|
77
|
+
}
|