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.
17 lines
548 B
TypeScript
17 lines
548 B
TypeScript
import { ExpressionPosition } from './ExpressionPosition';
|
|
|
|
export function createPositionFromRegexFullMatch(
|
|
match: RegExpMatchArray,
|
|
): ExpressionPosition {
|
|
const startPos = match.index;
|
|
if (startPos === undefined) {
|
|
throw new Error(`Regex match did not yield any results: ${JSON.stringify(match)}`);
|
|
}
|
|
const fullMatch = match[0];
|
|
if (!fullMatch.length) {
|
|
throw new Error(`Regex match is empty: ${JSON.stringify(match)}`);
|
|
}
|
|
const endPos = startPos + fullMatch.length;
|
|
return new ExpressionPosition(startPos, endPos);
|
|
}
|