From 61e9d1c65d306980f0e8079f6a42f189e493a662 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sun, 19 Sep 2021 14:55:26 +0700 Subject: [PATCH] add `check-compat-data-modules-by-versions` script --- package.json | 3 ++- .../check-compat-data-modules-by-versions.mjs | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 scripts/check-compat-data-modules-by-versions.mjs diff --git a/package.json b/package.json index a242b84d088b..0f6f758f2c10 100644 --- a/package.json +++ b/package.json @@ -87,8 +87,9 @@ "bundle-tests-pure": "webpack --entry ./tests/pure/index.js --output-filename pure.js", "check-dependencies": "zx scripts/check-dependencies.mjs", "check-mapping": "zx scripts/check-compat-data-mapping.mjs", + "check-modules-by-versions": "zx scripts/check-compat-data-modules-by-versions.mjs", "check-unused-modules": "zx scripts/check-unused-modules.mjs", - "check": "run-s check-unused-modules check-mapping check-dependencies", + "check": "run-s check-unused-modules check-modules-by-versions check-mapping check-dependencies", "generate-indexes": "zx scripts/generate-indexes.mjs", "lint": "run-s init test-lint", "test-lint": "eslint --ext .js,.mjs,.json ./", diff --git a/scripts/check-compat-data-modules-by-versions.mjs b/scripts/check-compat-data-modules-by-versions.mjs new file mode 100644 index 000000000000..95884fc325d1 --- /dev/null +++ b/scripts/check-compat-data-modules-by-versions.mjs @@ -0,0 +1,22 @@ +import semver from 'semver'; +const { version } = require('../package'); +const modulesByVersions = require('../packages/core-js-compat/modules-by-versions'); + +const { major, minor, patch } = semver.coerce(version); +let ok = true; + +if (minor || patch) { // ignore for pre-releases + const zero = `${ major }.0`; + const result = await fetch(`https://unpkg.com/core-js-compat@${ major }/modules-by-versions.json`); + const prev = await result.json(); + const set = new Set(prev[zero]); + for (const mod of modulesByVersions[zero]) { + if (!set.has(mod)) { + ok = false; + console.log(chalk.red(`${ chalk.cyan(mod) } should be added to modules-by-versions`)); + } + } +} + +if (!ok) throw console.log(chalk.red('\nmodules-by-versions should be updated')); +console.log(chalk.green('modules-by-versions checked'));