sportident.js 1.3.4 → 1.5.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/SiCard/raceResultTools.js.map +1 -1
- package/SiCard/types/ModernSiCard.d.ts.map +1 -1
- package/SiCard/types/ModernSiCard.js +14 -4
- package/SiCard/types/ModernSiCard.js.map +1 -1
- package/SiCard/types/PCard.d.ts +17 -4
- package/SiCard/types/PCard.d.ts.map +1 -1
- package/SiCard/types/PCard.js +99 -5
- package/SiCard/types/PCard.js.map +1 -1
- package/SiCard/types/PCard.test.js +141 -3
- package/SiCard/types/PCard.test.js.map +1 -1
- package/SiCard/types/SiCard5.d.ts.map +1 -1
- package/SiCard/types/SiCard5.js +14 -1
- package/SiCard/types/SiCard5.js.map +1 -1
- package/SiCard/types/SiCard5.test.js +4 -4
- package/SiCard/types/SiCard5.test.js.map +1 -1
- package/SiCard/types/SiCard6.d.ts.map +1 -1
- package/SiCard/types/SiCard6.js +15 -4
- package/SiCard/types/SiCard6.js.map +1 -1
- package/SiCard/types/SiCard8.d.ts.map +1 -1
- package/SiCard/types/SiCard8.js +12 -3
- package/SiCard/types/SiCard8.js.map +1 -1
- package/SiCard/types/SiCard9.d.ts.map +1 -1
- package/SiCard/types/SiCard9.js +12 -3
- package/SiCard/types/SiCard9.js.map +1 -1
- package/SiCard/types/pCardExamples.d.ts +98 -0
- package/SiCard/types/pCardExamples.d.ts.map +1 -0
- package/SiCard/types/pCardExamples.js +178 -0
- package/SiCard/types/pCardExamples.js.map +1 -0
- package/SiDevice/SiDevice.d.ts +1 -0
- package/SiDevice/SiDevice.d.ts.map +1 -1
- package/SiDevice/SiDevice.js +10 -7
- package/SiDevice/SiDevice.js.map +1 -1
- package/SiDevice/WebSerialSiDeviceDriver.d.ts +1 -0
- package/SiDevice/WebSerialSiDeviceDriver.d.ts.map +1 -1
- package/SiDevice/WebSerialSiDeviceDriver.js +26 -25
- package/SiDevice/WebSerialSiDeviceDriver.js.map +1 -1
- package/SiDevice/WebUsbSiDeviceDriver.d.ts.map +1 -1
- package/SiDevice/WebUsbSiDeviceDriver.js +60 -56
- package/SiDevice/WebUsbSiDeviceDriver.js.map +1 -1
- package/SiStation/BaseSiStation.d.ts.map +1 -1
- package/SiStation/BaseSiStation.js +4 -2
- package/SiStation/BaseSiStation.js.map +1 -1
- package/SiStation/BaseSiStation.test.js +1 -1
- package/SiStation/BaseSiStation.test.js.map +1 -1
- package/SiStation/CoupledSiStation.d.ts.map +1 -1
- package/SiStation/CoupledSiStation.js +13 -11
- package/SiStation/CoupledSiStation.js.map +1 -1
- package/SiStation/SiMainStation.d.ts.map +1 -1
- package/SiStation/SiMainStation.js +5 -3
- package/SiStation/SiMainStation.js.map +1 -1
- package/SiStation/SiSendTask.d.ts.map +1 -1
- package/SiStation/SiSendTask.js +3 -1
- package/SiStation/SiSendTask.js.map +1 -1
- package/SiStation/SiTargetMultiplexer.d.ts.map +1 -1
- package/SiStation/SiTargetMultiplexer.js +11 -6
- package/SiStation/SiTargetMultiplexer.js.map +1 -1
- package/SiStation/SiTargetMultiplexer.targeting.test.js +37 -43
- package/SiStation/SiTargetMultiplexer.targeting.test.js.map +1 -1
- package/SiStation/SiTargetMultiplexer.test.js +3 -3
- package/SiStation/SiTargetMultiplexer.test.js.map +1 -1
- package/fakes/FakeSiCard/types/FakePCard.d.ts +12 -0
- package/fakes/FakeSiCard/types/FakePCard.d.ts.map +1 -0
- package/fakes/FakeSiCard/types/FakePCard.js +16 -0
- package/fakes/FakeSiCard/types/FakePCard.js.map +1 -0
- package/fakes/FakeSiDeviceDriver.d.ts.map +1 -1
- package/fakes/FakeSiDeviceDriver.js +1 -0
- package/fakes/FakeSiDeviceDriver.js.map +1 -1
- package/fakes/FakeSiMainStation.d.ts +1 -0
- package/fakes/FakeSiMainStation.d.ts.map +1 -1
- package/fakes/FakeSiMainStation.js +4 -1
- package/fakes/FakeSiMainStation.js.map +1 -1
- package/package.json +9 -4
- package/siProtocol.d.ts.map +1 -1
- package/siProtocol.js +7 -6
- package/siProtocol.js.map +1 -1
- package/siProtocol.test.d.ts.map +1 -1
- package/siProtocol.test.js +48 -5
- package/siProtocol.test.js.map +1 -1
- package/storage/SiDict.d.ts.map +1 -1
- package/storage/SiDict.js +0 -1
- package/storage/SiDict.js.map +1 -1
- package/storage/siStringEncoding.d.ts.map +1 -1
- package/storage/siStringEncoding.js +3 -1
- package/storage/siStringEncoding.js.map +1 -1
- package/testUtils.d.ts.map +1 -1
- package/testUtils.js +0 -1
- package/testUtils.js.map +1 -1
- package/utils/events.d.ts.map +1 -1
- package/utils/events.js +3 -2
- package/utils/events.js.map +1 -1
- package/utils/events.test.js +1 -0
- package/utils/events.test.js.map +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.d.ts.map +1 -1
- package/utils/index.js +1 -0
- package/utils/index.js.map +1 -1
- package/utils/logging.d.ts +48 -0
- package/utils/logging.d.ts.map +1 -0
- package/utils/logging.js +99 -0
- package/utils/logging.js.map +1 -0
- package/utils/logging.test.d.ts +2 -0
- package/utils/logging.test.d.ts.map +1 -0
- package/utils/logging.test.js +197 -0
- package/utils/logging.test.js.map +1 -0
- package/utils/mixins.js +1 -1
- package/utils/mixins.js.map +1 -1
- package/utils/mixins.test.js +1 -0
- package/utils/mixins.test.js.map +1 -1
package/utils/logging.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Simple, focused logging infrastructure for SportIdent.js
|
|
4
|
+
* Optimized for hardware interface debugging and protocol validation
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.parseLogLevel = exports.LoggerFactory = exports.Logger = exports.clearLoggers = exports.getDefaultLogLevel = exports.setDefaultLogLevel = exports.getLogger = exports.LogLevel = void 0;
|
|
8
|
+
var LogLevel;
|
|
9
|
+
(function (LogLevel) {
|
|
10
|
+
LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
|
|
11
|
+
LogLevel[LogLevel["WARN"] = 1] = "WARN";
|
|
12
|
+
LogLevel[LogLevel["INFO"] = 2] = "INFO";
|
|
13
|
+
LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
|
|
14
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Lightweight logger optimized for browser-based hardware debugging
|
|
17
|
+
*/
|
|
18
|
+
class Logger {
|
|
19
|
+
constructor(context, level = LogLevel.INFO) {
|
|
20
|
+
this.context = context;
|
|
21
|
+
this.level = level;
|
|
22
|
+
}
|
|
23
|
+
setLevel(level) {
|
|
24
|
+
this.level = level;
|
|
25
|
+
}
|
|
26
|
+
getLevel() {
|
|
27
|
+
return this.level;
|
|
28
|
+
}
|
|
29
|
+
error(message, ...args) {
|
|
30
|
+
if (this.level >= LogLevel.ERROR) {
|
|
31
|
+
// eslint-disable-next-line no-console
|
|
32
|
+
console.error(`[${this.context}] ${message}`, ...args);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
warn(message, ...args) {
|
|
36
|
+
if (this.level >= LogLevel.WARN) {
|
|
37
|
+
// eslint-disable-next-line no-console
|
|
38
|
+
console.warn(`[${this.context}] ${message}`, ...args);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
info(message, ...args) {
|
|
42
|
+
if (this.level >= LogLevel.INFO) {
|
|
43
|
+
// eslint-disable-next-line no-console
|
|
44
|
+
console.info(`[${this.context}] ${message}`, ...args);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
debug(message, ...args) {
|
|
48
|
+
if (this.level >= LogLevel.DEBUG) {
|
|
49
|
+
// eslint-disable-next-line no-console
|
|
50
|
+
console.debug(`[${this.context}] ${message}`, ...args);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.Logger = Logger;
|
|
55
|
+
// Global state for logger factory
|
|
56
|
+
let defaultLevel = LogLevel.INFO;
|
|
57
|
+
const loggers = new Map();
|
|
58
|
+
/**
|
|
59
|
+
* Simple factory for managing logger instances
|
|
60
|
+
*/
|
|
61
|
+
class LoggerFactory {
|
|
62
|
+
static setDefaultLevel(level) {
|
|
63
|
+
defaultLevel = level;
|
|
64
|
+
// Update existing loggers
|
|
65
|
+
for (const logger of loggers.values()) {
|
|
66
|
+
logger.setLevel(level);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
static getDefaultLevel() {
|
|
70
|
+
return defaultLevel;
|
|
71
|
+
}
|
|
72
|
+
static getLogger(context) {
|
|
73
|
+
if (!loggers.has(context)) {
|
|
74
|
+
loggers.set(context, new Logger(context, defaultLevel));
|
|
75
|
+
}
|
|
76
|
+
return loggers.get(context);
|
|
77
|
+
}
|
|
78
|
+
static clearLoggers() {
|
|
79
|
+
loggers.clear();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.LoggerFactory = LoggerFactory;
|
|
83
|
+
// Export convenience functions
|
|
84
|
+
exports.getLogger = LoggerFactory.getLogger;
|
|
85
|
+
exports.setDefaultLogLevel = LoggerFactory.setDefaultLevel;
|
|
86
|
+
exports.getDefaultLogLevel = LoggerFactory.getDefaultLevel;
|
|
87
|
+
exports.clearLoggers = LoggerFactory.clearLoggers;
|
|
88
|
+
// Utility functions for common patterns
|
|
89
|
+
const parseLogLevel = (value) => {
|
|
90
|
+
switch (value.toUpperCase()) {
|
|
91
|
+
case 'ERROR': return LogLevel.ERROR;
|
|
92
|
+
case 'WARN': return LogLevel.WARN;
|
|
93
|
+
case 'INFO': return LogLevel.INFO;
|
|
94
|
+
case 'DEBUG': return LogLevel.DEBUG;
|
|
95
|
+
default: return undefined;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
exports.parseLogLevel = parseLogLevel;
|
|
99
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.test.d.ts","sourceRoot":"","sources":["../../src/utils/logging.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const logging_1 = require("./logging");
|
|
4
|
+
/**
|
|
5
|
+
* Mock console for testing
|
|
6
|
+
*/
|
|
7
|
+
const createMockConsole = () => ({
|
|
8
|
+
error: jest.fn(),
|
|
9
|
+
warn: jest.fn(),
|
|
10
|
+
info: jest.fn(),
|
|
11
|
+
debug: jest.fn(),
|
|
12
|
+
log: jest.fn()
|
|
13
|
+
});
|
|
14
|
+
describe('Simple Logging Infrastructure', () => {
|
|
15
|
+
let mockConsole;
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
mockConsole = createMockConsole();
|
|
18
|
+
global.console = mockConsole;
|
|
19
|
+
(0, logging_1.clearLoggers)();
|
|
20
|
+
(0, logging_1.setDefaultLogLevel)(logging_1.LogLevel.INFO);
|
|
21
|
+
});
|
|
22
|
+
afterEach(() => {
|
|
23
|
+
jest.clearAllMocks();
|
|
24
|
+
});
|
|
25
|
+
describe('LogLevel enum', () => {
|
|
26
|
+
it('should have correct numeric values', () => {
|
|
27
|
+
expect(logging_1.LogLevel.ERROR).toBe(0);
|
|
28
|
+
expect(logging_1.LogLevel.WARN).toBe(1);
|
|
29
|
+
expect(logging_1.LogLevel.INFO).toBe(2);
|
|
30
|
+
expect(logging_1.LogLevel.DEBUG).toBe(3);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('Logger', () => {
|
|
34
|
+
let logger;
|
|
35
|
+
beforeEach(() => {
|
|
36
|
+
logger = new logging_1.Logger('TestContext');
|
|
37
|
+
});
|
|
38
|
+
describe('log level management', () => {
|
|
39
|
+
it('should set and get log level', () => {
|
|
40
|
+
logger.setLevel(logging_1.LogLevel.DEBUG);
|
|
41
|
+
expect(logger.getLevel()).toBe(logging_1.LogLevel.DEBUG);
|
|
42
|
+
});
|
|
43
|
+
it('should default to INFO level', () => {
|
|
44
|
+
expect(logger.getLevel()).toBe(logging_1.LogLevel.INFO);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('log level filtering', () => {
|
|
48
|
+
it('should only log messages at or above current level', () => {
|
|
49
|
+
logger.setLevel(logging_1.LogLevel.WARN);
|
|
50
|
+
logger.debug('debug message');
|
|
51
|
+
logger.info('info message');
|
|
52
|
+
logger.warn('warn message');
|
|
53
|
+
logger.error('error message');
|
|
54
|
+
expect(mockConsole.debug).not.toHaveBeenCalled();
|
|
55
|
+
expect(mockConsole.info).not.toHaveBeenCalled();
|
|
56
|
+
expect(mockConsole.warn).toHaveBeenCalledTimes(1);
|
|
57
|
+
expect(mockConsole.error).toHaveBeenCalledTimes(1);
|
|
58
|
+
});
|
|
59
|
+
it('should log all messages when level is DEBUG', () => {
|
|
60
|
+
logger.setLevel(logging_1.LogLevel.DEBUG);
|
|
61
|
+
logger.debug('debug message');
|
|
62
|
+
logger.info('info message');
|
|
63
|
+
logger.warn('warn message');
|
|
64
|
+
logger.error('error message');
|
|
65
|
+
expect(mockConsole.debug).toHaveBeenCalledTimes(1);
|
|
66
|
+
expect(mockConsole.info).toHaveBeenCalledTimes(1);
|
|
67
|
+
expect(mockConsole.warn).toHaveBeenCalledTimes(1);
|
|
68
|
+
expect(mockConsole.error).toHaveBeenCalledTimes(1);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('message formatting', () => {
|
|
72
|
+
it('should include context in messages', () => {
|
|
73
|
+
logger.info('test message');
|
|
74
|
+
expect(mockConsole.info).toHaveBeenCalledWith('[TestContext] test message');
|
|
75
|
+
});
|
|
76
|
+
it('should support additional arguments', () => {
|
|
77
|
+
const context = { deviceId: 'test-device', operation: 'connect' };
|
|
78
|
+
logger.info('device operation', context, 'extra');
|
|
79
|
+
expect(mockConsole.info).toHaveBeenCalledWith('[TestContext] device operation', context, 'extra');
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe('console method usage', () => {
|
|
83
|
+
it('should use correct console methods for each level', () => {
|
|
84
|
+
logger.setLevel(logging_1.LogLevel.DEBUG);
|
|
85
|
+
logger.error('error message');
|
|
86
|
+
logger.warn('warn message');
|
|
87
|
+
logger.info('info message');
|
|
88
|
+
logger.debug('debug message');
|
|
89
|
+
expect(mockConsole.error).toHaveBeenCalledWith('[TestContext] error message');
|
|
90
|
+
expect(mockConsole.warn).toHaveBeenCalledWith('[TestContext] warn message');
|
|
91
|
+
expect(mockConsole.info).toHaveBeenCalledWith('[TestContext] info message');
|
|
92
|
+
expect(mockConsole.debug).toHaveBeenCalledWith('[TestContext] debug message');
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
describe('LoggerFactory', () => {
|
|
97
|
+
describe('default level management', () => {
|
|
98
|
+
it('should set and get default level', () => {
|
|
99
|
+
(0, logging_1.setDefaultLogLevel)(logging_1.LogLevel.DEBUG);
|
|
100
|
+
expect((0, logging_1.getDefaultLogLevel)()).toBe(logging_1.LogLevel.DEBUG);
|
|
101
|
+
});
|
|
102
|
+
it('should apply default level to new loggers', () => {
|
|
103
|
+
(0, logging_1.setDefaultLogLevel)(logging_1.LogLevel.ERROR);
|
|
104
|
+
const logger = (0, logging_1.getLogger)('test');
|
|
105
|
+
expect(logger.getLevel()).toBe(logging_1.LogLevel.ERROR);
|
|
106
|
+
});
|
|
107
|
+
it('should update existing loggers when default level changes', () => {
|
|
108
|
+
const logger1 = (0, logging_1.getLogger)('test1');
|
|
109
|
+
const logger2 = (0, logging_1.getLogger)('test2');
|
|
110
|
+
(0, logging_1.setDefaultLogLevel)(logging_1.LogLevel.DEBUG);
|
|
111
|
+
expect(logger1.getLevel()).toBe(logging_1.LogLevel.DEBUG);
|
|
112
|
+
expect(logger2.getLevel()).toBe(logging_1.LogLevel.DEBUG);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('logger instance management', () => {
|
|
116
|
+
it('should return same instance for same context', () => {
|
|
117
|
+
const logger1 = (0, logging_1.getLogger)('test');
|
|
118
|
+
const logger2 = (0, logging_1.getLogger)('test');
|
|
119
|
+
expect(logger1).toBe(logger2);
|
|
120
|
+
});
|
|
121
|
+
it('should return different instances for different contexts', () => {
|
|
122
|
+
const logger1 = (0, logging_1.getLogger)('test1');
|
|
123
|
+
const logger2 = (0, logging_1.getLogger)('test2');
|
|
124
|
+
expect(logger1).not.toBe(logger2);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe('clearLoggers', () => {
|
|
128
|
+
it('should remove all loggers', () => {
|
|
129
|
+
(0, logging_1.getLogger)('test1');
|
|
130
|
+
(0, logging_1.getLogger)('test2');
|
|
131
|
+
(0, logging_1.clearLoggers)();
|
|
132
|
+
const newLogger1 = (0, logging_1.getLogger)('test1');
|
|
133
|
+
// Should create a new instance since loggers were cleared
|
|
134
|
+
expect(newLogger1).toBeDefined();
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe('Utility Functions', () => {
|
|
139
|
+
describe('parseLogLevel', () => {
|
|
140
|
+
it('should parse valid log level strings', () => {
|
|
141
|
+
expect((0, logging_1.parseLogLevel)('ERROR')).toBe(logging_1.LogLevel.ERROR);
|
|
142
|
+
expect((0, logging_1.parseLogLevel)('warn')).toBe(logging_1.LogLevel.WARN);
|
|
143
|
+
expect((0, logging_1.parseLogLevel)('Info')).toBe(logging_1.LogLevel.INFO);
|
|
144
|
+
expect((0, logging_1.parseLogLevel)('DEBUG')).toBe(logging_1.LogLevel.DEBUG);
|
|
145
|
+
});
|
|
146
|
+
it('should return undefined for invalid strings', () => {
|
|
147
|
+
expect((0, logging_1.parseLogLevel)('INVALID')).toBeUndefined();
|
|
148
|
+
expect((0, logging_1.parseLogLevel)('')).toBeUndefined();
|
|
149
|
+
expect((0, logging_1.parseLogLevel)('123')).toBeUndefined();
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
describe('Real-world Usage Patterns', () => {
|
|
154
|
+
it('should handle device protocol logging', () => {
|
|
155
|
+
const protocolLogger = (0, logging_1.getLogger)('SiProtocol');
|
|
156
|
+
protocolLogger.warn('Invalid date conversion: year out of range', { year: 100, rawData: [100, 12, 1] });
|
|
157
|
+
expect(mockConsole.warn).toHaveBeenCalledWith('[SiProtocol] Invalid date conversion: year out of range', { year: 100, rawData: [100, 12, 1] });
|
|
158
|
+
});
|
|
159
|
+
it('should handle device driver logging', () => {
|
|
160
|
+
const driverLogger = (0, logging_1.getLogger)('WebUsbDriver');
|
|
161
|
+
driverLogger.setLevel(logging_1.LogLevel.DEBUG);
|
|
162
|
+
driverLogger.debug('Opening USB device');
|
|
163
|
+
driverLogger.error('Failed to open USB device', { error: 'Device not found', deviceId: 'test-123' });
|
|
164
|
+
expect(mockConsole.debug).toHaveBeenCalledWith('[WebUsbDriver] Opening USB device');
|
|
165
|
+
expect(mockConsole.error).toHaveBeenCalledWith('[WebUsbDriver] Failed to open USB device', { error: 'Device not found', deviceId: 'test-123' });
|
|
166
|
+
});
|
|
167
|
+
it('should handle card validation logging', () => {
|
|
168
|
+
const cardLogger = (0, logging_1.getLogger)('SiCard6');
|
|
169
|
+
cardLogger.warn('Card number mismatch', { expected: 500030, actual: 500029 });
|
|
170
|
+
expect(mockConsole.warn).toHaveBeenCalledWith('[SiCard6] Card number mismatch', { expected: 500030, actual: 500029 });
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe('Performance', () => {
|
|
174
|
+
it('should handle rapid logging efficiently', () => {
|
|
175
|
+
const logger = (0, logging_1.getLogger)('performance-test');
|
|
176
|
+
const start = performance.now();
|
|
177
|
+
for (let i = 0; i < 1000; i++) {
|
|
178
|
+
logger.info(`Message ${i}`, { iteration: i });
|
|
179
|
+
}
|
|
180
|
+
const end = performance.now();
|
|
181
|
+
expect(end - start).toBeLessThan(500); // Should complete in under 500ms
|
|
182
|
+
expect(mockConsole.info).toHaveBeenCalledTimes(1000);
|
|
183
|
+
});
|
|
184
|
+
it('should not log when level is disabled', () => {
|
|
185
|
+
const logger = (0, logging_1.getLogger)('disabled-test');
|
|
186
|
+
logger.setLevel(logging_1.LogLevel.ERROR);
|
|
187
|
+
const start = performance.now();
|
|
188
|
+
for (let i = 0; i < 1000; i++) {
|
|
189
|
+
logger.debug(`Debug message ${i}`); // Should be filtered out
|
|
190
|
+
}
|
|
191
|
+
const end = performance.now();
|
|
192
|
+
expect(end - start).toBeLessThan(50); // Should be very fast when filtered
|
|
193
|
+
expect(mockConsole.debug).not.toHaveBeenCalled();
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=logging.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.test.js","sourceRoot":"","sources":["../../src/utils/logging.test.ts"],"names":[],"mappings":"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"}
|
package/utils/mixins.js
CHANGED
|
@@ -6,7 +6,7 @@ const applyMixins = (derivedCtor, baseCtors) => {
|
|
|
6
6
|
baseCtors.forEach((baseCtor) => {
|
|
7
7
|
Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
|
|
8
8
|
Object.defineProperty(derivedCtor.prototype, name,
|
|
9
|
-
// @ts-
|
|
9
|
+
// @ts-expect-error - PropertyDescriptor from getOwnPropertyDescriptor may be undefined but defineProperty accepts it
|
|
10
10
|
Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
|
|
11
11
|
});
|
|
12
12
|
});
|
package/utils/mixins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixins.js","sourceRoot":"","sources":["../../src/utils/mixins.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AACtE,MAAM,WAAW,GAAG,CAAC,WAAgB,EAAE,SAAgB,EAAQ,EAAE;IACvE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/D,MAAM,CAAC,cAAc,CACpB,WAAW,CAAC,SAAS,EACrB,IAAI;YACJ,
|
|
1
|
+
{"version":3,"file":"mixins.js","sourceRoot":"","sources":["../../src/utils/mixins.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AACtE,MAAM,WAAW,GAAG,CAAC,WAAgB,EAAE,SAAgB,EAAQ,EAAE;IACvE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/D,MAAM,CAAC,cAAc,CACpB,WAAW,CAAC,SAAS,EACrB,IAAI;YACJ,qHAAqH;YACrH,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CACzD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB"}
|
package/utils/mixins.test.js
CHANGED
package/utils/mixins.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixins.test.js","sourceRoot":"","sources":["../../src/utils/mixins.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,qDAAuC;AAEvC,IAAA,kBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,IAAA,cAAI,EAAC,UAAU,EAAE,GAAG,EAAE;QACrB,MAAM,UAAU;YAAhB;gBACQ,eAAU,GAAG,KAAK,CAAC;YAK3B,CAAC;YAHA,OAAO;gBACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,CAAC;SACD;QAED,MAAM,WAAW;YAAjB;gBACQ,aAAQ,GAAG,KAAK,CAAC;YAKzB,CAAC;YAHA,QAAQ;gBACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,CAAC;SACD;QAED,MAAM,QAAQ;YAAd;gBACC,WAAM,GAAG,IAAI,CAAC;YACf,CAAC;SAAA;
|
|
1
|
+
{"version":3,"file":"mixins.test.js","sourceRoot":"","sources":["../../src/utils/mixins.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,qDAAuC;AAEvC,IAAA,kBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,IAAA,cAAI,EAAC,UAAU,EAAE,GAAG,EAAE;QACrB,MAAM,UAAU;YAAhB;gBACQ,eAAU,GAAG,KAAK,CAAC;YAK3B,CAAC;YAHA,OAAO;gBACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,CAAC;SACD;QAED,MAAM,WAAW;YAAjB;gBACQ,aAAQ,GAAG,KAAK,CAAC;YAKzB,CAAC;YAHA,QAAQ;gBACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,CAAC;SACD;QAED,4EAA4E;QAC5E,MAAM,QAAQ;YAAd;gBACC,WAAM,GAAG,IAAI,CAAC;YACf,CAAC;SAAA;QAID,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAA,gBAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAChD,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|