traceperf 0.1.1 → 0.1.4
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 +122 -1
- package/dist/browser.d.ts +76 -2
- package/dist/browser.js +166 -28
- package/dist/browser.js.map +1 -1
- package/dist/core/logger.d.ts +14 -1
- package/dist/core/logger.js +16 -4
- package/dist/core/logger.js.map +1 -1
- package/dist/esm/browser.d.ts +76 -2
- package/dist/esm/browser.js +166 -28
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/core/logger.d.ts +14 -1
- package/dist/esm/core/logger.js +16 -4
- package/dist/esm/core/logger.js.map +1 -1
- package/dist/esm/trackers/execution.d.ts +28 -7
- package/dist/esm/trackers/execution.js +72 -28
- package/dist/esm/trackers/execution.js.map +1 -1
- package/dist/esm/types/config.d.ts +35 -17
- package/dist/esm/types/index.d.ts +82 -0
- package/dist/esm/types/logger.d.ts +11 -0
- package/dist/esm/utils/proxy-tracker.d.ts +68 -0
- package/dist/esm/utils/proxy-tracker.js +127 -0
- package/dist/esm/utils/proxy-tracker.js.map +1 -0
- package/dist/trackers/execution.d.ts +28 -7
- package/dist/trackers/execution.js +72 -28
- package/dist/trackers/execution.js.map +1 -1
- package/dist/types/config.d.ts +35 -17
- package/dist/types/index.d.ts +82 -0
- package/dist/types/logger.d.ts +11 -0
- package/dist/utils/proxy-tracker.d.ts +68 -0
- package/dist/utils/proxy-tracker.js +131 -0
- package/dist/utils/proxy-tracker.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,6 +9,7 @@ Advanced console logging & performance tracking for Node.js applications.
|
|
|
9
9
|
|
|
10
10
|
- **Structured and Visually Appealing Logs**: A better alternative to `console.log()` with colors, icons, and formatting.
|
|
11
11
|
- **Execution Flow Tracing**: Track function calls and visualize the execution flow with ASCII art.
|
|
12
|
+
- **Nested Function Tracking**: Multiple approaches to track nested function calls with detailed visualization.
|
|
12
13
|
- **Performance Bottleneck Detection**: Identify slow functions and get suggestions for optimization.
|
|
13
14
|
- **Conditional Logging Modes**: Different logging levels for development, staging, and production.
|
|
14
15
|
- **Nested Logging**: Group related logs with indentation for better readability.
|
|
@@ -230,4 +231,124 @@ logger.info('Custom logger');
|
|
|
230
231
|
|
|
231
232
|
## License
|
|
232
233
|
|
|
233
|
-
MIT
|
|
234
|
+
MIT
|
|
235
|
+
|
|
236
|
+
## Advanced Usage
|
|
237
|
+
|
|
238
|
+
### Tracking Nested Function Calls
|
|
239
|
+
|
|
240
|
+
TracePerf provides two approaches for tracking nested function calls, allowing you to visualize the complete execution flow of your application:
|
|
241
|
+
|
|
242
|
+
1. **Using the `createTrackable` method** (recommended)
|
|
243
|
+
2. **Using nested `track` calls**
|
|
244
|
+
|
|
245
|
+
#### Using createTrackable (Recommended)
|
|
246
|
+
|
|
247
|
+
The `createTrackable` method creates tracked versions of your functions that can be used in place of the original functions:
|
|
248
|
+
|
|
249
|
+
```javascript
|
|
250
|
+
function fetchData() {
|
|
251
|
+
processData();
|
|
252
|
+
calculateResults();
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function processData() {
|
|
256
|
+
// Some processing logic
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function calculateResults() {
|
|
260
|
+
// Some calculation logic
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Create tracked versions of all functions
|
|
264
|
+
const trackedFetchData = tracePerf.createTrackable(fetchData, { label: 'fetchData' });
|
|
265
|
+
const trackedProcessData = tracePerf.createTrackable(processData, { label: 'processData' });
|
|
266
|
+
const trackedCalculateResults = tracePerf.createTrackable(calculateResults, { label: 'calculateResults' });
|
|
267
|
+
|
|
268
|
+
// Replace the global references to enable tracking
|
|
269
|
+
global.processData = trackedProcessData;
|
|
270
|
+
global.calculateResults = trackedCalculateResults;
|
|
271
|
+
|
|
272
|
+
// Execute the tracked top-level function
|
|
273
|
+
trackedFetchData();
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
This will produce a complete execution flow chart showing all nested function calls:
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
Execution Flow:
|
|
280
|
+
┌──────────────────────────────┐
|
|
281
|
+
│ fetchData │ ⏱ 200ms
|
|
282
|
+
└──────────────────────────────┘
|
|
283
|
+
│
|
|
284
|
+
▼
|
|
285
|
+
┌──────────────────────────────┐
|
|
286
|
+
│ processData │ ⏱ 500ms ⚠️ SLOW
|
|
287
|
+
└──────────────────────────────┘
|
|
288
|
+
│
|
|
289
|
+
▼
|
|
290
|
+
┌──────────────────────────────┐
|
|
291
|
+
│ calculateResults │ ⏱ 300ms
|
|
292
|
+
└──────────────────────────────┘
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
#### Using Nested Track Calls
|
|
296
|
+
|
|
297
|
+
For more complex scenarios, you can use nested `track` calls:
|
|
298
|
+
|
|
299
|
+
```javascript
|
|
300
|
+
tracePerf.track(() => {
|
|
301
|
+
// Top-level function logic
|
|
302
|
+
|
|
303
|
+
tracePerf.track(() => {
|
|
304
|
+
// Nested function logic
|
|
305
|
+
|
|
306
|
+
tracePerf.track(() => {
|
|
307
|
+
// Deeply nested function logic
|
|
308
|
+
}, { label: 'deeplyNestedFunction' });
|
|
309
|
+
|
|
310
|
+
}, { label: 'nestedFunction' });
|
|
311
|
+
|
|
312
|
+
}, { label: 'topLevelFunction' });
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
#### Controlling Nested Tracking
|
|
316
|
+
|
|
317
|
+
You can control nested tracking with the following option:
|
|
318
|
+
|
|
319
|
+
```javascript
|
|
320
|
+
// Disable nested tracking entirely
|
|
321
|
+
tracePerf.track(fetchData, { enableNestedTracking: false });
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
For more examples, see the `examples/nested-tracking.js` and `examples/auto-tracking-example.js` files in the repository.
|
|
325
|
+
|
|
326
|
+
## API Reference for Nested Tracking
|
|
327
|
+
|
|
328
|
+
### createTrackable
|
|
329
|
+
|
|
330
|
+
```javascript
|
|
331
|
+
tracePerf.createTrackable(fn, options)
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
Creates a tracked version of a function that can be used for nested function tracking.
|
|
335
|
+
|
|
336
|
+
- `fn`: The function to make trackable
|
|
337
|
+
- `options`: Options for tracking
|
|
338
|
+
- `label`: Custom label for the function (defaults to function name)
|
|
339
|
+
- `threshold`: Performance threshold in milliseconds
|
|
340
|
+
- `includeMemory`: Whether to include memory usage tracking
|
|
341
|
+
- `enableNestedTracking`: Whether to enable nested tracking (default: true)
|
|
342
|
+
|
|
343
|
+
Returns a new function that, when called, will track the execution of the original function.
|
|
344
|
+
|
|
345
|
+
### Track Options for Nested Tracking
|
|
346
|
+
|
|
347
|
+
When using the `track` method, you can control nested tracking with these options:
|
|
348
|
+
|
|
349
|
+
```javascript
|
|
350
|
+
tracePerf.track(fn, {
|
|
351
|
+
// ... other options
|
|
352
|
+
enableNestedTracking: true, // Enable/disable nested tracking
|
|
353
|
+
});
|
|
354
|
+
```
|
package/dist/browser.d.ts
CHANGED
|
@@ -26,19 +26,80 @@ declare class BrowserPerformanceMonitor {
|
|
|
26
26
|
generateSuggestion(functionName: string, duration: number, memoryUsage?: number): string;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
* Browser-compatible execution tracker
|
|
29
|
+
* Browser-compatible execution tracker for tracking function calls and generating flow charts
|
|
30
30
|
*/
|
|
31
31
|
declare class BrowserExecutionTracker {
|
|
32
32
|
private _callStack;
|
|
33
33
|
private _executions;
|
|
34
34
|
private _currentExecution;
|
|
35
35
|
private _defaultThreshold;
|
|
36
|
+
private _globalScope;
|
|
37
|
+
/**
|
|
38
|
+
* Create a new BrowserExecutionTracker instance
|
|
39
|
+
*
|
|
40
|
+
* @param options - Tracker options
|
|
41
|
+
*/
|
|
36
42
|
constructor(options?: {
|
|
37
43
|
defaultThreshold?: number;
|
|
38
44
|
});
|
|
39
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Generate a performance optimization suggestion based on execution duration
|
|
47
|
+
*
|
|
48
|
+
* @param name - Function name
|
|
49
|
+
* @param duration - Execution duration in ms
|
|
50
|
+
* @returns Optimization suggestion
|
|
51
|
+
*/
|
|
52
|
+
private generateSuggestion;
|
|
53
|
+
/**
|
|
54
|
+
* Track the execution of a function
|
|
55
|
+
*
|
|
56
|
+
* @param fn - The function to track
|
|
57
|
+
* @param options - Options for tracking
|
|
58
|
+
* @returns The return value of the tracked function
|
|
59
|
+
*/
|
|
60
|
+
track<T>(fn: () => T, options?: any): T;
|
|
61
|
+
/**
|
|
62
|
+
* Create a trackable version of a function
|
|
63
|
+
*
|
|
64
|
+
* This is a helper method to create a tracked version of a function
|
|
65
|
+
* that can be used for nested function tracking.
|
|
66
|
+
*
|
|
67
|
+
* @param fn - The function to make trackable
|
|
68
|
+
* @param options - Options for tracking
|
|
69
|
+
* @returns A tracked version of the function
|
|
70
|
+
*/
|
|
71
|
+
createTrackable<T extends (...args: any[]) => any>(fn: T, options?: Omit<ITrackOptions, 'label'> & {
|
|
72
|
+
label?: string;
|
|
73
|
+
}): (...args: Parameters<T>) => ReturnType<T>;
|
|
74
|
+
/**
|
|
75
|
+
* Get the current call stack
|
|
76
|
+
*
|
|
77
|
+
* @returns The current call stack
|
|
78
|
+
*/
|
|
40
79
|
getCallStack(): string[];
|
|
80
|
+
/**
|
|
81
|
+
* Generate a visual representation of the execution flow
|
|
82
|
+
*
|
|
83
|
+
* @returns ASCII flow chart of the execution
|
|
84
|
+
*/
|
|
41
85
|
generateFlowChart(): string;
|
|
86
|
+
/**
|
|
87
|
+
* Prepare execution data for the flow chart
|
|
88
|
+
*
|
|
89
|
+
* @param executions - The execution records to prepare
|
|
90
|
+
* @returns A list of execution data
|
|
91
|
+
*/
|
|
92
|
+
private prepareExecutionData;
|
|
93
|
+
/**
|
|
94
|
+
* Add children to the result list
|
|
95
|
+
*
|
|
96
|
+
* @param children - The children to add
|
|
97
|
+
* @param result - The result list
|
|
98
|
+
*/
|
|
99
|
+
private addChildrenToResult;
|
|
100
|
+
/**
|
|
101
|
+
* Clear all execution records
|
|
102
|
+
*/
|
|
42
103
|
clear(): void;
|
|
43
104
|
}
|
|
44
105
|
/**
|
|
@@ -59,6 +120,19 @@ declare class BrowserLogger {
|
|
|
59
120
|
setMode(mode: LogMode): void;
|
|
60
121
|
getMode(): LogMode;
|
|
61
122
|
track<T>(fn: () => T, options?: ITrackOptions): T;
|
|
123
|
+
/**
|
|
124
|
+
* Create a trackable version of a function
|
|
125
|
+
*
|
|
126
|
+
* This is a helper method to create a tracked version of a function
|
|
127
|
+
* that can be used for nested function tracking.
|
|
128
|
+
*
|
|
129
|
+
* @param fn - The function to make trackable
|
|
130
|
+
* @param options - Options for tracking
|
|
131
|
+
* @returns A tracked version of the function
|
|
132
|
+
*/
|
|
133
|
+
createTrackable<T extends (...args: any[]) => any>(fn: T, options?: Omit<ITrackOptions, 'label'> & {
|
|
134
|
+
label?: string;
|
|
135
|
+
}): (...args: Parameters<T>) => ReturnType<T>;
|
|
62
136
|
private log;
|
|
63
137
|
}
|
|
64
138
|
/**
|
package/dist/browser.js
CHANGED
|
@@ -66,22 +66,56 @@ class BrowserPerformanceMonitor {
|
|
|
66
66
|
}
|
|
67
67
|
exports.BrowserPerformanceMonitor = BrowserPerformanceMonitor;
|
|
68
68
|
/**
|
|
69
|
-
* Browser-compatible execution tracker
|
|
69
|
+
* Browser-compatible execution tracker for tracking function calls and generating flow charts
|
|
70
70
|
*/
|
|
71
71
|
class BrowserExecutionTracker {
|
|
72
|
+
/**
|
|
73
|
+
* Create a new BrowserExecutionTracker instance
|
|
74
|
+
*
|
|
75
|
+
* @param options - Tracker options
|
|
76
|
+
*/
|
|
72
77
|
constructor(options = {}) {
|
|
73
78
|
var _a;
|
|
74
79
|
this._callStack = [];
|
|
75
80
|
this._executions = [];
|
|
76
81
|
this._currentExecution = null;
|
|
77
82
|
this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
|
|
83
|
+
// Get a reference to the global scope (window in browsers)
|
|
84
|
+
this._globalScope = typeof window !== 'undefined' ? window :
|
|
85
|
+
typeof global !== 'undefined' ? global :
|
|
86
|
+
{};
|
|
78
87
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
88
|
+
/**
|
|
89
|
+
* Generate a performance optimization suggestion based on execution duration
|
|
90
|
+
*
|
|
91
|
+
* @param name - Function name
|
|
92
|
+
* @param duration - Execution duration in ms
|
|
93
|
+
* @returns Optimization suggestion
|
|
94
|
+
*/
|
|
95
|
+
generateSuggestion(name, duration) {
|
|
96
|
+
if (duration > 500) {
|
|
97
|
+
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Consider optimizing or breaking it down into smaller functions.`;
|
|
98
|
+
}
|
|
99
|
+
else if (duration > 200) {
|
|
100
|
+
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Consider optimizing if called frequently.`;
|
|
101
|
+
}
|
|
102
|
+
else if (duration > 100) {
|
|
103
|
+
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Monitor if called in critical paths.`;
|
|
104
|
+
}
|
|
105
|
+
return '';
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Track the execution of a function
|
|
109
|
+
*
|
|
110
|
+
* @param fn - The function to track
|
|
111
|
+
* @param options - Options for tracking
|
|
112
|
+
* @returns The return value of the tracked function
|
|
113
|
+
*/
|
|
114
|
+
track(fn, options = {}) {
|
|
115
|
+
var _a, _b;
|
|
116
|
+
const fnName = options.label || fn.name || 'anonymous';
|
|
117
|
+
const threshold = (_a = options.threshold) !== null && _a !== void 0 ? _a : this._defaultThreshold;
|
|
118
|
+
const enableNestedTracking = (_b = options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
|
|
85
119
|
// Add to call stack
|
|
86
120
|
this._callStack.push(fnName);
|
|
87
121
|
// Create execution record
|
|
@@ -90,58 +124,149 @@ class BrowserExecutionTracker {
|
|
|
90
124
|
duration: 0,
|
|
91
125
|
isSlow: false,
|
|
92
126
|
level: this._callStack.length - 1,
|
|
93
|
-
startTime,
|
|
127
|
+
startTime: performance.now(),
|
|
94
128
|
children: [],
|
|
95
129
|
};
|
|
96
130
|
// Set parent-child relationship
|
|
97
|
-
if (this._currentExecution) {
|
|
131
|
+
if (this._currentExecution && enableNestedTracking) {
|
|
98
132
|
execution.parent = this._currentExecution;
|
|
99
133
|
this._currentExecution.children.push(execution);
|
|
100
134
|
}
|
|
101
135
|
else {
|
|
136
|
+
// This is a root execution
|
|
102
137
|
this._executions.push(execution);
|
|
103
138
|
}
|
|
104
139
|
// Save the previous current execution
|
|
105
140
|
const previousExecution = this._currentExecution;
|
|
106
141
|
// Set this as the current execution
|
|
107
142
|
this._currentExecution = execution;
|
|
143
|
+
let result;
|
|
108
144
|
try {
|
|
109
145
|
// Execute the function
|
|
110
|
-
|
|
146
|
+
result = fn();
|
|
111
147
|
}
|
|
112
|
-
|
|
148
|
+
catch (error) {
|
|
113
149
|
// End timing
|
|
114
150
|
const endTime = performance.now();
|
|
115
|
-
|
|
116
|
-
execution.duration = endTime - startTime;
|
|
117
|
-
// Check if it's a bottleneck
|
|
151
|
+
execution.endTime = endTime;
|
|
152
|
+
execution.duration = endTime - execution.startTime;
|
|
118
153
|
execution.isSlow = execution.duration > threshold;
|
|
119
154
|
// Restore the previous current execution
|
|
120
155
|
this._currentExecution = previousExecution;
|
|
121
156
|
// Remove from call stack
|
|
122
157
|
this._callStack.pop();
|
|
158
|
+
// Re-throw the error
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
// End timing
|
|
162
|
+
const endTime = performance.now();
|
|
163
|
+
execution.endTime = endTime;
|
|
164
|
+
execution.duration = endTime - execution.startTime;
|
|
165
|
+
execution.isSlow = execution.duration > threshold;
|
|
166
|
+
// Generate suggestion if slow
|
|
167
|
+
if (execution.isSlow) {
|
|
168
|
+
execution.suggestion = this.generateSuggestion(fnName, execution.duration);
|
|
123
169
|
}
|
|
170
|
+
// Restore the previous current execution
|
|
171
|
+
this._currentExecution = previousExecution;
|
|
172
|
+
// Remove from call stack
|
|
173
|
+
this._callStack.pop();
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Create a trackable version of a function
|
|
178
|
+
*
|
|
179
|
+
* This is a helper method to create a tracked version of a function
|
|
180
|
+
* that can be used for nested function tracking.
|
|
181
|
+
*
|
|
182
|
+
* @param fn - The function to make trackable
|
|
183
|
+
* @param options - Options for tracking
|
|
184
|
+
* @returns A tracked version of the function
|
|
185
|
+
*/
|
|
186
|
+
createTrackable(fn, options) {
|
|
187
|
+
const self = this;
|
|
188
|
+
const fnName = (options === null || options === void 0 ? void 0 : options.label) || fn.name || 'anonymous';
|
|
189
|
+
return function (...args) {
|
|
190
|
+
return self.track(() => fn.apply(this, args), {
|
|
191
|
+
...options,
|
|
192
|
+
label: fnName
|
|
193
|
+
});
|
|
194
|
+
};
|
|
124
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Get the current call stack
|
|
198
|
+
*
|
|
199
|
+
* @returns The current call stack
|
|
200
|
+
*/
|
|
125
201
|
getCallStack() {
|
|
126
202
|
return [...this._callStack];
|
|
127
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Generate a visual representation of the execution flow
|
|
206
|
+
*
|
|
207
|
+
* @returns ASCII flow chart of the execution
|
|
208
|
+
*/
|
|
128
209
|
generateFlowChart() {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
210
|
+
let result = 'Execution Flow:\n';
|
|
211
|
+
// Process each execution
|
|
212
|
+
this.prepareExecutionData(this._executions).forEach(execution => {
|
|
213
|
+
const indent = ' '.repeat(execution.level);
|
|
214
|
+
const durationStr = execution.duration.toFixed(2);
|
|
215
|
+
const slowMarker = execution.isSlow ? ' [SLOW]' : '';
|
|
216
|
+
result += `${indent}→ ${execution.name} (${durationStr}ms)${slowMarker}\n`;
|
|
217
|
+
// Add suggestion if available
|
|
218
|
+
if (execution.suggestion) {
|
|
219
|
+
result += `${indent} ⚠️ ${execution.suggestion}\n`;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Prepare execution data for the flow chart
|
|
226
|
+
*
|
|
227
|
+
* @param executions - The execution records to prepare
|
|
228
|
+
* @returns A list of execution data
|
|
229
|
+
*/
|
|
230
|
+
prepareExecutionData(executions) {
|
|
231
|
+
const result = [];
|
|
232
|
+
// Process each root execution
|
|
233
|
+
executions.forEach(execution => {
|
|
234
|
+
// Add the root execution
|
|
235
|
+
result.push({
|
|
236
|
+
name: execution.name,
|
|
237
|
+
duration: execution.duration,
|
|
238
|
+
isSlow: execution.isSlow,
|
|
239
|
+
suggestion: execution.suggestion,
|
|
240
|
+
level: execution.level,
|
|
140
241
|
});
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
242
|
+
// Add children recursively
|
|
243
|
+
this.addChildrenToResult(execution.children, result);
|
|
244
|
+
});
|
|
245
|
+
return result;
|
|
144
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Add children to the result list
|
|
249
|
+
*
|
|
250
|
+
* @param children - The children to add
|
|
251
|
+
* @param result - The result list
|
|
252
|
+
*/
|
|
253
|
+
addChildrenToResult(children, result) {
|
|
254
|
+
children.forEach(child => {
|
|
255
|
+
// Add the child
|
|
256
|
+
result.push({
|
|
257
|
+
name: child.name,
|
|
258
|
+
duration: child.duration,
|
|
259
|
+
isSlow: child.isSlow,
|
|
260
|
+
suggestion: child.suggestion,
|
|
261
|
+
level: child.level,
|
|
262
|
+
});
|
|
263
|
+
// Add grandchildren recursively
|
|
264
|
+
this.addChildrenToResult(child.children, result);
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Clear all execution records
|
|
269
|
+
*/
|
|
145
270
|
clear() {
|
|
146
271
|
this._executions = [];
|
|
147
272
|
this._currentExecution = null;
|
|
@@ -212,6 +337,19 @@ class BrowserLogger {
|
|
|
212
337
|
}
|
|
213
338
|
return result;
|
|
214
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* Create a trackable version of a function
|
|
342
|
+
*
|
|
343
|
+
* This is a helper method to create a tracked version of a function
|
|
344
|
+
* that can be used for nested function tracking.
|
|
345
|
+
*
|
|
346
|
+
* @param fn - The function to make trackable
|
|
347
|
+
* @param options - Options for tracking
|
|
348
|
+
* @returns A tracked version of the function
|
|
349
|
+
*/
|
|
350
|
+
createTrackable(fn, options) {
|
|
351
|
+
return this._executionTracker.createTrackable(fn, options);
|
|
352
|
+
}
|
|
215
353
|
log(level, message, args) {
|
|
216
354
|
// Skip logs based on mode
|
|
217
355
|
if (this._mode === 'prod' && level !== 'error') {
|
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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"}
|
package/dist/core/logger.d.ts
CHANGED
|
@@ -66,13 +66,26 @@ export declare class Logger implements ILogger {
|
|
|
66
66
|
*/
|
|
67
67
|
getMode(): LogMode;
|
|
68
68
|
/**
|
|
69
|
-
* Track the execution of a function
|
|
69
|
+
* Track the execution of a function
|
|
70
70
|
*
|
|
71
71
|
* @param fn - The function to track
|
|
72
72
|
* @param options - Options for tracking
|
|
73
73
|
* @returns The return value of the tracked function
|
|
74
74
|
*/
|
|
75
75
|
track<T>(fn: () => T, options?: ITrackOptions): T;
|
|
76
|
+
/**
|
|
77
|
+
* Create a trackable version of a function
|
|
78
|
+
*
|
|
79
|
+
* This is a helper method to create a tracked version of a function
|
|
80
|
+
* that can be used for nested function tracking.
|
|
81
|
+
*
|
|
82
|
+
* @param fn - The function to make trackable
|
|
83
|
+
* @param options - Options for tracking
|
|
84
|
+
* @returns A tracked version of the function
|
|
85
|
+
*/
|
|
86
|
+
createTrackable<T extends (...args: any[]) => any>(fn: T, options?: Omit<ITrackOptions, 'label'> & {
|
|
87
|
+
label?: string;
|
|
88
|
+
}): (...args: Parameters<T>) => ReturnType<T>;
|
|
76
89
|
/**
|
|
77
90
|
* Internal method to log a message
|
|
78
91
|
*
|
package/dist/core/logger.js
CHANGED
|
@@ -121,7 +121,7 @@ class Logger {
|
|
|
121
121
|
return this._config.getMode();
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
|
-
* Track the execution of a function
|
|
124
|
+
* Track the execution of a function
|
|
125
125
|
*
|
|
126
126
|
* @param fn - The function to track
|
|
127
127
|
* @param options - Options for tracking
|
|
@@ -135,13 +135,25 @@ class Logger {
|
|
|
135
135
|
// Log the execution flow if not silent
|
|
136
136
|
if (!silent) {
|
|
137
137
|
const flowChart = this._executionTracker.generateFlowChart();
|
|
138
|
-
// Log the flow chart directly to
|
|
139
|
-
//
|
|
140
|
-
console.log('\nExecution Flow:');
|
|
138
|
+
// Log the flow chart directly to console to preserve ASCII art
|
|
139
|
+
// Skip formatters to avoid messing up the ASCII art
|
|
141
140
|
console.log(flowChart);
|
|
142
141
|
}
|
|
143
142
|
return result;
|
|
144
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Create a trackable version of a function
|
|
146
|
+
*
|
|
147
|
+
* This is a helper method to create a tracked version of a function
|
|
148
|
+
* that can be used for nested function tracking.
|
|
149
|
+
*
|
|
150
|
+
* @param fn - The function to make trackable
|
|
151
|
+
* @param options - Options for tracking
|
|
152
|
+
* @returns A tracked version of the function
|
|
153
|
+
*/
|
|
154
|
+
createTrackable(fn, options) {
|
|
155
|
+
return this._executionTracker.createTrackable(fn, options);
|
|
156
|
+
}
|
|
145
157
|
/**
|
|
146
158
|
* Internal method to log a message
|
|
147
159
|
*
|
package/dist/core/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}
|