0xV3NOMx
Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64



Your IP : 3.142.135.127


Current Path : /var/www/html/dud/tcpdf/node-v14.17.6 2/tools/
Upload File :
Current File : //var/www/html/dud/tcpdf/node-v14.17.6 2/tools/lint-pr-url.mjs

#!/usr/bin/env node

// Usage:
// git diff upstream/master...HEAD -G"pr-url:" -- "*.md" | \
// ./tools/lint-pr-url.mjs <expected-pr-url>

import process from 'node:process';
import readline from 'node:readline';

const [, , expectedPrUrl] = process.argv;

const fileDelimiter = /^\+\+\+ b\/(.+\.md)$/;
const changeDelimiter = /^@@ -\d+,\d+ \+(\d+),\d+ @@/;
const prUrlDefinition = /^\+\s+pr-url: (.+)$/;

const validatePrUrl = (url) => url == null || url === expectedPrUrl;

let currentFile;
let currentLine;

const diff = readline.createInterface({ input: process.stdin });
for await (const line of diff) {
  if (fileDelimiter.test(line)) {
    currentFile = line.match(fileDelimiter)[1];
    console.log(`Parsing changes in ${currentFile}.`);
  } else if (changeDelimiter.test(line)) {
    currentLine = Number(line.match(changeDelimiter)[1]);
  } else if (!validatePrUrl(line.match(prUrlDefinition)?.[1])) {
    console.warn(
      `::warning file=${currentFile},line=${currentLine++},col=${line.length}` +
      '::pr-url doesn\'t match the URL of the current PR.'
    );
  } else if (line[0] !== '-') {
    // Increment line counter if line is not being deleted.
    currentLine++;
  }
}