Skip to content

Commit 3c6e0e8

Browse files
authored
Chore: ESlint import order (grafana#44959)
* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
1 parent 147a160 commit 3c6e0e8

File tree

3,311 files changed

+14016
-8732
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,311 files changed

+14016
-8732
lines changed

.betterer.results

+210-210
Large diffs are not rendered by default.

.eslintignore

+3
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,6 @@ vendor
2020
# Auto-generated localisation files
2121
public/locales/_build/
2222
public/locales/**/*.js
23+
24+
# Auto-generated icon file
25+
packages/grafana-ui/src/components/Icon/iconBundle.ts

.eslintrc

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
11
{
22
"extends": ["@grafana/eslint-config"],
33
"root": true,
4-
"plugins": ["@emotion", "lodash", "jest"],
4+
"plugins": ["@emotion", "lodash", "jest", "import"],
5+
"settings": {
6+
"import/internal-regex": "^(app/)|(@grafana)",
7+
"import/external-module-folders": ["node_modules", ".yarn"]
8+
},
59
"rules": {
610
"react/prop-types": "off",
711
"@emotion/jsx-import": "error",
812
"lodash/import-scope": [2, "member"],
9-
"jest/no-focused-tests": "error"
13+
"jest/no-focused-tests": "error",
14+
"import/order": [
15+
"error",
16+
{
17+
"groups": [["builtin", "external"], "internal", "parent", "sibling", "index"],
18+
"newlines-between": "always",
19+
"alphabetize": { "order": "asc" }
20+
}
21+
]
1022
},
1123
"overrides": [
1224
{

e2e/dashboards-suite/dashboard-time-zone.spec.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { e2e } from '@grafana/e2e';
21
import {
32
addDays,
43
addHours,
@@ -10,6 +9,8 @@ import {
109
toDate,
1110
} from 'date-fns';
1211

12+
import { e2e } from '@grafana/e2e';
13+
1314
e2e.scenario({
1415
describeName: 'Dashboard time zone support',
1516
itName: 'Tests dashboard time zone scenarios',

e2e/panels-suite/panelEdit_queries.spec.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { e2e } from '@grafana/e2e';
2+
23
import { expect } from '../../public/test/lib/common';
34

45
const flakyTimeout = 10000;
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { e2e } from '@grafana/e2e';
2+
23
import { smokeTestScenario } from '../shared/smokeTestScenario';
34

45
e2e.scenario(smokeTestScenario);

e2e/verify/specs/smoketests.spec.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { e2e } from '@grafana/e2e';
2+
23
import { smokeTestScenario } from '../../shared/smokeTestScenario';
34

45
e2e.scenario(smokeTestScenario);

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"lint:ts": "eslint . --ext .js,.tsx,.ts --cache",
2323
"lint:sass": "yarn stylelint '{public/sass,packages}/**/*.scss' --cache",
2424
"test:ci": "betterer ci && mkdir -p reports/junit && JEST_JUNIT_OUTPUT_DIR=reports/junit jest --ci --reporters=default --reporters=jest-junit -w ${TEST_MAX_WORKERS:-100%}",
25-
"lint:fix": "yarn lint --fix",
25+
"lint:fix": "yarn lint:ts --fix",
2626
"packages:build": "lerna run clean && lerna run build --ignore @grafana-plugins/input-datasource",
2727
"packages:docsExtract": "rm -rf ./reports/docs && lerna run docsExtract",
2828
"packages:docsToMarkdown": "api-documenter markdown --input-folder ./reports/docs/ --output-folder ./docs/sources/packages_api/ --hugo",
@@ -182,6 +182,7 @@
182182
"enzyme-to-json": "3.6.2",
183183
"eslint": "8.11.0",
184184
"eslint-config-prettier": "8.5.0",
185+
"eslint-plugin-import": "^2.26.0",
185186
"eslint-plugin-jest": "26.1.2",
186187
"eslint-plugin-jsdoc": "38.0.6",
187188
"eslint-plugin-lodash": "7.4.0",

packages/grafana-data/rollup.config.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import resolve from '@rollup/plugin-node-resolve';
21
import commonjs from '@rollup/plugin-commonjs';
3-
import sourceMaps from 'rollup-plugin-sourcemaps';
42
import json from '@rollup/plugin-json';
5-
import { terser } from 'rollup-plugin-terser';
3+
import resolve from '@rollup/plugin-node-resolve';
64
import path from 'path';
5+
import sourceMaps from 'rollup-plugin-sourcemaps';
6+
import { terser } from 'rollup-plugin-terser';
77

88
const pkg = require('./package.json');
99

packages/grafana-data/src/dataframe/ArrayDataFrame.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import { FieldType, DataFrame } from '../types';
2+
13
import { ArrayDataFrame } from './ArrayDataFrame';
24
import { toDataFrameDTO } from './processDataFrame';
3-
import { FieldType, DataFrame } from '../types';
45

56
describe('Array DataFrame', () => {
67
const input = [

packages/grafana-data/src/dataframe/ArrayDataFrame.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import { Vector, QueryResultMeta } from '../types';
12
import { Field, FieldType, DataFrame } from '../types/dataFrame';
3+
import { FunctionalVector } from '../vector/FunctionalVector';
24
import { vectorToArray } from '../vector/vectorToArray';
3-
import { Vector, QueryResultMeta } from '../types';
5+
46
import { guessFieldTypeFromNameAndValue, toDataFrameDTO } from './processDataFrame';
5-
import { FunctionalVector } from '../vector/FunctionalVector';
67

78
/** @public */
89
export type ValueConverter<T = any> = (val: any) => T;

packages/grafana-data/src/dataframe/CircularDataFrame.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { MutableDataFrame } from './MutableDataFrame';
21
import { CircularVector } from '../vector/CircularVector';
32

3+
import { MutableDataFrame } from './MutableDataFrame';
4+
45
interface CircularOptions {
56
append?: 'head' | 'tail';
67
capacity?: number;

packages/grafana-data/src/dataframe/DataFrameJSON.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { FieldType } from '../types/dataFrame';
2+
23
import { DataFrameJSON, dataFrameFromJSON } from './DataFrameJSON';
34

45
describe('DataFrame JSON', () => {

packages/grafana-data/src/dataframe/DataFrameJSON.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { DataFrame, FieldType, FieldConfig, Labels, QueryResultMeta } from '../types';
22
import { ArrayVector } from '../vector';
3+
34
import { guessFieldTypeFromNameAndValue } from './processDataFrame';
45

56
/**

packages/grafana-data/src/dataframe/DataFrameView.test.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { FieldType, DataFrameDTO } from '../types/dataFrame';
21
import { DateTime } from '../datetime/moment_wrapper';
3-
import { MutableDataFrame } from './MutableDataFrame';
2+
import { FieldType, DataFrameDTO } from '../types/dataFrame';
3+
44
import { DataFrameView } from './DataFrameView';
5+
import { MutableDataFrame } from './MutableDataFrame';
56

67
interface MySpecialObject {
78
time: DateTime;

packages/grafana-data/src/dataframe/DataFrameView.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { DataFrame, Field } from '../types/dataFrame';
21
import { DisplayProcessor } from '../types';
2+
import { DataFrame, Field } from '../types/dataFrame';
33
import { FunctionalVector } from '../vector/FunctionalVector';
44

55
/**

packages/grafana-data/src/dataframe/FieldCache.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { FieldCache } from './FieldCache';
21
import { FieldType } from '../types/dataFrame';
2+
3+
import { FieldCache } from './FieldCache';
34
import { toDataFrame } from './processDataFrame';
45

56
describe('FieldCache', () => {

packages/grafana-data/src/dataframe/MutableDataFrame.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { DataFrameDTO, FieldType } from '../types/dataFrame';
2+
23
import { MutableDataFrame } from './MutableDataFrame';
34

45
describe('Reversing DataFrame', () => {

packages/grafana-data/src/dataframe/MutableDataFrame.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
import { Field, DataFrame, DataFrameDTO, FieldDTO, FieldType } from '../types/dataFrame';
2-
import { QueryResultMeta } from '../types/data';
3-
import { guessFieldTypeFromValue, guessFieldTypeForField, toDataFrameDTO } from './processDataFrame';
41
import { isString } from 'lodash';
5-
import { makeFieldParser } from '../utils/fieldParser';
2+
3+
import { QueryResultMeta } from '../types/data';
4+
import { Field, DataFrame, DataFrameDTO, FieldDTO, FieldType } from '../types/dataFrame';
65
import { MutableVector, Vector } from '../types/vector';
6+
import { makeFieldParser } from '../utils/fieldParser';
77
import { ArrayVector } from '../vector/ArrayVector';
88
import { FunctionalVector } from '../vector/FunctionalVector';
99

10+
import { guessFieldTypeFromValue, guessFieldTypeForField, toDataFrameDTO } from './processDataFrame';
11+
1012
export type MutableField<T = any> = Field<T, MutableVector<T>>;
1113

1214
type MutableVectorCreator = (buffer?: any[]) => MutableVector;

packages/grafana-data/src/dataframe/dimensions.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Field } from '../types/dataFrame';
21
import { KeyValue } from '../types/data';
2+
import { Field } from '../types/dataFrame';
33

44
export interface Dimension<T = any> {
55
// Name of the dimension

packages/grafana-data/src/dataframe/frameComparisons.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { FieldType } from '../types/dataFrame';
2+
23
import { compareDataFrameStructures, compareArrayValues } from './frameComparisons';
34
import { toDataFrame } from './processDataFrame';
45

packages/grafana-data/src/dataframe/processDataFrame.test.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
import { dateTime } from '../datetime/moment_wrapper';
2+
import { DataFrameDTO, FieldType, TableData, TimeSeries } from '../types/index';
3+
4+
import { ArrayDataFrame } from './ArrayDataFrame';
5+
import { MutableDataFrame } from './MutableDataFrame';
16
import {
27
guessFieldTypeFromValue,
38
guessFieldTypes,
@@ -7,10 +12,7 @@ import {
712
toDataFrame,
813
toLegacyResponseData,
914
} from './processDataFrame';
10-
import { DataFrameDTO, FieldType, TableData, TimeSeries } from '../types/index';
11-
import { dateTime } from '../datetime/moment_wrapper';
12-
import { MutableDataFrame } from './MutableDataFrame';
13-
import { ArrayDataFrame } from './ArrayDataFrame';
15+
1416
import { getFieldTypeFromValue } from '.';
1517

1618
describe('toDataFrame', () => {

packages/grafana-data/src/dataframe/processDataFrame.ts

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
import { isArray, isBoolean, isNumber, isString } from 'lodash';
33

44
// Types
5+
import { isDateTime } from '../datetime/moment_wrapper';
6+
import { fieldIndexComparer } from '../field/fieldComparers';
7+
import { getFieldDisplayName } from '../field/fieldState';
58
import {
69
DataFrame,
710
Field,
@@ -17,15 +20,13 @@ import {
1720
TIME_SERIES_VALUE_FIELD_NAME,
1821
TIME_SERIES_TIME_FIELD_NAME,
1922
} from '../types/index';
20-
import { isDateTime } from '../datetime/moment_wrapper';
2123
import { ArrayVector } from '../vector/ArrayVector';
22-
import { MutableDataFrame } from './MutableDataFrame';
2324
import { SortedVector } from '../vector/SortedVector';
24-
import { ArrayDataFrame } from './ArrayDataFrame';
25-
import { getFieldDisplayName } from '../field/fieldState';
26-
import { fieldIndexComparer } from '../field/fieldComparers';
2725
import { vectorToArray } from '../vector/vectorToArray';
26+
27+
import { ArrayDataFrame } from './ArrayDataFrame';
2828
import { dataFrameFromJSON } from './DataFrameJSON';
29+
import { MutableDataFrame } from './MutableDataFrame';
2930

3031
function convertTableToDataFrame(table: TableData): DataFrame {
3132
const fields = table.columns.map((c) => {

packages/grafana-data/src/dataframe/utils.test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { toDataFrame } from './processDataFrame';
21
import { FieldType } from '../types';
2+
3+
import { toDataFrame } from './processDataFrame';
34
import { anySeriesWithTimeField } from './utils';
45

56
describe('anySeriesWithTimeField', () => {

packages/grafana-data/src/dataframe/utils.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { DataFrame, FieldType } from '../types/dataFrame';
2+
23
import { getTimeField } from './processDataFrame';
34

45
export function isTimeSerie(frame: DataFrame) {

packages/grafana-data/src/datetime/datemath.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import sinon, { SinonFakeTimers } from 'sinon';
21
import { each } from 'lodash';
2+
import sinon, { SinonFakeTimers } from 'sinon';
33

44
import * as dateMath from './datemath';
55
import { dateTime, DurationUnit, DateTime } from './moment_wrapper';

packages/grafana-data/src/datetime/datemath.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { includes, isDate } from 'lodash';
2-
import { DateTime, dateTime, dateTimeForTimeZone, DurationUnit, isDateTime, ISO_8601 } from './moment_wrapper';
2+
33
import { TimeZone } from '../types/index';
44

5+
import { DateTime, dateTime, dateTimeForTimeZone, DurationUnit, isDateTime, ISO_8601 } from './moment_wrapper';
6+
57
const units: DurationUnit[] = ['y', 'M', 'w', 'd', 'h', 'm', 's', 'Q'];
68

79
/**

packages/grafana-data/src/datetime/durationutil.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Duration, Interval } from 'date-fns';
2-
import intervalToDuration from 'date-fns/intervalToDuration';
32
import add from 'date-fns/add';
3+
import intervalToDuration from 'date-fns/intervalToDuration';
44

55
const durationMap: { [key in Required<keyof Duration>]: string[] } = {
66
years: ['y', 'Y', 'years'],

packages/grafana-data/src/datetime/formatter.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
/* eslint-disable id-blacklist, no-restricted-imports, @typescript-eslint/ban-types */
22
import moment, { MomentInput, Moment } from 'moment-timezone';
3+
34
import { TimeZone } from '../types';
4-
import { DateTimeInput } from './moment_wrapper';
5-
import { systemDateFormats } from './formats';
5+
66
import { DateTimeOptions, getTimeZone } from './common';
7+
import { systemDateFormats } from './formats';
8+
import { DateTimeInput } from './moment_wrapper';
79

810
/**
911
* The type describing the options that can be passed to the {@link dateTimeFormat}

packages/grafana-data/src/datetime/moment_wrapper.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import moment, { Moment, MomentInput, DurationInputArg1, DurationInputArg2 } from 'moment';
2+
13
import { TimeZone } from '../types/time';
24
/* eslint-disable id-blacklist, no-restricted-imports, @typescript-eslint/ban-types */
3-
import moment, { Moment, MomentInput, DurationInputArg1, DurationInputArg2 } from 'moment';
45
export interface DateTimeBuiltinFormat {
56
__momentBuiltinFormatBrand: any;
67
}

packages/grafana-data/src/datetime/parser.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { dateTimeParse } from './parser';
21
import { systemDateFormats } from './formats';
2+
import { dateTimeParse } from './parser';
33

44
describe('dateTimeParse', () => {
55
it('should be able to parse using default format', () => {

packages/grafana-data/src/datetime/parser.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
/* eslint-disable id-blacklist, no-restricted-imports, @typescript-eslint/ban-types */
2+
import { lowerCase } from 'lodash';
23
import moment, { MomentInput } from 'moment-timezone';
3-
import { DateTimeInput, DateTime, isDateTime } from './moment_wrapper';
4+
45
import { DateTimeOptions, getTimeZone } from './common';
56
import { parse, isValid } from './datemath';
6-
import { lowerCase } from 'lodash';
77
import { systemDateFormats } from './formats';
8+
import { DateTimeInput, DateTime, isDateTime } from './moment_wrapper';
89

910
/**
1011
* The type that describes options that can be passed when parsing a date and time value.

packages/grafana-data/src/datetime/rangeutil.test.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { TimeRange } from '../types/time';
2-
import { dateTime, rangeUtil } from './index';
2+
33
import { timeRangeToRelative } from './rangeutil';
44

5+
import { dateTime, rangeUtil } from './index';
6+
57
describe('Range Utils', () => {
68
describe('relative time', () => {
79
it('should identify absolute vs relative', () => {

packages/grafana-data/src/datetime/rangeutil.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { each, has } from 'lodash';
33
import { RawTimeRange, TimeRange, TimeZone, IntervalValues, RelativeTimeRange, TimeOption } from '../types/time';
44

55
import * as dateMath from './datemath';
6-
import { isDateTime, DateTime, dateTime } from './moment_wrapper';
76
import { timeZoneAbbrevation, dateTimeFormat, dateTimeFormatTimeAgo } from './formatter';
7+
import { isDateTime, DateTime, dateTime } from './moment_wrapper';
88
import { dateTimeParse } from './parser';
99

1010
const spans: { [key: string]: { display: string; section?: number } } = {

packages/grafana-data/src/datetime/timezones.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { getTimeZoneInfo } from './timezones';
21
import { setTimeZoneResolver } from './common';
2+
import { getTimeZoneInfo } from './timezones';
33

44
describe('getTimeZoneInfo', () => {
55
// global timezone is set to Pacific/Easter, see jest-config.js file

packages/grafana-data/src/datetime/timezones.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import moment from 'moment-timezone';
21
import { memoize } from 'lodash';
2+
import moment from 'moment-timezone';
3+
34
import { TimeZone } from '../types';
5+
46
import { getTimeZone } from './common';
57

68
export enum InternalTimeZones {

packages/grafana-data/src/events/EventBus.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { EventBusSrv } from './EventBus';
2-
import { BusEvent, BusEventWithPayload } from './types';
3-
import { eventFactory } from './eventFactory';
42
import { DataHoverEvent } from './common';
3+
import { eventFactory } from './eventFactory';
4+
import { BusEvent, BusEventWithPayload } from './types';
55

66
interface LoginEventPayload {
77
logins: number;

packages/grafana-data/src/events/EventBus.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import EventEmitter from 'eventemitter3';
22
import { Unsubscribable, Observable } from 'rxjs';
33
import { filter } from 'rxjs/operators';
4+
45
import {
56
EventBus,
67
LegacyEmitter,

packages/grafana-data/src/events/common.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { AnnotationEvent, DataFrame } from '../types';
2+
23
import { BusEventBase, BusEventWithPayload } from './types';
34

45
/**

0 commit comments

Comments
 (0)