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.
15 lines
628 B
TypeScript
15 lines
628 B
TypeScript
/**
|
|
* Asserts that the provided value is neither null nor undefined.
|
|
*
|
|
* This function is a more explicit alternative to `expect(value).to.exist` in test cases.
|
|
* It is particularly useful in situations where TypeScript's control flow analysis
|
|
* does not recognize standard assertions, ensuring that `value` is treated as
|
|
* non-nullable in the subsequent code. This can prevent potential type errors
|
|
* and enhance code safety and clarity.
|
|
*/
|
|
export function expectExists<T>(value: T): asserts value is NonNullable<T> {
|
|
if (value === null || value === undefined) {
|
|
throw new Error('Expected value to exist');
|
|
}
|
|
}
|