blob: 69e360c284c9d9d356af45c52b24c90a736f2d88 [file] [log] [blame]
Jack Franklinb5a63092022-11-30 14:32:361#!/usr/bin/env node
2
3// Copyright 2022 The Chromium Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style license that can be
5// found in the LICENSE file.
6'use strict';
7
8const path = require('path');
9const fs = require('fs');
10
11const {
12 devtoolsRootPath,
13} = require('./devtools_paths.js');
14
15function bail(message) {
16 console.error(message);
17 process.exit(1);
18}
19
20function findVersionFromDepsFile() {
21 const filePath = path.join(devtoolsRootPath(), 'DEPS');
22 const contents = fs.readFileSync(filePath, 'utf8').split('\n');
23 const esbuildPackageLine = contents.findIndex(line => line.match(/infra\/3pp\/tools\/esbuild/));
24 if (esbuildPackageLine === -1) {
25 bail('Could not find ESBuild within DEPS file.');
26 }
27 const esbuildVersionLine = contents[esbuildPackageLine + 1];
28 const result = /@(\d{1,2}\.\d{1,2}\.\d{1,2})/.exec(esbuildVersionLine)?.[1];
29 if (!result) {
30 bail('Could not parse out ESBuild version from DEPS');
31 }
32 return result;
33}
34
35function findVersionFromNodeDepsFile() {
36 const filePath = path.join(devtoolsRootPath(), 'scripts', 'deps', 'manage_node_deps.py');
37 const contents = fs.readFileSync(filePath, 'utf8');
38 const result = /"esbuild": "([0-9\.]+)"/.exec(contents)?.[1];
39 if (!result) {
40 bail('Could not parse out ESBuild version from manage_node_deps.py');
41 }
42 return result;
43}
44
45const nodeDepsVersion = findVersionFromNodeDepsFile();
46const depsVersion = findVersionFromDepsFile();
47if (nodeDepsVersion !== depsVersion) {
48 bail(`Found mismatching esbuild versions in DEPS vs manage_node_deps:
49 manage_node_deps.py: ${nodeDepsVersion}
50 DEPS: ${depsVersion}\n`);
51}