Skip to content

Commit c7b293d

Browse files
committed
refactor: migrate plugin-import to plugin-import-x
also `import-resolver-oxc` to the new `import-resolver-typescript`
1 parent 92441bc commit c7b293d

File tree

21 files changed

+321
-1189
lines changed

21 files changed

+321
-1189
lines changed

openbas-front/builder/dev/dev.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint import/no-extraneous-dependencies: 0 */
1+
/* eslint import-x/no-extraneous-dependencies: 0 */
22

33
import { readFileSync } from 'node:fs';
44
import path from 'node:path';

openbas-front/builder/prod/prod.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint import/no-extraneous-dependencies: 0 */
1+
/* eslint import-x/no-extraneous-dependencies: 0 */
22

33
import fs from 'node:fs';
44

openbas-front/eslint.config.js

+14-16
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
/* eslint import/no-extraneous-dependencies: 0 */
2-
3-
// imports to not let tools report them as unused
4-
import 'eslint-import-resolver-oxc';
1+
/* eslint import-x/no-extraneous-dependencies: 0 */
52

63
import js from '@eslint/js';
74
import stylistic from '@stylistic/eslint-plugin';
85
import vitest from '@vitest/eslint-plugin';
6+
import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';
97
import customRules from 'eslint-plugin-custom-rules';
108
import i18next from 'eslint-plugin-i18next';
11-
import importPlugin from 'eslint-plugin-import';
9+
import * as importXPlugin from 'eslint-plugin-import-x';
1210
import playwright from 'eslint-plugin-playwright';
1311
import react from 'eslint-plugin-react';
1412
import reactRefresh from 'eslint-plugin-react-refresh';
@@ -29,12 +27,12 @@ export default [
2927
{ settings: { react: { version: 'detect' } } },
3028

3129
// rules recommended by eslint-plugin-import
32-
importPlugin.flatConfigs.recommended,
33-
importPlugin.flatConfigs.typescript,
30+
importXPlugin.flatConfigs.recommended,
31+
importXPlugin.flatConfigs.typescript,
3432
{
3533
settings: {
36-
'import/resolver': 'oxc',
37-
'import/ignore': [
34+
'import-x/resolver-next': [createTypeScriptImportResolver()],
35+
'import-x/ignore': [
3836
'react-apexcharts', // ignore react-apexcharts as the default export is broken
3937
],
4038
},
@@ -102,11 +100,11 @@ export default [
102100
'@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: false }],
103101

104102
// eslint-plugin-import rules
105-
'import/no-named-as-default-member': 'off',
106-
'import/prefer-default-export': 'error',
107-
'import/no-mutable-exports': 'error',
108-
'import/namespace': 'off', // off to reduce computing time for one file, on when doing yarn lint
109-
'import/no-extraneous-dependencies': [
103+
'import-x/no-named-as-default-member': 'off',
104+
'import-x/prefer-default-export': 'error',
105+
'import-x/no-mutable-exports': 'error',
106+
'import-x/namespace': 'off', // off to reduce computing time for one file, on when doing yarn lint
107+
'import-x/no-extraneous-dependencies': [
110108
'error',
111109
{
112110
devDependencies: [
@@ -183,7 +181,7 @@ export default [
183181
plugins: { vitest },
184182
rules: {
185183
...vitest.configs.recommended.rules,
186-
'import/no-extraneous-dependencies': [
184+
'import-x/no-extraneous-dependencies': [
187185
'error',
188186
{
189187
devDependencies: [
@@ -202,7 +200,7 @@ export default [
202200
...playwright.configs['flat/recommended'],
203201
rules: {
204202
...playwright.configs['flat/recommended'].rules,
205-
'import/no-extraneous-dependencies': [
203+
'import-x/no-extraneous-dependencies': [
206204
'error',
207205
{
208206
devDependencies: [

openbas-front/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@
9595
"cross-env": "7.0.3",
9696
"esbuild": "0.25.3",
9797
"eslint": "9.25.1",
98-
"eslint-import-resolver-oxc": "0.13.2",
98+
"eslint-import-resolver-typescript": "4.3.4",
9999
"eslint-plugin-custom-rules": "link:packages/eslint-plugin-custom-rules",
100100
"eslint-plugin-i18next": "6.1.1",
101-
"eslint-plugin-import": "2.31.0",
101+
"eslint-plugin-import-x": "4.11.0",
102102
"eslint-plugin-playwright": "2.2.0",
103103
"eslint-plugin-react": "7.37.5",
104104
"eslint-plugin-react-refresh": "0.4.20",
@@ -131,7 +131,7 @@
131131
"start": "vite",
132132
"deprecated-start": "node builder/dev/dev.js",
133133
"build": "node builder/prod/prod.js",
134-
"lint": "cross-env DEBUG=eslint:eslint TIMING=1 eslint --max-warnings 0 --cache --rule \"{'import/namespace': 'error', 'import/no-cycle': ['error', {'ignoreExternal': true, 'disableScc': true}]}\" .",
134+
"lint": "cross-env DEBUG=eslint:eslint TIMING=1 eslint --max-warnings 0 --cache --rule \"{'import-x/namespace': 'error', 'import-x/no-cycle': ['error', {'ignoreExternal': true}]}\" .",
135135
"control": "yarn audit --groups dependencies --summary",
136136
"check-ts": "tsc",
137137
"generate-types-from-api": "swagger-typescript-api generate --no-client -p ${API_URL:-http://localhost:8080}/api-docs -o src/utils -n api-types.d.ts --sort-types",

openbas-front/src/actions/players/player-actions.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { type SearchPaginationInput } from '../../utils/api-types';
33

44
const PLAYER_URI = '/api/players';
55

6-
// eslint-disable-next-line import/prefer-default-export
6+
// eslint-disable-next-line import-x/prefer-default-export
77
export const searchPlayers = (searchPaginationInput: SearchPaginationInput) => {
88
const data = searchPaginationInput;
99
const uri = `${PLAYER_URI}/search`;

openbas-front/src/admin/components/common/form/TextFieldAskAI.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ import { useTheme } from '@mui/material/styles';
1919
import { type FunctionComponent, type MouseEvent as ReactMouseEvent, useState } from 'react';
2020

2121
import { aiChangeTone, aiExplain, aiFixSpelling, aiGenMedia, aiGenMessage, aiGenSubject, aiMakeLonger, aiMakeShorter, aiSummarize } from '../../../../actions/AskAI';
22-
// eslint-disable-next-line import/no-cycle
22+
// eslint-disable-next-line import-x/no-cycle
2323
import SimpleRichTextField from '../../../../components/fields/SimpleRichTextField';
2424
import { useFormatter } from '../../../../components/i18n';
25-
// eslint-disable-next-line import/no-cycle
25+
// eslint-disable-next-line import-x/no-cycle
2626
import ResponseDialog from '../../../../utils/ai/ResponseDialog';
2727
import useAI from '../../../../utils/hooks/useAI';
2828
import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition';

openbas-front/src/admin/components/common/injects/teams/utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as R from 'ramda';
44
import { type Team } from '../../../../../utils/api-types';
55
import { colors } from '../../../../../utils/Charts';
66

7-
// eslint-disable-next-line import/prefer-default-export
7+
// eslint-disable-next-line import-x/prefer-default-export
88
export const getTeamsColors: (teams: Team[]) => Record<string, string> = (teams: Team[]) => {
99
const theme = useTheme();
1010

openbas-front/src/admin/components/scenarios/constants.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// eslint-disable-next-line import/prefer-default-export
1+
// eslint-disable-next-line import-x/prefer-default-export
22
export const scenarioCategories = new Map([
33
['global-crisis', 'Global Crisis'],
44
['attack-scenario', 'Attack Scenario'],

openbas-front/src/components/AppIntlProvider.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ const momentMap = {
3737
};
3838

3939
// Export LANG to be used in non-React code
40-
// eslint-disable-next-line import/no-mutable-exports
40+
// eslint-disable-next-line import-x/no-mutable-exports
4141
export let LANG = DEFAULT_LANG;
4242

4343
const AppIntlProvider: FunctionComponent<{ children: ReactElement }> = ({ children }) => {

openbas-front/src/components/CKEditor.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ import {
5656
} from 'ckeditor5';
5757
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
5858
// @ts-ignore
59-
// eslint-disable-next-line import/extensions
59+
// eslint-disable-next-line import-x/extensions
6060
import en from 'ckeditor5/translations/en.js';
6161
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
6262
// @ts-ignore
63-
// eslint-disable-next-line import/extensions
63+
// eslint-disable-next-line import-x/extensions
6464
import fr from 'ckeditor5/translations/fr.js';
6565
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
6666
// @ts-ignore
67-
// eslint-disable-next-line import/extensions
67+
// eslint-disable-next-line import-x/extensions
6868
import zh from 'ckeditor5/translations/zh.js';
6969
import { useEffect } from 'react';
7070
import { useIntl } from 'react-intl';

openbas-front/src/components/fields/OldRichTextField.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { FormHelperText, InputLabel } from '@mui/material';
22
import { Field } from 'react-final-form';
33
import { makeStyles } from 'tss-react/mui';
44

5-
// eslint-disable-next-line import/no-cycle
5+
// eslint-disable-next-line import-x/no-cycle
66
import TextFieldAskAI from '../../admin/components/common/form/TextFieldAskAI';
77
import CKEditor from '../CKEditor';
88
import { useFormatter } from '../i18n';

openbas-front/src/components/fields/SimpleRichTextField.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { InputLabel } from '@mui/material';
22

3-
// eslint-disable-next-line import/no-cycle
3+
// eslint-disable-next-line import-x/no-cycle
44
import TextFieldAskAI from '../../admin/components/common/form/TextFieldAskAI';
55
import CKEditor from '../CKEditor';
66

openbas-front/src/network.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import axios from 'axios';
22
import { normalize } from 'normalizr';
33

4-
// eslint-disable-next-line import/prefer-default-export
4+
// eslint-disable-next-line import-x/prefer-default-export
55
export const api = (schema) => {
66
const instance = axios.create({ headers: { responseType: 'json' } });
77
// Intercept to apply schema and test unauthorized users

openbas-front/src/public/components/systembanners/utils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const computeBanners = (settings: PlatformSettings): BannerMessage => {
2020
return bannerLevel;
2121
};
2222

23-
// eslint-disable-next-line import/prefer-default-export
23+
// eslint-disable-next-line import-x/prefer-default-export
2424
export const computeBannerSettings = (settings: PlatformSettings) => {
2525
const bannerByLevel = computeBanners(settings);
2626
const isBannerActivated = bannerByLevel !== undefined && isNotEmptyField(recordKeys(bannerByLevel));

openbas-front/src/utils/ai/ResponseDialog.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { LoadingButton } from '@mui/lab';
22
import { Alert, Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from '@mui/material';
33
// As we can ask AI after and follow up, there is a dependency lifecycle here that can be accepted
44
// TODO: Cleanup a bit in upcoming version
5-
// eslint-disable-next-line import/no-cycle
5+
// eslint-disable-next-line import-x/no-cycle
66
import MDEditor, { commands } from '@uiw/react-md-editor/nohighlight';
77
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
88
// @ts-ignore
99
import { type FunctionComponent, useEffect, useRef } from 'react';
1010

11-
// eslint-disable-next-line import/no-cycle
11+
// eslint-disable-next-line import-x/no-cycle
1212
import TextFieldAskAI from '../../admin/components/common/form/TextFieldAskAI';
1313
import CKEditor from '../../components/CKEditor';
1414
import { useFormatter } from '../../components/i18n';

openbas-front/src/utils/attack_patterns/attack_patterns.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { type AttackPattern } from '../api-types';
22

3-
// eslint-disable-next-line import/prefer-default-export
3+
// eslint-disable-next-line import-x/prefer-default-export
44
export const sortAttackPattern = (attackPattern1: AttackPattern, attackPattern2: AttackPattern) => {
55
if (attackPattern1.attack_pattern_name < attackPattern2.attack_pattern_name) {
66
return -1;

openbas-front/src/utils/hooks.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useDispatch } from 'react-redux';
22

33
// TODO upgrade redux to make it correctly work https://redux.js.org/usage/usage-with-typescript
4-
// eslint-disable-next-line @typescript-eslint/no-explicit-any,import/prefer-default-export
4+
// eslint-disable-next-line @typescript-eslint/no-explicit-any,import-x/prefer-default-export
55
export const useAppDispatch: any = useDispatch;
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { type KillChainPhase } from '../api-types';
22

3-
// eslint-disable-next-line import/prefer-default-export
3+
// eslint-disable-next-line import-x/prefer-default-export
44
export const sortKillChainPhase = (k1: KillChainPhase, k2: KillChainPhase) => {
55
return (k1.phase_order ?? 0) - (k2.phase_order ?? 0);
66
};

openbas-front/src/utils/technical.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// eslint-disable-next-line import/prefer-default-export
1+
// eslint-disable-next-line import-x/prefer-default-export
22
export enum TechnicalScenarioSimulationEnum {
33
Scenario = 'SCENARIO',
44
Simulation = 'SIMULATION',

openbas-front/tests_e2e/fixtures/baseFixtures.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,5 @@ const test = testBase.extend<{ autoTestFixture: string }>({
3939
}],
4040
});
4141

42-
// eslint-disable-next-line import/prefer-default-export
42+
// eslint-disable-next-line import-x/prefer-default-export
4343
export { test };

0 commit comments

Comments
 (0)