diff --git a/package.json b/package.json index 0e6fbf83457231eb331e533f029a2c7d0d14daae..d377816ef5b1332ad2429ee6e818645c59372c35 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 0000000000000000000000000000000000000000..7ef296ba57479c6c643c602e23a3042d50fce3ae --- /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`)); + } + } +});