You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2022/01/06 00:16:32 UTC
[superset] branch tech-debt-metrics updated: adding tsx rule, moving stuff into the scripts folder, with its own eslintrc file
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch tech-debt-metrics
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/tech-debt-metrics by this push:
new c53e809 adding tsx rule, moving stuff into the scripts folder, with its own eslintrc file
c53e809 is described below
commit c53e8093a3eb5cf3294d84d7ea7d099da9e56d13
Author: Evan Rusackas <ev...@preset.io>
AuthorDate: Wed Jan 5 17:14:50 2022 -0700
adding tsx rule, moving stuff into the scripts folder, with its own eslintrc file
---
superset-frontend/.eslintrc.js | 85 +----
superset-frontend/eslint-stats.json | 99 ------
superset-frontend/package.json | 2 +-
.../scripts/eslint-metrics-report.json | 392 +++++++++++++++++++++
superset-frontend/{ => scripts}/eslint_metrics.js | 16 +-
superset-frontend/scripts/eslintrc_metrics.js | 65 ++++
6 files changed, 480 insertions(+), 179 deletions(-)
diff --git a/superset-frontend/.eslintrc.js b/superset-frontend/.eslintrc.js
index 3bfb29b..98466ec 100644
--- a/superset-frontend/.eslintrc.js
+++ b/superset-frontend/.eslintrc.js
@@ -16,34 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-
-const packageConfig = require('./package');
-
-const importCoreModules = [];
-Object.entries(packageConfig.dependencies).forEach(([pkg]) => {
- if (/@superset-ui/.test(pkg)) {
- importCoreModules.push(pkg);
- }
-});
-
-// ignore files when running ForkTsCheckerWebpackPlugin
-let ignorePatterns = [];
-if (process.env.NODE_ENV === 'production') {
- ignorePatterns = [
- '*.test.{js,ts,jsx,tsx}',
- 'plugins/**/test/**/*',
- 'packages/**/test/**/*',
- 'packages/generator-superset/**/*',
- ];
-}
-
module.exports = {
extends: [
'airbnb',
'prettier',
'prettier/react',
'plugin:react-hooks/recommended',
- 'plugin:react-prefer-function-component/recommended',
],
parser: '@babel/eslint-parser',
parserOptions: {
@@ -55,25 +33,12 @@ module.exports = {
browser: true,
},
settings: {
- 'import/resolver': {
- webpack: {},
- node: {
- extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'],
- },
- },
- // Allow only core/src and core/test, avoid import modules from lib
- 'import/internal-regex': /^@superset-ui\/core\/(src|test)\/.*/,
- 'import/core-modules': importCoreModules,
+ 'import/resolver': 'webpack',
react: {
version: 'detect',
},
},
- plugins: [
- 'prettier',
- 'react',
- 'file-progress',
- 'react-prefer-function-component',
- ],
+ plugins: ['prettier', 'react', 'file-progress'],
overrides: [
{
files: ['cypress-base/**/*'],
@@ -102,14 +67,8 @@ module.exports = {
'prettier',
'prettier/@typescript-eslint',
'prettier/react',
- 'plugin:react-prefer-function-component/recommended',
- ],
- plugins: [
- '@typescript-eslint/eslint-plugin',
- 'prettier',
- 'react',
- 'react-prefer-function-component',
],
+ plugins: ['@typescript-eslint/eslint-plugin', 'prettier', 'react'],
rules: {
'@typescript-eslint/ban-ts-ignore': 0,
'@typescript-eslint/ban-ts-comment': 0, // disabled temporarily
@@ -117,11 +76,11 @@ module.exports = {
'@typescript-eslint/no-empty-function': 0,
'@typescript-eslint/no-explicit-any': 0,
'@typescript-eslint/no-use-before-define': 1, // disabled temporarily
- '@typescript-eslint/no-non-null-assertion': 0, // disabled temporarily
'@typescript-eslint/explicit-function-return-type': 0,
'@typescript-eslint/explicit-module-boundary-types': 0, // re-enable up for discussion
camelcase: 0,
'class-methods-use-this': 0,
+ curly: 1,
'func-names': 0,
'guard-for-in': 0,
'import/no-cycle': 0, // re-enable up for discussion, might require some major refactors
@@ -171,7 +130,6 @@ module.exports = {
'padded-blocks': 0,
'prefer-arrow-callback': 0,
'prefer-destructuring': ['error', { object: true, array: false }],
- 'react-prefer-function-component/react-prefer-function-component': 1,
'react/destructuring-assignment': 0, // re-enable up for discussion
'react/forbid-prop-types': 0,
'react/jsx-filename-extension': [1, { extensions: ['.jsx', '.tsx'] }],
@@ -212,11 +170,11 @@ module.exports = {
},
{
files: [
- '*.test.ts',
- '*.test.tsx',
- '*.test.js',
- '*.test.jsx',
- 'fixtures.*',
+ 'src/**/*.test.ts',
+ 'src/**/*.test.tsx',
+ 'src/**/*.test.js',
+ 'src/**/*.test.jsx',
+ 'src/**/fixtures.*',
],
plugins: ['jest', 'jest-dom', 'no-only-tests', 'testing-library'],
env: {
@@ -237,28 +195,9 @@ module.exports = {
'error',
{ devDependencies: true },
],
+ 'jest/consistent-test-it': 'error',
'no-only-tests/no-only-tests': 'error',
- 'max-classes-per-file': 0,
'@typescript-eslint/no-non-null-assertion': 0,
- // TODO: disabled temporarily, re-enable after monorepo
- 'jest/consistent-test-it': 'error',
- 'jest/expect-expect': 0,
- 'jest/no-test-prefixes': 0,
- 'jest/valid-expect-in-promise': 0,
- 'jest/valid-expect': 0,
- 'jest/valid-title': 0,
- 'jest-dom/prefer-to-have-attribute': 0,
- 'jest-dom/prefer-to-have-text-content': 0,
- 'jest-dom/prefer-to-have-style': 0,
- },
- },
- {
- files: './packages/generator-superset/**/*.test.*',
- env: {
- node: true,
- },
- rules: {
- 'jest/expect-expect': 0,
},
},
],
@@ -271,7 +210,7 @@ module.exports = {
},
],
'class-methods-use-this': 0,
- curly: 2,
+ curly: 1,
'func-names': 0,
'guard-for-in': 0,
'import/extensions': [
@@ -314,7 +253,6 @@ module.exports = {
'no-shadow': 0, // re-enable up for discussion
'padded-blocks': 0,
'prefer-arrow-callback': 0,
- 'react-prefer-function-component/react-prefer-function-component': 1,
'prefer-object-spread': 1,
'prefer-destructuring': ['error', { object: true, array: false }],
'react/destructuring-assignment': 0, // re-enable up for discussion
@@ -333,5 +271,4 @@ module.exports = {
'react/static-property-placement': 0, // disabled temporarily
'prettier/prettier': 'error',
},
- ignorePatterns,
};
diff --git a/superset-frontend/eslint-stats.json b/superset-frontend/eslint-stats.json
deleted file mode 100644
index c148471..0000000
--- a/superset-frontend/eslint-stats.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{
- "metrics": [
- {
- "rule": "react-prefer-function-component/react-prefer-function-component",
- "count": 89,
- "files": [
- "/Users/evan/GitHub/superset/superset-frontend/src/CRUD/CollectionTable.tsx:115:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/CRUD/Fieldset.jsx:38:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx:67:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/App/index.jsx:37:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsx:38:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ExploreResultsButton/index.jsx:43:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.jsx:31:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ResultSet/index.tsx:174:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:157:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx:54:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx:75:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/addSlice/AddSliceContainer.tsx:181:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/chart/Chart.jsx:110:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/chart/ChartRenderer.jsx:63:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/AlteredSliceTag/index.jsx:52:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/AnchorLink/index.jsx:42:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/AsyncSelect/index.jsx:45:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/CopyToClipboard/index.jsx:46:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/Datasource/DatasourceEditor.jsx:405:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/FilterableTable/FilterableTable.tsx:116:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/ModalTrigger/index.jsx:54:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/Select/OnPasteSelect.jsx:23:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/components/URLShortLinkButton/index.jsx:35:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/ColorSchemeControlWrapper.jsx:37:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/CssEditor/index.jsx:57:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Dashboard.jsx:76:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/DashboardGrid.jsx:51:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/DeleteComponentButton.jsx:30:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Header/HeaderActionsDropdown/index.jsx:101:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Header/index.jsx:140:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/PropertiesModal/index.jsx:110:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/PublishedStatus/index.jsx:47:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/RefreshIntervalModal.tsx:64:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/SaveModal.tsx:68:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/SliceAdder.jsx:89:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx:125:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/UndoRedoKeyListeners/index.jsx:27:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx:69:8",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/dnd/DragHandle.jsx:35:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/FilterScopeModal.tsx:33:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx:70:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Chart.jsx:114:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/ChartHolder.jsx:156:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Column.jsx:61:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Divider.jsx:39:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Header.jsx:58:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Row.jsx:59:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Tab.jsx:87:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Tabs.jsx:112:8",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.jsx:38:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/menu/BackgroundStyleDropdown.tsx:50:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx:66:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/menu/MarkdownModeDropdown.tsx:43:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx:44:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx:83:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/containers/DashboardComponent.jsx:119:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ControlHeader.jsx:49:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ControlPanelsContainer.tsx:197:8",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/EmbedCodeButton.jsx:36:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ExploreChartHeader/index.jsx:111:8",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/SaveModal.tsx:66:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx:98:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.jsx:59:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/BoundsControl.jsx:50:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/CheckboxControl.jsx:37:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/CollectionControl/index.jsx:76:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ColorPickerControl.jsx:67:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ColorSchemeControl.jsx:51:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx:111:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsx:71:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/index.jsx:88:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsx:88:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.jsx:54:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx:45:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FixedOrMetricControl/index.jsx:51:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx:79:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopoverTitle.jsx:34:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricOption.jsx:43:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx:53:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/SelectControl.jsx:85:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/SpatialControl.jsx:50:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/TextAreaControl.jsx:60:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/TextControl/index.tsx:48:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsx:99:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ViewportControl.jsx:58:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/profile/components/CreatedContent.tsx:31:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/profile/components/Favorites.tsx:31:16",
- "/Users/evan/GitHub/superset/superset-frontend/src/visualizations/FilterBox/FilterBox.jsx:94:1",
- "/Users/evan/GitHub/superset/superset-frontend/src/visualizations/TimeTable/SparklineCell.jsx:90:1"
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 280977d..1825d1f 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -47,7 +47,7 @@
"format": "npm run _prettier -- --write",
"lint": "npm run _lint && npm run type",
"lint-fix": "npm run _lint -- --fix && npm run type",
- "lint-stats": "eslint -f ./eslint_metrics.js -o eslint-stats.json --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx .",
+ "lint-stats": "eslint -f ./scripts/eslint_metrics.js -o scripts/eslint-metrics-report.json -c scripts/eslintrc_metrics.js --no-eslintrc --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx .",
"plugins:build": "node ./scripts/build.js",
"plugins:build-assets": "node ./scripts/copyAssets.js",
"plugins:build-storybook": "cd packages/superset-ui-demo && npm run build-storybook",
diff --git a/superset-frontend/scripts/eslint-metrics-report.json b/superset-frontend/scripts/eslint-metrics-report.json
new file mode 100644
index 0000000..aadd0e2
--- /dev/null
+++ b/superset-frontend/scripts/eslint-metrics-report.json
@@ -0,0 +1,392 @@
+{
+ "metrics": [
+ {
+ "issue": "We prefer function components to class-based components",
+ "eslint rule": "react-prefer-function-component/react-prefer-function-component",
+ "count": 128,
+ "files": [
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/src/chart-composition/ChartFrame.tsx:41:16",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/src/chart-composition/legend/WithLegend.tsx:55:1",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/src/chart-composition/tooltip/TooltipFrame.tsx:33:1",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/src/chart-composition/tooltip/TooltipTable.tsx:42:16",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/src/chart/components/ChartDataProvider.tsx:70:1",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/src/chart/components/SuperChart.tsx:84:16",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/src/chart/components/SuperChartCore.tsx:80:16",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/src/chart/components/reactify.tsx:55:3",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/test/chart/components/reactify.test.tsx:55:3",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-core/test/chart/components/reactify.test.tsx:74:3",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/shared/components/Expandable.tsx:31:16",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/shared/components/VerifyCORS.tsx:55:16",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-number-format/BigNumberStories.jsx:27:1",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-time-format/TimeFormatStories.jsx:27:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-histogram/src/Histogram.jsx:59:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-histogram/src/WithLegend.jsx:57:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-horizon/src/HorizonChart.jsx:61:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-horizon/src/HorizonRow.jsx:69:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-map-box/src/MapBox.jsx:58:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.jsx:76:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/PairedTTest.jsx:42:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/TTestTable.jsx:52:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/AnimatableDeckGLContainer.jsx:57:16",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/CategoricalDeckGLContainer.jsx:74:16",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.jsx:53:8",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/Multi/Multi.jsx:44:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/TooltipRow.jsx:27:16",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Legend.jsx:48:16",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/PlaySlider.jsx:57:16",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/factory.tsx:62:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Geojson/Geojson.jsx:143:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/Polygon.jsx:162:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/Screengrid.jsx:107:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberViz.tsx:67:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/PivotTable.jsx:24:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/TableRenderers.jsx:57:8",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx:83:1",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/preset-chart-xy/src/components/BoxPlot/BoxPlot.tsx:70:16",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/preset-chart-xy/src/components/Line/Line.tsx:108:16",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/preset-chart-xy/src/components/ScatterPlot/ScatterPlot.tsx:69:16",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/preset-chart-xy/src/components/legend/DefaultLegend.tsx:37:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/CRUD/CollectionTable.tsx:115:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/CRUD/Fieldset.tsx:35:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/AceEditorWrapper/index.tsx:67:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/App/index.jsx:37:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsx:38:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ExploreResultsButton/index.jsx:43:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/QueryAutoRefresh/index.jsx:31:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ResultSet/index.tsx:174:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:170:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx:54:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx:75:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/addSlice/AddSliceContainer.tsx:181:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/chart/Chart.jsx:112:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/chart/ChartRenderer.jsx:63:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AlteredSliceTag/index.jsx:52:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AnchorLink/index.jsx:42:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AsyncSelect/index.jsx:45:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/CopyToClipboard/index.jsx:46:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Datasource/DatasourceEditor.jsx:453:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/FilterableTable/FilterableTable.tsx:117:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/ModalTrigger/index.jsx:54:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Select/OnPasteSelect.jsx:23:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/URLShortLinkButton/index.jsx:35:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/ColorSchemeControlWrapper.jsx:39:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/CssEditor/index.jsx:57:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Dashboard.jsx:76:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/DashboardGrid.jsx:51:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/DeleteComponentButton.jsx:30:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Header/HeaderActionsDropdown/index.jsx:101:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Header/index.jsx:140:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/PublishedStatus/index.jsx:47:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/RefreshIntervalModal.tsx:64:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/SaveModal.tsx:68:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/SliceAdder.jsx:89:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx:125:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/UndoRedoKeyListeners/index.jsx:27:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx:69:8",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/FilterScopeModal.tsx:33:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx:70:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Chart.jsx:114:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/ChartHolder.jsx:156:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Column.jsx:61:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Divider.jsx:39:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Header.jsx:58:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Row.jsx:59:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Tab.jsx:87:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Tabs.jsx:112:8",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.jsx:38:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/menu/BackgroundStyleDropdown.tsx:50:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/menu/HoverMenu.tsx:66:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/menu/MarkdownModeDropdown.tsx:43:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/menu/WithPopoverMenu.tsx:44:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx:83:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/containers/DashboardComponent.jsx:119:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ControlHeader.jsx:49:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ControlPanelsContainer.tsx:197:8",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/EmbedCodeButton.jsx:36:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ExploreChartHeader/index.jsx:112:8",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/SaveModal.tsx:66:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx:100:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.jsx:59:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/BoundsControl.jsx:50:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/CheckboxControl.jsx:37:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/CollectionControl/index.jsx:76:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ColorPickerControl.jsx:67:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.jsx:60:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx:111:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsx:71:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/index.jsx:88:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsx:89:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.jsx:54:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx:45:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FixedOrMetricControl/index.jsx:51:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx:80:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopoverTitle.jsx:34:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricOption.jsx:43:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx:53:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/SelectControl.jsx:85:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/SpatialControl.jsx:50:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/TextAreaControl.jsx:60:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/TextControl/index.tsx:48:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsx:99:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ViewportControl.jsx:58:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/profile/components/CreatedContent.tsx:31:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/profile/components/Favorites.tsx:31:16",
+ "/Users/evan/GitHub/superset/superset-frontend/src/visualizations/FilterBox/FilterBox.jsx:94:1",
+ "/Users/evan/GitHub/superset/superset-frontend/src/visualizations/TimeTable/SparklineCell.tsx:91:1"
+ ]
+ },
+ {
+ "issue": "We prefer Typescript - all JSX files should be converted to TSX",
+ "eslint rule": "react/jsx-filename-extension",
+ "count": 246,
+ "files": [
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/stories/plugins/legacy-plugin-chart-event-flow/Stories.jsx:40:3",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-color/ColorPallettesStories.jsx:48:5",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-color/RenderPalettes.jsx:26:5",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-number-format/BigNumberStories.jsx:68:7",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-style/ThemeStories.jsx:31:5",
+ "/Users/evan/GitHub/superset/superset-frontend/packages/superset-ui-demo/storybook/stories/superset-ui-time-format/TimeFormatStories.jsx:57:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-calendar/src/ReactCalendar.jsx:27:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-chord/src/ReactChord.jsx:27:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-force-directed/src/ReactForceDirected.jsx:27:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-histogram/src/Histogram.jsx:84:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-histogram/src/WithLegend.jsx:127:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-horizon/src/HorizonChart.jsx:86:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-horizon/src/HorizonRow.jsx:194:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-map-box/src/MapBox.jsx:123:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.jsx:273:12",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/PairedTTest.jsx:48:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/src/TTestTable.jsx:181:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/src/ReactParallelCoordinates.jsx:27:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-partition/test/OptionDescription.test.jsx:38:23",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-sankey/src/ReactSankey.jsx:27:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-world-map/src/ReactWorldMap.jsx:27:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/AnimatableDeckGLContainer.jsx:88:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/CategoricalDeckGLContainer.jsx:263:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.jsx:107:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/Multi/Multi.jsx:129:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/TooltipRow.jsx:32:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/BootstrapSliderWrapper.jsx:26:5",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/Legend.jsx:88:9",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/components/PlaySlider.jsx:170:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Arc/Arc.jsx:38:5",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Geojson/Geojson.jsx:84:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Grid/Grid.jsx:30:5",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Hex/Hex.jsx:30:5",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Path/Path.jsx:30:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/Polygon.jsx:58:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/Scatter.jsx:37:7",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Screengrid/Screengrid.jsx:41:5",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-deckgl/src/utilities/Shared_DeckGL.jsx:39:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/legacy-preset-chart-nvd3/src/ReactNVD3.jsx:37:3",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/PivotTable.jsx:26:12",
+ "/Users/evan/GitHub/superset/superset-frontend/plugins/plugin-chart-pivot-table/src/react-pivottable/TableRenderers.jsx:41:5",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/DashboardBuilder_spec.jsx:78:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/DashboardGrid_spec.jsx:47:29",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/Dashboard_spec.jsx:68:29",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/PropertiesModal_spec.jsx:77:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/SliceAdder_spec.jsx:75:29",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/dnd/DragDroppable_spec.jsx:44:28",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/ChartHolder_spec.jsx:72:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Chart_spec.jsx:75:29",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Column_spec.jsx:73:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Divider_spec.jsx:52:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Header_spec.jsx:59:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Markdown_spec.jsx:67:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Row_spec.jsx:69:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tab_spec.jsx:72:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/Tabs_spec.jsx:79:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/DraggableNewComponent_spec.jsx:44:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewColumn_spec.jsx:30:20",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewDivider_spec.jsx:30:20",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewHeader_spec.jsx:30:20",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewRow_spec.jsx:30:20",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/gridComponents/new/NewTabs_spec.jsx:30:20",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/dashboard/components/menu/WithPopoverMenu_spec.jsx:26:15",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/AdhocMetricEditPopoverTitle_spec.jsx:39:27",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/AdhocMetricEditPopover_spec.jsx:63:27",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/AdhocMetricOption_spec.jsx:53:27",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/BoundsControl_spec.jsx:31:10",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/ColorScheme_spec.jsx:37:21",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/DatasourceControl_spec.jsx:63:20",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/EmbedCodeButton_spec.jsx:45:33",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/ExploreActionButtons_spec.jsx:40:28",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/ExploreAdditionalActionsMenu.jsx:42:28",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/ExploreChartPanel_spec.jsx:37:33",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/ExploreViewContainer_spec.jsx:70:23",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx:41:20",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/FilterBox_spec.jsx:28:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/FilterDefinitionOption_spec.jsx:39:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/MetricDefinitionOption_spec.jsx:35:20",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/MetricDefinitionValue_spec.jsx:36:7",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/MetricsControl_spec.jsx:57:27",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/QueryAndSaveBtns_spec.jsx:35:28",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/RowCountLabel_spec.jsx:33:33",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/RunQueryActionButton_spec.jsx:38:23",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx:88:13",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/SelectControl_spec.jsx:49:23",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/TextArea_spec.jsx:37:23",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/ViewportControl_spec.jsx:44:21",
+ "/Users/evan/GitHub/superset/superset-frontend/spec/javascripts/explore/components/VizTypeControl_spec.jsx:67:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/CRUD/CollectionTable.test.jsx:35:10",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/App.jsx:128:3",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/App/App.test.jsx:36:23",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/App/index.jsx:105:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ExploreCtasResultsButton/index.jsx:87:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ExploreResultsButton/ExploreResultsButton.test.jsx:74:13",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ExploreResultsButton/index.jsx:103:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/HighlightedSql/HighlightedSql.test.jsx:31:33",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/QueryAutoRefresh/QueryAutoRefresh.test.jsx:42:13",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/QuerySearch/QuerySearch.test.jsx:53:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/QueryStateLabel/QueryStateLabel.test.jsx:32:33",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/QueryTable/QueryTable.test.jsx:35:33",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/QueryTable/index.jsx:62:15",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ResultSet/ResultSet.test.jsx:87:31",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SaveQuery/SaveQuery.test.jsx:38:33",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/ShareSqlLabQuery/ShareSqlLabQuery.test.jsx:37:3",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SouthPane/SouthPane.test.jsx:80:13",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SqlEditor/SqlEditor.test.jsx:74:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SqlEditor/index.jsx:486:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/SqlEditorLeftBar.test.jsx:54:23",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/SqlEditorLeftBar/index.jsx:146:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/TabStatusIcon/TabStatusIcon.test.jsx:28:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/TabbedSqlEditors/TabbedSqlEditors.test.jsx:83:13",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/TabbedSqlEditors/index.jsx:329:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/SqlLab/components/TableElement/TableElement.test.jsx:40:33",
+ "/Users/evan/GitHub/superset/superset-frontend/src/chart/Chart.jsx:206:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/chart/ChartRenderer.jsx:215:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/chart/ChartRenderer.test.jsx:35:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AlteredSliceTag/AlteredSliceTag.test.jsx:50:21",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AlteredSliceTag/index.jsx:166:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AnchorLink/AnchorLink.test.jsx:50:13",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AnchorLink/index.jsx:76:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AsyncSelect/AsyncSelect.test.jsx:46:33",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/AsyncSelect/index.jsx:88:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Checkbox/Checkbox.stories.jsx:35:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/ConfirmStatusChange/ConfirmStatusChange.test.jsx:34:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/CopyToClipboard/index.jsx:39:13",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Datasource/ChangeDatasourceModal.test.jsx:62:25",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Datasource/DatasourceEditor.jsx:132:3",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Datasource/DatasourceEditor.test.jsx:42:10",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Datasource/DatasourceModal.test.jsx:56:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/ErrorBoundary/index.jsx:50:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Form/LabeledErrorBoundInput.test.jsx:39:12",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/FormRow/FormRow.test.jsx:30:12",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/FormRow/index.jsx:42:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/IconButton/IconButton.test.jsx:30:12",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/IconTooltip/IconTooltip.test.jsx:29:33",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/ListView/ListView.test.jsx:129:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/ListViewCard/ImageLoader.test.jsx:45:18",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/ListViewCard/ListViewCard.test.jsx:41:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/MessageToasts/Toast.test.jsx:32:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/MessageToasts/ToastPresenter.test.jsx:32:29",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/ModalTrigger/index.jsx:76:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Select/OnPasteSelect.jsx:79:12",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/Select/OnPasteSelect.test.jsx:55:23",
+ "/Users/evan/GitHub/superset/superset-frontend/src/components/URLShortLinkButton/index.jsx:61:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/AddSliceCard.jsx:118:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/ColorSchemeControlWrapper.jsx:55:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/CssEditor/index.jsx:84:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Dashboard.jsx:291:14",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/DashboardGrid.jsx:43:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/DeleteComponentButton.jsx:34:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Header/HeaderActionsDropdown/index.jsx:228:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/Header/index.jsx:417:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/MissingChart.jsx:29:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/PublishedStatus/index.jsx:62:11",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/SliceAdder.jsx:201:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/dnd/AddSliceDragPreview.jsx:69:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/dnd/DragDroppable.jsx:136:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/FilterFieldItem.jsx:31:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx:54:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.jsx:419:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx:54:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/renderFilterFieldTreeNodes.jsx:36:11",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/renderFilterScopeTreeNodes.jsx:47:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/filterscope/treeIcons.jsx:30:10",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Chart.jsx:310:14",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/ChartHolder.jsx:119:14",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Column.jsx:125:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Divider.jsx:61:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Header.jsx:122:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Markdown.jsx:239:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Row.jsx:124:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Tab.jsx:79:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/Tabs.jsx:204:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/DraggableNewComponent.jsx:42:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/NewColumn.jsx:28:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/NewDivider.jsx:28:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/NewHeader.jsx:28:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/NewMarkdown.jsx:27:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/NewRow.jsx:28:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/gridComponents/new/NewTabs.jsx:28:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx:189:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/components/resizable/ResizableHandle.jsx:22:10",
+ "/Users/evan/GitHub/superset/superset-frontend/src/dashboard/containers/DashboardComponent.jsx:123:24",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/App.jsx:38:3",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ControlHeader.jsx:53:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/EmbedCodeButton.jsx:89:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ExploreAdditionalActionsMenu/index.jsx:73:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ExploreChartHeader/index.jsx:214:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ExploreChartPanel.jsx:221:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/ExploreViewContainer.jsx:428:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/QueryAndSaveBtns.jsx:60:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/RowCountLabel.jsx:44:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx:359:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.jsx:34:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/BoundsControl.jsx:107:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/CheckboxControl.jsx:44:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/CollectionControl/index.jsx:68:3",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ColorPickerControl.jsx:82:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ColorSchemeControl/index.jsx:89:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx:189:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelectPopoverTitle.jsx:62:12",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterBoxItemControl/index.jsx:135:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/AdhocFilterControl.test.jsx:77:27",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/index.jsx:104:37",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/AdhocFilterEditPopover.test.jsx:86:27",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsx:183:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/AdhocFilterEditPopoverSqlTabContent.test.jsx:45:27",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.jsx:126:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterOption/index.jsx:61:3",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/FixedOrMetricControl/index.jsx:102:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx:266:12",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopoverTitle.jsx:77:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricOption.jsx:70:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/AggregateOption.jsx:32:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/FilterDefinitionOption.jsx:37:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/MetricDefinitionOption.jsx:42:12",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/MetricDefinitionValue.jsx:83:12",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.jsx:230:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/SelectControl.jsx:235:29",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/SliderControl.jsx:35:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/SpatialControl.jsx:136:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/TextAreaControl.jsx:74:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsx:179:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/components/controls/ViewportControl.jsx:73:7",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/controls.jsx:130:24",
+ "/Users/evan/GitHub/superset/superset-frontend/src/explore/index.jsx:42:17",
+ "/Users/evan/GitHub/superset/superset-frontend/src/showSavedQuery/index.jsx:39:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/alert/AlertList.test.jsx:88:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/alert/AlertReportModal.test.jsx:84:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/alert/ExecutionLog.test.jsx:67:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/annotation/AnnotationList.test.jsx:79:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/annotation/AnnotationModal.test.jsx:57:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayerModal.test.jsx:48:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/annotationlayers/AnnotationLayersList.test.jsx:83:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/chart/ChartList.test.jsx:109:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/csstemplates/CssTemplateModal.test.jsx:49:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/csstemplates/CssTemplatesList.test.jsx:81:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/dashboard/DashboardList.test.jsx:108:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/data/database/DatabaseList.test.jsx:99:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.test.jsx:206:14",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/data/dataset/DatasetList.test.jsx:83:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/data/savedquery/SavedQueryList.test.jsx:139:5",
+ "/Users/evan/GitHub/superset/superset-frontend/src/views/CRUD/data/savedquery/SavedQueryPreviewModal.test.jsx:76:25",
+ "/Users/evan/GitHub/superset/superset-frontend/src/visualizations/FilterBox/FilterBox.jsx:265:9",
+ "/Users/evan/GitHub/superset/superset-frontend/src/visualizations/FilterBox/controlPanel.jsx:73:10",
+ "/Users/evan/GitHub/superset/superset-frontend/src/visualizations/TimeTable/TimeTable.jsx:118:11"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/superset-frontend/eslint_metrics.js b/superset-frontend/scripts/eslint_metrics.js
similarity index 64%
rename from superset-frontend/eslint_metrics.js
rename to superset-frontend/scripts/eslint_metrics.js
index 9dc68bb..5755382 100644
--- a/superset-frontend/eslint_metrics.js
+++ b/superset-frontend/scripts/eslint_metrics.js
@@ -11,16 +11,22 @@ module.exports = results => {
return map;
}, {});
- const enforcedRules = [
- 'react-prefer-function-component/react-prefer-function-component',
- ];
+ const enforcedRules = {
+ 'react-prefer-function-component/react-prefer-function-component' : {
+ description: "We prefer function components to class-based components",
+ },
+ 'react/jsx-filename-extension' : {
+ description: "We prefer Typescript - all JSX files should be converted to TSX",
+ },
+ };
const metricsByRule = Object.entries(byRuleId)
- .filter(([ruleId, occurrences]) => enforcedRules.includes(ruleId))
+ .filter(([ruleId, occurrences]) => enforcedRules[ruleId] || false)
.map(
([ruleId, occurrences]) => `
\t{
- \t\t"rule": "${ruleId}",
+ \t\t"issue": "${enforcedRules[ruleId].description}",
+ \t\t"eslint rule": "${ruleId}",
\t\t"count": ${occurrences.length},
\t\t"files": [
\t\t\t"${occurrences.join('",\n\t\t\t\t"')}"
diff --git a/superset-frontend/scripts/eslintrc_metrics.js b/superset-frontend/scripts/eslintrc_metrics.js
new file mode 100644
index 0000000..d7efca8
--- /dev/null
+++ b/superset-frontend/scripts/eslintrc_metrics.js
@@ -0,0 +1,65 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 packageConfig = require('../package');
+
+const importCoreModules = [];
+Object.entries(packageConfig.dependencies).forEach(([pkg]) => {
+ if (/@superset-ui/.test(pkg)) {
+ importCoreModules.push(pkg);
+ }
+});
+
+
+module.exports = {
+ extends: [
+ 'plugin:react-prefer-function-component/recommended',
+ ],
+ parser: '@babel/eslint-parser',
+ parserOptions: {
+ ecmaFeatures: {
+ experimentalObjectRestSpread: true,
+ },
+ },
+ env: {
+ browser: true,
+ },
+ settings: {
+ 'import/resolver': {
+ webpack: {},
+ node: {
+ extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'],
+ },
+ },
+ // Allow only core/src and core/test, avoid import modules from lib
+ 'import/internal-regex': /^@superset-ui\/core\/(src|test)\/.*/,
+ 'import/core-modules': importCoreModules,
+ react: {
+ version: 'detect',
+ },
+ },
+ plugins: [
+ 'react',
+ 'react-prefer-function-component',
+ ],
+ rules: {
+ 'react-prefer-function-component/react-prefer-function-component': 1,
+ 'react/jsx-filename-extension': [1, { extensions: ['.tsx'] }],
+ },
+};