This commit applies `strictNullChecks` to the entire codebase to improve maintainability and type safety. Key changes include: - Remove some explicit null-checks where unnecessary. - Add necessary null-checks. - Refactor static factory functions for a more functional approach. - Improve some test names and contexts for better debugging. - Add unit tests for any additional logic introduced. - Refactor `createPositionFromRegexFullMatch` to its own function as the logic is reused. - Prefer `find` prefix on functions that may return `undefined` and `get` prefix for those that always return a value.
18 lines
522 B
TypeScript
18 lines
522 B
TypeScript
import { ILogger } from './ILogger';
|
|
|
|
export class ConsoleLogger implements ILogger {
|
|
constructor(private readonly consoleProxy: Partial<Console> = console) {
|
|
if (!consoleProxy) { // do not trust strictNullChecks for global objects
|
|
throw new Error('missing console');
|
|
}
|
|
}
|
|
|
|
public info(...params: unknown[]): void {
|
|
const logFunction = this.consoleProxy?.info;
|
|
if (!logFunction) {
|
|
throw new Error('missing "info" function');
|
|
}
|
|
logFunction.call(this.consoleProxy, ...params);
|
|
}
|
|
}
|