tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

validate-deps.mjs (1447B)


      1 /**
      2 * @license
      3 * Copyright 2025 Google Inc.
      4 * SPDX-License-Identifier: Apache-2.0
      5 */
      6 
      7 import puppeteerPackageJson from '../packages/puppeteer/package.json' with {type: 'json'};
      8 import puppeteerCorePackageJson from '../packages/puppeteer-core/package.json' with {type: 'json'};
      9 
     10 const syncDeps = ['chromium-bidi', 'devtools-protocol', 'typed-query-selector'];
     11 const syncDevDeps = ['@types/node'];
     12 
     13 const areDepsSynced = ({
     14  depsToCheck,
     15  firstPackage,
     16  secondPackage,
     17  depsType = 'dependencies',
     18 }) => {
     19  let noError = true;
     20  for (const dep of depsToCheck) {
     21    if (!firstPackage[depsType][dep]) {
     22      console.log(`Dependency ${dep} does not exit in ${firstPackage['name']}`);
     23      noError = false;
     24    }
     25    if (!secondPackage[depsType][dep]) {
     26      console.log(
     27        `Dependency ${dep} does not exit in ${secondPackage['name']}`,
     28      );
     29      noError = false;
     30    }
     31 
     32    if (firstPackage[depsType][dep] !== secondPackage[depsType][dep]) {
     33      console.log(`Dependency ${dep} not synced.`);
     34      noError = false;
     35    }
     36  }
     37 
     38  return noError;
     39 };
     40 
     41 const resultDeps = areDepsSynced({
     42  depsToCheck: syncDeps,
     43  firstPackage: puppeteerCorePackageJson,
     44  secondPackage: puppeteerPackageJson,
     45 });
     46 const resultDevDeps = areDepsSynced({
     47  depsToCheck: syncDevDeps,
     48  firstPackage: puppeteerCorePackageJson,
     49  secondPackage: puppeteerPackageJson,
     50  depsType: 'devDependencies',
     51 });
     52 
     53 process.exit(resultDeps && resultDevDeps ? 0 : 1);