From b8de7cbed719060e1ff6626372e5c9b5c7e035ec Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Mon, 11 Mar 2024 11:25:29 +0100 Subject: [PATCH] Added `verify-no-top-level-material-ui-4-imports` script Signed-off-by: Andre Wanlin --- ...rify-no-top-level-material-ui-4-imports.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 scripts/verify-no-top-level-material-ui-4-imports.js diff --git a/scripts/verify-no-top-level-material-ui-4-imports.js b/scripts/verify-no-top-level-material-ui-4-imports.js new file mode 100644 index 0000000000..9d2ac9aa71 --- /dev/null +++ b/scripts/verify-no-top-level-material-ui-4-imports.js @@ -0,0 +1,46 @@ +#!/usr/bin/env node +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs-extra'); +const { getPackages } = require('@manypkg/get-packages'); +const { resolve, join } = require('path'); + +async function main() { + const rootPath = resolve(__dirname, '..'); + const { packages } = await getPackages(rootPath); + + for (const pkg of packages) { + pkgRole = pkg.packageJson.backstage?.role; + if (pkgRole === 'frontend-plugin') { + const eslintrcPath = join(pkg.dir, '.eslintrc.js'); + const targetEslintrc = (await fs.readFile(eslintrcPath)).toString(); + if ( + targetEslintrc.includes( + "'@backstage/no-top-level-material-ui-4-imports': 'error'", + ) + ) { + continue; + } + console.log(pkg.packageJson.name); + } + } +} + +main(process.argv.slice(2)).catch(error => { + console.error(error.stack || error); + process.exit(1); +});