diff --git a/packages/app/.eslintrc.js b/packages/app/.eslintrc.js index 7441f46811..e2a53a6ad2 100644 --- a/packages/app/.eslintrc.js +++ b/packages/app/.eslintrc.js @@ -1,10 +1 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { - overrides: [ - { - files: ['**/*.ts?(x)'], - rules: { - 'react/prop-types': 1, - }, - }, - ], -}); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/packages/core-app-api/.eslintrc.js b/packages/core-app-api/.eslintrc.js index 3c32e018c8..e358722664 100644 --- a/packages/core-app-api/.eslintrc.js +++ b/packages/core-app-api/.eslintrc.js @@ -1,6 +1,5 @@ module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { rules: { - 'react/prop-types': 0, 'jest/expect-expect': 0, }, }); diff --git a/packages/core-components/.eslintrc.js b/packages/core-components/.eslintrc.js index 65bfa69f59..2ebb50e64f 100644 --- a/packages/core-components/.eslintrc.js +++ b/packages/core-components/.eslintrc.js @@ -1,82 +1,11 @@ module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { rules: { - 'react/prop-types': 0, 'jest/expect-expect': 0, - 'no-restricted-imports': [ - 2, - { - paths: [ - { - name: '@material-ui/core', - message: "Please import '@material-ui/core/...' instead.", - }, - { - name: '@material-ui/icons', - message: "Please import '@material-ui/icons/' instead.", - }, - { - name: '@material-ui/icons/', - message: "Please import '@material-ui/icons/' instead.", - }, - '_http_agent', - '_http_client', - '_http_common', - '_http_incoming', - '_http_outgoing', - '_http_server', - '_stream_duplex', - '_stream_passthrough', - '_stream_readable', - '_stream_transform', - '_stream_wrap', - '_stream_writable', - '_tls_common', - '_tls_wrap', - 'assert', - 'async_hooks', - 'buffer', - 'child_process', - 'cluster', - 'console', - 'constants', - 'crypto', - 'dgram', - 'diagnostics_channel', - 'dns', - 'domain', - 'events', - 'fs', - 'fs/promises', - 'http', - 'http2', - 'https', - 'inspector', - 'module', - 'net', - 'os', - 'path', - 'perf_hooks', - 'process', - 'punycode', - 'querystring', - 'readline', - 'repl', - 'stream', - 'string_decoder', - 'sys', - 'timers', - 'tls', - 'trace_events', - 'tty', - 'url', - 'util', - 'v8', - 'vm', - 'worker_threads', - 'zlib', - ], - patterns: ['**/../../**/*/src/**', '**/../../**/*/src'], - }, - ], }, + restrictedImports: [ + { + name: '@material-ui/core', + message: "Please import '@material-ui/core/...' instead.", + }, + ], }); diff --git a/packages/core-plugin-api/.eslintrc.js b/packages/core-plugin-api/.eslintrc.js index 3c32e018c8..e2a53a6ad2 100644 --- a/packages/core-plugin-api/.eslintrc.js +++ b/packages/core-plugin-api/.eslintrc.js @@ -1,6 +1 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { - rules: { - 'react/prop-types': 0, - 'jest/expect-expect': 0, - }, -}); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/packages/techdocs-cli/.eslintrc.js b/packages/techdocs-cli/.eslintrc.js index 8b5adc6794..e2a53a6ad2 100644 --- a/packages/techdocs-cli/.eslintrc.js +++ b/packages/techdocs-cli/.eslintrc.js @@ -1,10 +1 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { - overrides: [ - { - files: ['**/*.ts?(x)'], - rules: { - 'no-restricted-imports': 0, - }, - }, - ], -}); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/packages/techdocs-cli/src/commands/serve/serve.ts b/packages/techdocs-cli/src/commands/serve/serve.ts index a6a671c2df..d5b8191cf9 100644 --- a/packages/techdocs-cli/src/commands/serve/serve.ts +++ b/packages/techdocs-cli/src/commands/serve/serve.ts @@ -37,6 +37,7 @@ function findPreviewBundlePath(): string { // This can be tested by running `yarn pack` and extracting the resulting tarball into a directory. // Within the extracted directory, run `npm install --only=prod`. // Once that's done you can test the CLI in any directory using `node /package `. + // eslint-disable-next-line no-restricted-syntax return findPaths(__dirname).resolveOwn('dist/embedded-app'); } } diff --git a/plugins/scaffolder-backend/.eslintrc.js b/plugins/scaffolder-backend/.eslintrc.js index d32253d562..953af54f90 100644 --- a/plugins/scaffolder-backend/.eslintrc.js +++ b/plugins/scaffolder-backend/.eslintrc.js @@ -1,59 +1,18 @@ module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { ignorePatterns: ['sample-templates/'], - rules: { - 'no-console': 0, - 'new-cap': [ - 'error', - { - capIsNew: false, - }, - ], - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'path', - importNames: ['resolve'], - message: - 'Do not use path.resolve, use `resolveSafeChildPath` from `@backstage/backend-common` instead as it prevents security issues', - }, - ], - patterns: ['**/../../**/*/src/**', '**/../../**/*/src'], - }, - ], - 'no-restricted-syntax': [ - 'error', - { - message: - 'Default import from winston is not allowed, import `* as winston` instead.', - selector: - 'ImportDeclaration[source.value="winston"] ImportDefaultSpecifier', - }, - { - message: - "`__dirname` doesn't refer to the same dir in production builds, try `resolvePackagePath()` from `@backstage/backend-common` instead.", - selector: 'Identifier[name="__dirname"]', - }, - { - message: - 'Do not use path.resolve, use `resolveSafeChildPath` from `@backstage/backend-common` instead as it prevents security issues', - selector: - 'MemberExpression[object.name="path"][property.name="resolve"]', - }, - ], - }, - overrides: [ + restrictedSrcImports: [ { - files: ['*.test.*', 'src/setupTests.*', 'dev/**'], - rules: { - 'no-restricted-imports': [ - 2, - { - patterns: ['**/../../**/*/src/**', '**/../../**/*/src'], - }, - ], - }, + name: 'path', + importNames: ['resolve'], + message: + 'Do not use path.resolve, use `resolveSafeChildPath` from `@backstage/backend-common` instead as it prevents security issues', + }, + ], + restrictedSrcSyntax: [ + { + message: + 'Do not use path.resolve, use `resolveSafeChildPath` from `@backstage/backend-common` instead as it prevents security issues', + selector: 'MemberExpression[object.name="path"][property.name="resolve"]', }, ], });