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