GitFOSS
.ts
TypeScript
(application/typescript)
export default function getGitdiffLineStart(maybeGitdiff: string): {
  before: number;
  after: number;
} {
  if (maybeGitdiff == null) {
    return {
      before: 0,
      after: 0,
    };
  }
  const gitdiffLinesRegExp = /@@ -([\d]+),[\d]+ \+[\d]+,([\d]+) @@/i;
  const matches = gitdiffLinesRegExp.exec(maybeGitdiff);
  if (matches == null || Array.isArray(matches) === false) {
    return {
      before: 0,
      after: 0,
    };
  }
  const [_, beforeLineNumber, afterLineNumber] = matches;
  return {
    before: parseInt(beforeLineNumber, 10) - 1,
    after: parseInt(afterLineNumber, 10) - 1,
  };
}