97 lines
2.9 KiB
JavaScript
97 lines
2.9 KiB
JavaScript
import fs from "node:fs";
|
|
|
|
const packageJsonFile = new URL("../package.json", import.meta.url);
|
|
const packageJson = JSON.parse(fs.readFileSync(packageJsonFile));
|
|
|
|
const argv = process.argv.slice(2);
|
|
const nodeVersion = Number(argv[1]);
|
|
|
|
if (argv[0] !== "--node-version" || !Number.isInteger(nodeVersion)) {
|
|
throw new Error("Expect `--node-version` argument.");
|
|
}
|
|
|
|
let jestVersion;
|
|
|
|
if (nodeVersion === 14) {
|
|
// `jest@30.0.0-alpha.2` is the last version that supports Node.js v14
|
|
jestVersion = "30.0.0-alpha.2";
|
|
} else if (nodeVersion === 16) {
|
|
// `jest@30.0.0-alpha.7` is the last version that supports Node.js v16
|
|
jestVersion = "30.0.0-alpha.7";
|
|
} else {
|
|
throw new Error("Unexpected `--node-version`.");
|
|
}
|
|
|
|
// Script to get dependencies
|
|
// console.log(
|
|
// Object.fromEntries(
|
|
// Array.from(
|
|
// fs
|
|
// .readFileSync("./yarn.lock", "utf8")
|
|
// .matchAll(/"(.*?)@npm:30\.0\.0-alpha\.3[",]/g),
|
|
// (match) => match[1],
|
|
// )
|
|
// .sort()
|
|
// .map((dependency) => [dependency, "30.0.0-alpha.2"]),
|
|
// ),
|
|
// );
|
|
|
|
fs.writeFileSync(
|
|
packageJsonFile,
|
|
JSON.stringify(
|
|
{
|
|
...packageJson,
|
|
resolutions: {
|
|
...packageJson.resolutions,
|
|
"@jest/console": jestVersion,
|
|
"@jest/core": jestVersion,
|
|
"@jest/environment": jestVersion,
|
|
"@jest/expect": jestVersion,
|
|
"@jest/expect-utils": jestVersion,
|
|
"@jest/fake-timers": jestVersion,
|
|
"@jest/globals": jestVersion,
|
|
"@jest/reporters": jestVersion,
|
|
"@jest/schemas": jestVersion,
|
|
"@jest/source-map": jestVersion,
|
|
"@jest/test-result": jestVersion,
|
|
"@jest/test-sequencer": jestVersion,
|
|
"@jest/transform": jestVersion,
|
|
// "@jest/types": jestVersion,
|
|
"babel-jest": jestVersion,
|
|
"babel-plugin-jest-hoist": jestVersion,
|
|
"babel-preset-jest": jestVersion,
|
|
"diff-sequences": jestVersion,
|
|
expect: jestVersion,
|
|
jest: jestVersion,
|
|
"jest-changed-files": jestVersion,
|
|
"jest-circus": jestVersion,
|
|
"jest-cli": jestVersion,
|
|
"jest-config": jestVersion,
|
|
"jest-diff": jestVersion,
|
|
// "jest-docblock": jestVersion,
|
|
"jest-each": jestVersion,
|
|
"jest-environment-node": jestVersion,
|
|
"jest-get-type": jestVersion,
|
|
"jest-haste-map": jestVersion,
|
|
"jest-leak-detector": jestVersion,
|
|
"jest-matcher-utils": jestVersion,
|
|
"jest-message-util": jestVersion,
|
|
"jest-mock": jestVersion,
|
|
"jest-regex-util": jestVersion,
|
|
"jest-resolve": jestVersion,
|
|
"jest-resolve-dependencies": jestVersion,
|
|
"jest-runner": jestVersion,
|
|
"jest-runtime": jestVersion,
|
|
"jest-snapshot": jestVersion,
|
|
"jest-util": jestVersion,
|
|
"jest-validate": jestVersion,
|
|
"jest-watcher": jestVersion,
|
|
"jest-worker": jestVersion,
|
|
"pretty-format": jestVersion,
|
|
},
|
|
},
|
|
undefined,
|
|
2,
|
|
),
|
|
);
|