traceperf 0.2.1 → 1.3.0
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 +608 -253
- package/dist/__tests__/helpers/console.d.ts +9 -0
- package/dist/__tests__/helpers/console.js +25 -0
- package/dist/__tests__/helpers/console.js.map +1 -0
- package/dist/auto.d.ts +30 -0
- package/dist/auto.js +91 -0
- package/dist/auto.js.map +1 -0
- package/dist/browser.d.ts +52 -144
- package/dist/browser.js +112 -439
- package/dist/browser.js.map +1 -1
- package/dist/cli.d.ts +68 -0
- package/dist/cli.js +528 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/allocations.d.ts +38 -0
- package/dist/core/allocations.js +85 -0
- package/dist/core/allocations.js.map +1 -0
- package/dist/core/cpu-profile.d.ts +84 -0
- package/dist/core/cpu-profile.js +181 -0
- package/dist/core/cpu-profile.js.map +1 -0
- package/dist/core/env.d.ts +10 -0
- package/dist/core/env.js +40 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/event-loop.d.ts +30 -0
- package/dist/core/event-loop.js +43 -0
- package/dist/core/event-loop.js.map +1 -0
- package/dist/core/explain.d.ts +48 -0
- package/dist/core/explain.js +236 -0
- package/dist/core/explain.js.map +1 -0
- package/dist/core/exporters.d.ts +111 -0
- package/dist/core/exporters.js +236 -0
- package/dist/core/exporters.js.map +1 -0
- package/dist/core/index.d.ts +9 -3
- package/dist/core/index.js +9 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/optimized-performance-monitor.d.ts +180 -26
- package/dist/core/optimized-performance-monitor.js +687 -175
- package/dist/core/optimized-performance-monitor.js.map +1 -1
- package/dist/core/prometheus.d.ts +36 -0
- package/dist/core/prometheus.js +93 -0
- package/dist/core/prometheus.js.map +1 -0
- package/dist/core/records.d.ts +97 -0
- package/dist/core/records.js +87 -0
- package/dist/core/records.js.map +1 -0
- package/dist/core/stats.d.ts +45 -0
- package/dist/core/stats.js +136 -0
- package/dist/core/stats.js.map +1 -0
- package/dist/core/timeline.d.ts +28 -0
- package/dist/core/timeline.js +65 -0
- package/dist/core/timeline.js.map +1 -0
- package/dist/drivers.d.ts +51 -0
- package/dist/drivers.js +205 -0
- package/dist/drivers.js.map +1 -0
- package/dist/esm/auto.d.ts +30 -0
- package/dist/esm/auto.js +87 -0
- package/dist/esm/auto.js.map +1 -0
- package/dist/esm/browser.d.ts +52 -144
- package/dist/esm/browser.js +101 -445
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/cli.d.ts +68 -0
- package/dist/esm/cli.js +520 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/core/allocations.d.ts +38 -0
- package/dist/esm/core/allocations.js +82 -0
- package/dist/esm/core/allocations.js.map +1 -0
- package/dist/esm/core/cpu-profile.d.ts +84 -0
- package/dist/esm/core/cpu-profile.js +176 -0
- package/dist/esm/core/cpu-profile.js.map +1 -0
- package/dist/esm/core/env.d.ts +10 -0
- package/dist/esm/core/env.js +35 -0
- package/dist/esm/core/env.js.map +1 -0
- package/dist/esm/core/event-loop.d.ts +30 -0
- package/dist/esm/core/event-loop.js +40 -0
- package/dist/esm/core/event-loop.js.map +1 -0
- package/dist/esm/core/explain.d.ts +48 -0
- package/dist/esm/core/explain.js +232 -0
- package/dist/esm/core/explain.js.map +1 -0
- package/dist/esm/core/exporters.d.ts +111 -0
- package/dist/esm/core/exporters.js +229 -0
- package/dist/esm/core/exporters.js.map +1 -0
- package/dist/esm/core/index.d.ts +10 -4
- package/dist/esm/core/index.js +10 -4
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/optimized-performance-monitor.d.ts +180 -26
- package/dist/esm/core/optimized-performance-monitor.js +685 -173
- package/dist/esm/core/optimized-performance-monitor.js.map +1 -1
- package/dist/esm/core/prometheus.d.ts +36 -0
- package/dist/esm/core/prometheus.js +89 -0
- package/dist/esm/core/prometheus.js.map +1 -0
- package/dist/esm/core/records.d.ts +97 -0
- package/dist/esm/core/records.js +82 -0
- package/dist/esm/core/records.js.map +1 -0
- package/dist/esm/core/stats.d.ts +45 -0
- package/dist/esm/core/stats.js +131 -0
- package/dist/esm/core/stats.js.map +1 -0
- package/dist/esm/core/timeline.d.ts +28 -0
- package/dist/esm/core/timeline.js +62 -0
- package/dist/esm/core/timeline.js.map +1 -0
- package/dist/esm/drivers.d.ts +51 -0
- package/dist/esm/drivers.js +197 -0
- package/dist/esm/drivers.js.map +1 -0
- package/dist/esm/index.d.ts +13 -5
- package/dist/esm/index.js +21 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instrument.d.ts +88 -0
- package/dist/esm/instrument.js +274 -0
- package/dist/esm/instrument.js.map +1 -0
- package/dist/esm/integrations.d.ts +70 -0
- package/dist/esm/integrations.js +197 -0
- package/dist/esm/integrations.js.map +1 -0
- package/dist/esm/node-builtins.d.ts +1 -0
- package/dist/esm/node-builtins.js +32 -0
- package/dist/esm/node-builtins.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/register.d.ts +20 -0
- package/dist/esm/register.js +98 -0
- package/dist/esm/register.js.map +1 -0
- package/dist/esm/report-html.d.ts +11 -0
- package/dist/esm/report-html.js +106 -0
- package/dist/esm/report-html.js.map +1 -0
- package/dist/esm/types/index.d.ts +4 -80
- package/dist/esm/types/index.js +1 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/options.d.ts +72 -0
- package/dist/esm/types/options.js +2 -0
- package/dist/esm/types/options.js.map +1 -0
- package/dist/esm/watch.d.ts +17 -0
- package/dist/esm/watch.js +87 -0
- package/dist/esm/watch.js.map +1 -0
- package/dist/index.d.ts +10 -2
- package/dist/index.js +26 -29
- package/dist/index.js.map +1 -1
- package/dist/instrument.d.ts +88 -0
- package/dist/instrument.js +282 -0
- package/dist/instrument.js.map +1 -0
- package/dist/integrations.d.ts +70 -0
- package/dist/integrations.js +205 -0
- package/dist/integrations.js.map +1 -0
- package/dist/node-builtins.d.ts +1 -0
- package/dist/node-builtins.js +67 -0
- package/dist/node-builtins.js.map +1 -0
- package/dist/register.d.ts +20 -0
- package/dist/register.js +103 -0
- package/dist/register.js.map +1 -0
- package/dist/report-html.d.ts +11 -0
- package/dist/report-html.js +109 -0
- package/dist/report-html.js.map +1 -0
- package/dist/traceperf.browser.js +1910 -0
- package/dist/traceperf.browser.min.js +6 -0
- package/dist/types/index.d.ts +4 -80
- package/dist/types/index.js +1 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +72 -0
- package/dist/types/{config.js → options.js} +1 -1
- package/dist/types/options.js.map +1 -0
- package/dist/watch.d.ts +17 -0
- package/dist/watch.js +90 -0
- package/dist/watch.js.map +1 -0
- package/package.json +99 -19
- package/dist/core/config.d.ts +0 -77
- package/dist/core/config.js +0 -116
- package/dist/core/config.js.map +0 -1
- package/dist/core/constants.d.ts +0 -78
- package/dist/core/constants.js +0 -109
- package/dist/core/constants.js.map +0 -1
- package/dist/core/logger.d.ts +0 -97
- package/dist/core/logger.js +0 -186
- package/dist/core/logger.js.map +0 -1
- package/dist/esm/core/config.d.ts +0 -77
- package/dist/esm/core/config.js +0 -112
- package/dist/esm/core/config.js.map +0 -1
- package/dist/esm/core/constants.d.ts +0 -78
- package/dist/esm/core/constants.js +0 -106
- package/dist/esm/core/constants.js.map +0 -1
- package/dist/esm/core/logger.d.ts +0 -97
- package/dist/esm/core/logger.js +0 -182
- package/dist/esm/core/logger.js.map +0 -1
- package/dist/esm/formatters/ascii.d.ts +0 -52
- package/dist/esm/formatters/ascii.js +0 -100
- package/dist/esm/formatters/ascii.js.map +0 -1
- package/dist/esm/formatters/cli.d.ts +0 -50
- package/dist/esm/formatters/cli.js +0 -96
- package/dist/esm/formatters/cli.js.map +0 -1
- package/dist/esm/formatters/index.d.ts +0 -3
- package/dist/esm/formatters/index.js +0 -4
- package/dist/esm/formatters/index.js.map +0 -1
- package/dist/esm/formatters/json.d.ts +0 -45
- package/dist/esm/formatters/json.js +0 -85
- package/dist/esm/formatters/json.js.map +0 -1
- package/dist/esm/trackers/execution.d.ts +0 -101
- package/dist/esm/trackers/execution.js +0 -226
- package/dist/esm/trackers/execution.js.map +0 -1
- package/dist/esm/trackers/index.d.ts +0 -2
- package/dist/esm/trackers/index.js +0 -3
- package/dist/esm/trackers/index.js.map +0 -1
- package/dist/esm/trackers/performance.d.ts +0 -68
- package/dist/esm/trackers/performance.js +0 -112
- package/dist/esm/trackers/performance.js.map +0 -1
- package/dist/esm/types/config.d.ts +0 -142
- package/dist/esm/types/config.js +0 -2
- package/dist/esm/types/config.js.map +0 -1
- package/dist/esm/types/logger.d.ts +0 -147
- package/dist/esm/types/logger.js +0 -2
- package/dist/esm/types/logger.js.map +0 -1
- package/dist/esm/utils/colors.d.ts +0 -87
- package/dist/esm/utils/colors.js +0 -146
- package/dist/esm/utils/colors.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -3
- package/dist/esm/utils/index.js +0 -4
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/proxy-tracker.d.ts +0 -68
- package/dist/esm/utils/proxy-tracker.js +0 -127
- package/dist/esm/utils/proxy-tracker.js.map +0 -1
- package/dist/esm/utils/stack.d.ts +0 -63
- package/dist/esm/utils/stack.js +0 -110
- package/dist/esm/utils/stack.js.map +0 -1
- package/dist/esm/utils/string.d.ts +0 -29
- package/dist/esm/utils/string.js +0 -45
- package/dist/esm/utils/string.js.map +0 -1
- package/dist/esm/utils/timing.d.ts +0 -65
- package/dist/esm/utils/timing.js +0 -99
- package/dist/esm/utils/timing.js.map +0 -1
- package/dist/formatters/ascii.d.ts +0 -52
- package/dist/formatters/ascii.js +0 -104
- package/dist/formatters/ascii.js.map +0 -1
- package/dist/formatters/cli.d.ts +0 -50
- package/dist/formatters/cli.js +0 -100
- package/dist/formatters/cli.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -3
- package/dist/formatters/index.js +0 -20
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/json.d.ts +0 -45
- package/dist/formatters/json.js +0 -89
- package/dist/formatters/json.js.map +0 -1
- package/dist/trackers/execution.d.ts +0 -101
- package/dist/trackers/execution.js +0 -230
- package/dist/trackers/execution.js.map +0 -1
- package/dist/trackers/index.d.ts +0 -2
- package/dist/trackers/index.js +0 -19
- package/dist/trackers/index.js.map +0 -1
- package/dist/trackers/performance.d.ts +0 -68
- package/dist/trackers/performance.js +0 -116
- package/dist/trackers/performance.js.map +0 -1
- package/dist/types/config.d.ts +0 -142
- package/dist/types/config.js.map +0 -1
- package/dist/types/logger.d.ts +0 -147
- package/dist/types/logger.js +0 -3
- package/dist/types/logger.js.map +0 -1
- package/dist/types.d.ts +0 -65
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -87
- package/dist/utils/colors.js +0 -160
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.js +0 -20
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/proxy-tracker.d.ts +0 -68
- package/dist/utils/proxy-tracker.js +0 -131
- package/dist/utils/proxy-tracker.js.map +0 -1
- package/dist/utils/stack.d.ts +0 -63
- package/dist/utils/stack.js +0 -116
- package/dist/utils/stack.js.map +0 -1
- package/dist/utils/string.d.ts +0 -29
- package/dist/utils/string.js +0 -50
- package/dist/utils/string.js.map +0 -1
- package/dist/utils/timing.d.ts +0 -65
- package/dist/utils/timing.js +0 -106
- package/dist/utils/timing.js.map +0 -1
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { getFunctionName } from '../utils/stack';
|
|
2
|
-
import { getHighResTime, getDuration } from '../utils/timing';
|
|
3
|
-
/**
|
|
4
|
-
* Execution tracker for performance monitoring
|
|
5
|
-
*/
|
|
6
|
-
export class ExecutionTracker {
|
|
7
|
-
/**
|
|
8
|
-
* Constructor
|
|
9
|
-
*
|
|
10
|
-
* @param options - Options for execution tracking
|
|
11
|
-
*/
|
|
12
|
-
constructor(options = {}) {
|
|
13
|
-
var _a;
|
|
14
|
-
this._executions = [];
|
|
15
|
-
this._currentExecution = null;
|
|
16
|
-
this._callStack = [];
|
|
17
|
-
this._trackedFunctions = new Map();
|
|
18
|
-
this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
|
|
19
|
-
// Get a reference to the global scope (works in both Node.js and browsers)
|
|
20
|
-
this._globalScope = typeof window !== 'undefined' ? window :
|
|
21
|
-
typeof global !== 'undefined' ? global :
|
|
22
|
-
{};
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Track the execution of a function
|
|
26
|
-
*
|
|
27
|
-
* @param fn - The function to track
|
|
28
|
-
* @param options - Options for tracking
|
|
29
|
-
* @returns The return value of the tracked function
|
|
30
|
-
*/
|
|
31
|
-
track(fn, options) {
|
|
32
|
-
var _a, _b, _c;
|
|
33
|
-
const fnName = (options === null || options === void 0 ? void 0 : options.label) || getFunctionName(fn);
|
|
34
|
-
const threshold = (_a = options === null || options === void 0 ? void 0 : options.threshold) !== null && _a !== void 0 ? _a : this._defaultThreshold;
|
|
35
|
-
const includeMemory = (_b = options === null || options === void 0 ? void 0 : options.trackMemory) !== null && _b !== void 0 ? _b : true;
|
|
36
|
-
const enableNestedTracking = (_c = options === null || options === void 0 ? void 0 : options.enableNestedTracking) !== null && _c !== void 0 ? _c : true;
|
|
37
|
-
// Get memory usage before execution
|
|
38
|
-
let startMemory;
|
|
39
|
-
if (includeMemory) {
|
|
40
|
-
try {
|
|
41
|
-
startMemory = process.memoryUsage();
|
|
42
|
-
}
|
|
43
|
-
catch (e) {
|
|
44
|
-
console.warn('Unable to track memory usage:', e);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
// Start timing
|
|
48
|
-
const startTime = getHighResTime();
|
|
49
|
-
// Add to call stack
|
|
50
|
-
const level = this._callStack.push(fnName);
|
|
51
|
-
// Create execution record
|
|
52
|
-
const execution = {
|
|
53
|
-
name: fnName,
|
|
54
|
-
duration: 0,
|
|
55
|
-
isSlow: false,
|
|
56
|
-
level: level - 1, // 0-based level
|
|
57
|
-
startTime,
|
|
58
|
-
children: [],
|
|
59
|
-
};
|
|
60
|
-
// Set parent-child relationship
|
|
61
|
-
if (this._currentExecution && enableNestedTracking) {
|
|
62
|
-
execution.parent = this._currentExecution;
|
|
63
|
-
this._currentExecution.children.push(execution);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
// This is a root execution
|
|
67
|
-
this._executions.push(execution);
|
|
68
|
-
}
|
|
69
|
-
// Save the previous current execution
|
|
70
|
-
const previousExecution = this._currentExecution;
|
|
71
|
-
// Set this as the current execution
|
|
72
|
-
this._currentExecution = execution;
|
|
73
|
-
try {
|
|
74
|
-
// Execute the function
|
|
75
|
-
return fn();
|
|
76
|
-
}
|
|
77
|
-
finally {
|
|
78
|
-
// End timing
|
|
79
|
-
const endTime = getHighResTime();
|
|
80
|
-
execution.endTime = endTime;
|
|
81
|
-
// Calculate duration
|
|
82
|
-
execution.duration = getDuration(startTime);
|
|
83
|
-
// Check if it's a bottleneck
|
|
84
|
-
execution.isSlow = execution.duration > threshold;
|
|
85
|
-
// Calculate memory usage
|
|
86
|
-
if (includeMemory && startMemory !== undefined) {
|
|
87
|
-
try {
|
|
88
|
-
const endMemory = process.memoryUsage();
|
|
89
|
-
// Calculate the memory difference, ensuring it's never negative
|
|
90
|
-
const memoryDiff = endMemory.heapUsed - startMemory.heapUsed;
|
|
91
|
-
execution.memoryUsage = Math.max(0, memoryDiff); // Ensure non-negative value
|
|
92
|
-
// If memory decreased, store a separate field for better visualization
|
|
93
|
-
if (memoryDiff < 0) {
|
|
94
|
-
execution.memoryReleased = Math.abs(memoryDiff);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
console.warn('Error calculating memory usage:', e);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// Restore the previous current execution
|
|
102
|
-
this._currentExecution = previousExecution;
|
|
103
|
-
// Remove from call stack
|
|
104
|
-
this._callStack.pop();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Create a trackable version of a function
|
|
109
|
-
*
|
|
110
|
-
* This is a helper method to create a tracked version of a function
|
|
111
|
-
* that can be used for nested function tracking.
|
|
112
|
-
*
|
|
113
|
-
* @param fn - The function to make trackable
|
|
114
|
-
* @param options - Options for tracking
|
|
115
|
-
* @returns A tracked version of the function
|
|
116
|
-
*/
|
|
117
|
-
createTrackable(fn, options) {
|
|
118
|
-
const fnName = (options === null || options === void 0 ? void 0 : options.label) || fn.name || 'anonymous';
|
|
119
|
-
// Create a tracked version of the function using arrow function to preserve 'this'
|
|
120
|
-
const trackedFn = (...args) => {
|
|
121
|
-
return this.track(() => fn.apply(this, args), {
|
|
122
|
-
...options,
|
|
123
|
-
label: fnName
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
// Store the original and tracked function
|
|
127
|
-
this._trackedFunctions.set(fn, trackedFn);
|
|
128
|
-
return trackedFn;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Get all execution records
|
|
132
|
-
*
|
|
133
|
-
* @returns A list of execution records
|
|
134
|
-
*/
|
|
135
|
-
getExecutions() {
|
|
136
|
-
return [...this._executions];
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Generate a human-friendly memory size string
|
|
140
|
-
*
|
|
141
|
-
* @param bytes - The size in bytes
|
|
142
|
-
* @returns A formatted string
|
|
143
|
-
*/
|
|
144
|
-
formatMemorySize(bytes) {
|
|
145
|
-
if (bytes < 1024) {
|
|
146
|
-
return `${bytes.toFixed(2)}B`;
|
|
147
|
-
}
|
|
148
|
-
else if (bytes < 1024 * 1024) {
|
|
149
|
-
return `${(bytes / 1024).toFixed(2)}KB`;
|
|
150
|
-
}
|
|
151
|
-
else if (bytes < 1024 * 1024 * 1024) {
|
|
152
|
-
return `${(bytes / (1024 * 1024)).toFixed(2)}MB`;
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)}GB`;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Get the current call stack
|
|
160
|
-
*
|
|
161
|
-
* @returns The current call stack
|
|
162
|
-
*/
|
|
163
|
-
getCallStack() {
|
|
164
|
-
return [...this._callStack];
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Generate a visual representation of the execution flow
|
|
168
|
-
*
|
|
169
|
-
* @returns ASCII flow chart of the execution
|
|
170
|
-
*/
|
|
171
|
-
generateFlowChart() {
|
|
172
|
-
let result = '';
|
|
173
|
-
// Process each execution
|
|
174
|
-
this._executions.forEach(execution => {
|
|
175
|
-
result = this.printExecutionTree(execution, result);
|
|
176
|
-
});
|
|
177
|
-
return result;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Recursively print an execution tree
|
|
181
|
-
*
|
|
182
|
-
* @param execution - The root execution
|
|
183
|
-
* @param result - The output string
|
|
184
|
-
* @returns The updated result string
|
|
185
|
-
*/
|
|
186
|
-
printExecutionTree(execution, result) {
|
|
187
|
-
// Print this execution
|
|
188
|
-
result = this.printSingleExecution(execution, result);
|
|
189
|
-
// Print children recursively
|
|
190
|
-
execution.children.forEach(child => {
|
|
191
|
-
result = this.printExecutionTree(child, result);
|
|
192
|
-
});
|
|
193
|
-
return result;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Print a single execution with appropriate formatting
|
|
197
|
-
*
|
|
198
|
-
* @param execution - The execution to print
|
|
199
|
-
* @param result - The result string to append to
|
|
200
|
-
* @returns The updated result string
|
|
201
|
-
*/
|
|
202
|
-
printSingleExecution(execution, result) {
|
|
203
|
-
const indent = ' '.repeat(execution.level);
|
|
204
|
-
const durationStr = execution.duration.toFixed(2);
|
|
205
|
-
const slowMarker = execution.isSlow ? ' [SLOW]' : '';
|
|
206
|
-
let memoryStr = '';
|
|
207
|
-
if (execution.memoryUsage !== undefined) {
|
|
208
|
-
memoryStr = ` [${this.formatMemorySize(execution.memoryUsage)}]`;
|
|
209
|
-
}
|
|
210
|
-
result += `${indent}→ ${execution.name} (${durationStr}ms)${slowMarker}${memoryStr}\n`;
|
|
211
|
-
// Add connector if this execution has children
|
|
212
|
-
if (execution.children.length > 0) {
|
|
213
|
-
result += `${indent} |\n`;
|
|
214
|
-
}
|
|
215
|
-
return result;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Clear all execution records
|
|
219
|
-
*/
|
|
220
|
-
clear() {
|
|
221
|
-
this._executions = [];
|
|
222
|
-
this._currentExecution = null;
|
|
223
|
-
this._callStack = [];
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
//# sourceMappingURL=execution.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/trackers/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAkB9E;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAQ3B;;;;OAIG;IACH,YAAY,UAAyC,EAAE;;QAZ/C,gBAAW,GAAsB,EAAE,CAAC;QACpC,sBAAiB,GAA2B,IAAI,CAAC;QAEjD,eAAU,GAAa,EAAE,CAAC;QAE1B,sBAAiB,GAA4B,IAAI,GAAG,EAAE,CAAC;QAQ7D,IAAI,CAAC,iBAAiB,GAAG,MAAA,OAAO,CAAC,gBAAgB,mCAAI,GAAG,CAAC,CAAC,KAAK;QAE/D,2EAA2E;QAC3E,IAAI,CAAC,YAAY,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAE,MAAyC,CAAC,CAAC;gBAC5E,EAAyB,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAI,EAAW,EAAE,OAAuB;;QAClD,MAAM,MAAM,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,IAAI,CAAC,iBAAiB,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,IAAI,CAAC;QACnD,MAAM,oBAAoB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,mCAAI,IAAI,CAAC;QAEnE,oCAAoC;QACpC,IAAI,WAA+F,CAAC;QACpG,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,eAAe;QACf,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;QAEnC,oBAAoB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE3C,0BAA0B;QAC1B,MAAM,SAAS,GAAoB;YACjC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,gBAAgB;YAClC,SAAS;YACT,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,gCAAgC;QAChC,IAAI,IAAI,CAAC,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;YACnD,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QAED,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEjD,oCAAoC;QACpC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEnC,IAAI,CAAC;YACH,uBAAuB;YACvB,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,aAAa;YACb,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;YAE5B,qBAAqB;YACrB,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YAE5C,6BAA6B;YAC7B,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC;YAElD,yBAAyB;YACzB,IAAI,aAAa,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;oBACxC,gEAAgE;oBAChE,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;oBAC7D,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,4BAA4B;oBAE7E,uEAAuE;oBACvE,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;wBACnB,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAE3C,yBAAyB;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACI,eAAe,CACpB,EAAK,EACL,OAA2D;QAE3D,MAAM,MAAM,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,EAAE,CAAC,IAAI,IAAI,WAAW,CAAC;QAExD,mFAAmF;QACnF,MAAM,SAAS,GAAG,CAAC,GAAG,IAAmB,EAAiB,EAAE;YAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC5C,GAAG,OAAO;gBACV,KAAK,EAAE,MAAM;aACd,CAAkB,CAAC;QACtB,CAAC,CAAC;QAEF,0CAA0C;QAC1C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAgC,CAAC,CAAC;QAEjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,aAAa;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,KAAa;QACnC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;aAAM,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,iBAAiB;QACtB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,yBAAyB;QACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACnC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACK,kBAAkB,CAAC,SAA0B,EAAE,MAAc;QACnE,uBAAuB;QACvB,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAEtD,6BAA6B;QAC7B,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACK,oBAAoB,CAAC,SAA0B,EAAE,MAAc;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAErD,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACxC,SAAS,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,IAAI,KAAK,WAAW,MAAM,UAAU,GAAG,SAAS,IAAI,CAAC;QAEvF,+CAA+C;QAC/C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/trackers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { IPerformanceMonitor } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Performance monitor for tracking execution times and memory usage
|
|
4
|
-
*/
|
|
5
|
-
export declare class PerformanceMonitor implements IPerformanceMonitor {
|
|
6
|
-
private _timers;
|
|
7
|
-
private _defaultThreshold;
|
|
8
|
-
/**
|
|
9
|
-
* Create a new PerformanceMonitor instance
|
|
10
|
-
*
|
|
11
|
-
* @param options - Monitor options
|
|
12
|
-
*/
|
|
13
|
-
constructor(options?: {
|
|
14
|
-
defaultThreshold?: number;
|
|
15
|
-
});
|
|
16
|
-
/**
|
|
17
|
-
* Start timing an operation
|
|
18
|
-
*
|
|
19
|
-
* @param label - Label for the operation
|
|
20
|
-
* @returns A unique identifier for the timing operation
|
|
21
|
-
*/
|
|
22
|
-
startTimer(label: string): string;
|
|
23
|
-
/**
|
|
24
|
-
* End timing an operation
|
|
25
|
-
*
|
|
26
|
-
* @param id - The identifier returned by startTimer
|
|
27
|
-
* @returns The duration in milliseconds
|
|
28
|
-
* @throws Error if the timer doesn't exist
|
|
29
|
-
*/
|
|
30
|
-
endTimer(id: string): number;
|
|
31
|
-
/**
|
|
32
|
-
* Check if an operation exceeds the performance threshold
|
|
33
|
-
*
|
|
34
|
-
* @param duration - The duration in milliseconds
|
|
35
|
-
* @param threshold - The threshold to check against
|
|
36
|
-
* @returns Whether the operation is considered slow
|
|
37
|
-
*/
|
|
38
|
-
isBottleneck(duration: number, threshold?: number): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Get memory usage information
|
|
41
|
-
*
|
|
42
|
-
* @returns Memory usage object
|
|
43
|
-
*/
|
|
44
|
-
getMemoryUsage(): {
|
|
45
|
-
heapUsed: number;
|
|
46
|
-
heapTotal: number;
|
|
47
|
-
external: number;
|
|
48
|
-
rss: number;
|
|
49
|
-
} | undefined;
|
|
50
|
-
/**
|
|
51
|
-
* Calculate memory difference between current and start memory
|
|
52
|
-
*
|
|
53
|
-
* @param start - Starting memory usage snapshot
|
|
54
|
-
* @returns Memory difference or undefined
|
|
55
|
-
*/
|
|
56
|
-
getMemoryDiff(start: {
|
|
57
|
-
heapUsed: number;
|
|
58
|
-
}): number;
|
|
59
|
-
/**
|
|
60
|
-
* Generate a suggestion for a bottleneck
|
|
61
|
-
*
|
|
62
|
-
* @param functionName - The name of the function
|
|
63
|
-
* @param duration - The duration in milliseconds
|
|
64
|
-
* @param memoryUsage - Memory usage in bytes
|
|
65
|
-
* @returns A suggestion for improving performance
|
|
66
|
-
*/
|
|
67
|
-
generateSuggestion(functionName: string, duration: number, memoryUsage?: number): string;
|
|
68
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { getHighResTime, getDuration } from '../utils/timing';
|
|
2
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
-
/**
|
|
4
|
-
* Performance monitor for tracking execution times and memory usage
|
|
5
|
-
*/
|
|
6
|
-
export class PerformanceMonitor {
|
|
7
|
-
/**
|
|
8
|
-
* Create a new PerformanceMonitor instance
|
|
9
|
-
*
|
|
10
|
-
* @param options - Monitor options
|
|
11
|
-
*/
|
|
12
|
-
constructor(options = {}) {
|
|
13
|
-
var _a;
|
|
14
|
-
this._timers = new Map();
|
|
15
|
-
this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Start timing an operation
|
|
19
|
-
*
|
|
20
|
-
* @param label - Label for the operation
|
|
21
|
-
* @returns A unique identifier for the timing operation
|
|
22
|
-
*/
|
|
23
|
-
startTimer(label) {
|
|
24
|
-
const id = `${label}-${uuidv4()}`;
|
|
25
|
-
this._timers.set(id, getHighResTime());
|
|
26
|
-
return id;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* End timing an operation
|
|
30
|
-
*
|
|
31
|
-
* @param id - The identifier returned by startTimer
|
|
32
|
-
* @returns The duration in milliseconds
|
|
33
|
-
* @throws Error if the timer doesn't exist
|
|
34
|
-
*/
|
|
35
|
-
endTimer(id) {
|
|
36
|
-
const startTime = this._timers.get(id);
|
|
37
|
-
if (!startTime) {
|
|
38
|
-
throw new Error(`Timer with id ${id} not found`);
|
|
39
|
-
}
|
|
40
|
-
const duration = getDuration(startTime);
|
|
41
|
-
this._timers.delete(id);
|
|
42
|
-
return duration;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Check if an operation exceeds the performance threshold
|
|
46
|
-
*
|
|
47
|
-
* @param duration - The duration in milliseconds
|
|
48
|
-
* @param threshold - The threshold to check against
|
|
49
|
-
* @returns Whether the operation is considered slow
|
|
50
|
-
*/
|
|
51
|
-
isBottleneck(duration, threshold) {
|
|
52
|
-
const effectiveThreshold = threshold !== null && threshold !== void 0 ? threshold : this._defaultThreshold;
|
|
53
|
-
return duration > effectiveThreshold;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get memory usage information
|
|
57
|
-
*
|
|
58
|
-
* @returns Memory usage object
|
|
59
|
-
*/
|
|
60
|
-
getMemoryUsage() {
|
|
61
|
-
try {
|
|
62
|
-
return process.memoryUsage();
|
|
63
|
-
}
|
|
64
|
-
catch (e) {
|
|
65
|
-
console.warn('Unable to track memory usage:', e);
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Calculate memory difference between current and start memory
|
|
71
|
-
*
|
|
72
|
-
* @param start - Starting memory usage snapshot
|
|
73
|
-
* @returns Memory difference or undefined
|
|
74
|
-
*/
|
|
75
|
-
getMemoryDiff(start) {
|
|
76
|
-
try {
|
|
77
|
-
const current = this.getMemoryUsage();
|
|
78
|
-
if (!current)
|
|
79
|
-
return 0;
|
|
80
|
-
const diff = current.heapUsed - start.heapUsed;
|
|
81
|
-
// Return zero instead of negative values
|
|
82
|
-
// Negative values usually indicate garbage collection, not actual memory release
|
|
83
|
-
return Math.max(0, diff);
|
|
84
|
-
}
|
|
85
|
-
catch (e) {
|
|
86
|
-
console.warn('Error calculating memory usage:', e);
|
|
87
|
-
return 0;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Generate a suggestion for a bottleneck
|
|
92
|
-
*
|
|
93
|
-
* @param functionName - The name of the function
|
|
94
|
-
* @param duration - The duration in milliseconds
|
|
95
|
-
* @param memoryUsage - Memory usage in bytes
|
|
96
|
-
* @returns A suggestion for improving performance
|
|
97
|
-
*/
|
|
98
|
-
generateSuggestion(functionName, duration, memoryUsage) {
|
|
99
|
-
// Simple heuristic-based suggestions
|
|
100
|
-
if (memoryUsage && memoryUsage > 10 * 1024 * 1024) {
|
|
101
|
-
return `🛠 Potential Fix: Check for memory leaks or large object allocations in ${functionName}`;
|
|
102
|
-
}
|
|
103
|
-
if (duration > 1000) {
|
|
104
|
-
return `🛠 Potential Fix: Consider optimizing or adding caching to ${functionName}`;
|
|
105
|
-
}
|
|
106
|
-
if (duration > 500) {
|
|
107
|
-
return `🛠 Potential Fix: Look for blocking operations in ${functionName}`;
|
|
108
|
-
}
|
|
109
|
-
return `🛠 Potential Fix: Review ${functionName} for performance optimizations`;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=performance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../src/trackers/performance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAI7B;;;;OAIG;IACH,YAAY,UAAyC,EAAE;;QAR/C,YAAO,GAAkC,IAAI,GAAG,EAAE,CAAC;QASzD,IAAI,CAAC,iBAAiB,GAAG,MAAA,OAAO,CAAC,gBAAgB,mCAAI,GAAG,CAAC,CAAC,KAAK;IACjE,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,KAAa;QAC7B,MAAM,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAC,EAAU;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAAC,QAAgB,EAAE,SAAkB;QACtD,MAAM,kBAAkB,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,iBAAiB,CAAC;QAC/D,OAAO,QAAQ,GAAG,kBAAkB,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACI,cAAc;QACnB,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,aAAa,CAAC,KAA2B;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAC;YAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAE/C,yCAAyC;YACzC,iFAAiF;YACjF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,kBAAkB,CACvB,YAAoB,EACpB,QAAgB,EAChB,WAAoB;QAEpB,qCAAqC;QACrC,IAAI,WAAW,IAAI,WAAW,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YAClD,OAAO,2EAA2E,YAAY,EAAE,CAAC;QACnG,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;YACpB,OAAO,8DAA8D,YAAY,EAAE,CAAC;QACtF,CAAC;QAED,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACnB,OAAO,qDAAqD,YAAY,EAAE,CAAC;QAC7E,CAAC;QAED,OAAO,4BAA4B,YAAY,gCAAgC,CAAC;IAClF,CAAC;CACF"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LogLevel - Defines the severity levels for logging
|
|
3
|
-
*/
|
|
4
|
-
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
5
|
-
/**
|
|
6
|
-
* LogMode - Defines the operational modes for the logger
|
|
7
|
-
*/
|
|
8
|
-
export type LogMode = 'dev' | 'staging' | 'prod' | string;
|
|
9
|
-
/**
|
|
10
|
-
* Transport - Interface for log output destinations
|
|
11
|
-
*/
|
|
12
|
-
export interface ITransport {
|
|
13
|
-
/**
|
|
14
|
-
* Write a log entry to the destination
|
|
15
|
-
*
|
|
16
|
-
* @param entry - The formatted log entry to write
|
|
17
|
-
*/
|
|
18
|
-
write(entry: string): void;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Formatter - Interface for log formatters
|
|
22
|
-
*/
|
|
23
|
-
export interface IFormatter {
|
|
24
|
-
/**
|
|
25
|
-
* Format a log entry
|
|
26
|
-
*
|
|
27
|
-
* @param level - The log level
|
|
28
|
-
* @param message - The log message
|
|
29
|
-
* @param args - Additional arguments
|
|
30
|
-
* @param meta - Metadata for the log entry
|
|
31
|
-
* @returns The formatted log entry
|
|
32
|
-
*/
|
|
33
|
-
format(level: LogLevel, message: string | object, args: any[], meta: LogMeta): string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* LogMeta - Metadata for log entries
|
|
37
|
-
*/
|
|
38
|
-
export interface LogMeta {
|
|
39
|
-
timestamp: Date;
|
|
40
|
-
level: LogLevel;
|
|
41
|
-
indentLevel: number;
|
|
42
|
-
[key: string]: any;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* TrackOptions - Options for function execution tracking
|
|
46
|
-
*/
|
|
47
|
-
export interface ITrackOptions {
|
|
48
|
-
/**
|
|
49
|
-
* Custom label for the tracked function
|
|
50
|
-
*/
|
|
51
|
-
label?: string;
|
|
52
|
-
/**
|
|
53
|
-
* Performance threshold in milliseconds
|
|
54
|
-
* Functions exceeding this threshold will be flagged as bottlenecks
|
|
55
|
-
*/
|
|
56
|
-
threshold?: number;
|
|
57
|
-
/**
|
|
58
|
-
* Whether to track memory usage
|
|
59
|
-
*/
|
|
60
|
-
trackMemory?: boolean;
|
|
61
|
-
/**
|
|
62
|
-
* Whether to suppress logging for this tracking
|
|
63
|
-
*/
|
|
64
|
-
silent?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Whether to enable nested tracking
|
|
67
|
-
*
|
|
68
|
-
* When enabled, TracePerf will track nested function calls
|
|
69
|
-
* if they are also wrapped with track().
|
|
70
|
-
*
|
|
71
|
-
* @default true
|
|
72
|
-
*/
|
|
73
|
-
enableNestedTracking?: boolean;
|
|
74
|
-
/**
|
|
75
|
-
* Tracking mode to use for this function
|
|
76
|
-
* Controls the level of detail and performance impact
|
|
77
|
-
*/
|
|
78
|
-
trackingMode?: string;
|
|
79
|
-
/**
|
|
80
|
-
* Any other custom options
|
|
81
|
-
*/
|
|
82
|
-
[key: string]: any;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Logger configuration
|
|
86
|
-
*/
|
|
87
|
-
export interface ILoggerConfig {
|
|
88
|
-
/**
|
|
89
|
-
* Operational mode
|
|
90
|
-
*
|
|
91
|
-
* - dev: All logs are shown
|
|
92
|
-
* - staging: Only warn and error logs are shown
|
|
93
|
-
* - prod: Only error logs are shown
|
|
94
|
-
*/
|
|
95
|
-
mode: LogMode;
|
|
96
|
-
/**
|
|
97
|
-
* Minimum log level to show
|
|
98
|
-
*/
|
|
99
|
-
level: LogLevel;
|
|
100
|
-
/**
|
|
101
|
-
* Whether to colorize logs
|
|
102
|
-
*/
|
|
103
|
-
colorize: boolean;
|
|
104
|
-
/**
|
|
105
|
-
* Whether to include timestamps in logs
|
|
106
|
-
*/
|
|
107
|
-
timestamp: boolean;
|
|
108
|
-
/**
|
|
109
|
-
* Performance threshold in milliseconds
|
|
110
|
-
*
|
|
111
|
-
* Functions that take longer than this threshold will be marked as bottlenecks
|
|
112
|
-
*/
|
|
113
|
-
performanceThreshold: number;
|
|
114
|
-
/**
|
|
115
|
-
* Indentation size for nested logs
|
|
116
|
-
*/
|
|
117
|
-
indentSize: number;
|
|
118
|
-
/**
|
|
119
|
-
* Whether to automatically track nested function calls
|
|
120
|
-
*
|
|
121
|
-
* When enabled, TracePerf will automatically track nested function calls
|
|
122
|
-
* using a proxy-based approach.
|
|
123
|
-
*
|
|
124
|
-
* @default true
|
|
125
|
-
*/
|
|
126
|
-
autoTracking?: boolean;
|
|
127
|
-
/**
|
|
128
|
-
* Log output destinations
|
|
129
|
-
* @default [ConsoleTransport]
|
|
130
|
-
*/
|
|
131
|
-
transports?: ITransport[];
|
|
132
|
-
/**
|
|
133
|
-
* Log formatters
|
|
134
|
-
* @default [CliFormatter]
|
|
135
|
-
*/
|
|
136
|
-
formatters?: IFormatter[];
|
|
137
|
-
/**
|
|
138
|
-
* Tracking mode to use for performance monitoring
|
|
139
|
-
* Controls the level of detail and performance impact
|
|
140
|
-
*/
|
|
141
|
-
trackingMode?: string;
|
|
142
|
-
}
|
package/dist/esm/types/config.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":""}
|