From 6059fcc5dcf99b39532f22b8f443ef6ddd8a861b Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Sat, 16 Jan 2021 23:01:31 +0100 Subject: [PATCH 1/2] Fail build on missing compat entries in files entry --- config/compat-entries.js | 25 +++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 config/compat-entries.js diff --git a/config/compat-entries.js b/config/compat-entries.js new file mode 100644 index 0000000000..6fd771b146 --- /dev/null +++ b/config/compat-entries.js @@ -0,0 +1,25 @@ +const path = require('path'); +const fs = require('fs'); +const kl = require('kolorist'); + +const pkgFiles = new Set(require('../package.json').files); +const compatDir = path.join(__dirname, '..', 'compat'); +const files = fs.readdirSync(compatDir); + +let missing = 0; +for (const file of files) { + const expected = 'compat/' + file; + if (/\.(js|mjs)$/.test(file) && !pkgFiles.has(expected)) { + missing++; + + const filePath = kl.cyan('compat/' + file); + const label = kl.inverse(kl.red(' ERROR ')); + console.error( + `${label} File ${filePath} is missing in "files" entry in package.json` + ); + } +} + +if (missing > 0) { + process.exit(1); +} diff --git a/package.json b/package.json index 64ab77128f..25ee57e3c9 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "build:test-utils": "microbundle build --raw --cwd test-utils", "build:compat": "microbundle build --raw --cwd compat --globals 'preact/hooks=preactHooks'", "build:jsx": "microbundle build --raw --cwd jsx-runtime", - "postbuild": "node ./config/node-13-exports.js", + "postbuild": "node ./config/node-13-exports.js && node ./config/compat-entries.js", "dev": "microbundle watch --raw --format cjs", "dev:hooks": "microbundle watch --raw --format cjs --cwd hooks", "dev:compat": "microbundle watch --raw --format cjs --cwd compat --globals 'preact/hooks=preactHooks'", From dbe95b6a7912999f9fd1325190164930a594bc8f Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Sat, 16 Jan 2021 23:02:00 +0100 Subject: [PATCH 2/2] Add missing compat/test-utils.js files entry --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 25ee57e3c9..43b41d23d4 100644 --- a/package.json +++ b/package.json @@ -169,6 +169,7 @@ "compat/dist", "compat/src", "compat/server.js", + "compat/test-utils.js", "compat/jsx-runtime.js", "compat/jsx-runtime.mjs", "compat/jsx-dev-runtime.js",