From 0120d4dc8f5debf2b9d5dd02bebef7f2e6f3cb17 Mon Sep 17 00:00:00 2001 From: Jack Reed <phillipjreed@gmail.com> Date: Thu, 10 Dec 2020 08:43:40 -0700 Subject: [PATCH] Add a container-lint process for inspecting all of the containers --- package.json | 3 ++- scripts/container-lint.js | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 scripts/container-lint.js diff --git a/package.json b/package.json index 525c624a6..62a735d3f 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "sideEffects": false, "scripts": { "clean": "rm -rf ./dist", - "lint": "node_modules/.bin/eslint ./ && npm run lint:translations", + "lint": "node_modules/.bin/eslint ./ && npm run lint:translations && npm run lint:containers", + "lint:containers": "node ./scripts/container-lint.js", "lint:translations": "node ./scripts/i18n-lint.js", "server": "node_modules/.bin/http-server --cors", "test": "npm run build && npm run lint && npm run size && jest -c jest.json", diff --git a/scripts/container-lint.js b/scripts/container-lint.js new file mode 100644 index 000000000..7ef296ba5 --- /dev/null +++ b/scripts/container-lint.js @@ -0,0 +1,18 @@ +const glob = require('glob'); // eslint-disable-line import/no-extraneous-dependencies +const fs = require('fs'); +const chalk = require('chalk'); // eslint-disable-line import/no-extraneous-dependencies + +const { error } = console; +const globOpts = { cwd: 'src/containers' }; +const files = glob.sync('**/*.js', globOpts); + +files.forEach((fileName) => { + const fileContent = fs.readFileSync(`src/containers/${fileName}`).toString(); + const withPlugins = fileContent.indexOf('withPlugins('); + if (withPlugins > 0) { + const correctCall = fileContent.indexOf(`withPlugins('${fileName.replace('.js', '')}')`); + if (withPlugins !== correctCall) { + error(chalk.red(`Check withPlugins for ${fileName} for an incorrect target`)); + } + } +}); -- GitLab