Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions packages/devextreme-cli/.eslintignore

This file was deleted.

87 changes: 0 additions & 87 deletions packages/devextreme-cli/.eslintrc

This file was deleted.

103 changes: 103 additions & 0 deletions packages/devextreme-cli/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
import globals from 'globals';

export default [
{
ignores: [
'src/templates/**',
'testing/sandbox/**'
]
},
{
linterOptions: {
reportUnusedDisableDirectives: 'off'
},
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
parserOptions: {
ecmaFeatures: {
globalReturn: true
}
},
globals: {
...globals.node,
...globals.es2022,
setInterval: 'readonly',
setTimeout: 'readonly',
clearInterval: 'readonly',
clearTimeout: 'readonly',
require: 'readonly',
module: 'readonly',
exports: 'readonly'
}
},
rules: {
'block-spacing': 'error',
'comma-spacing': 'error',
'computed-property-spacing': 'error',
'comma-style': ['error', 'last'],
'eqeqeq': ['error', 'allow-null'],
'strict': 'error',
'func-call-spacing': 'error',
'key-spacing': 'error',
'keyword-spacing': [
'error',
{
overrides: {
catch: { after: false },
for: { after: false },
if: { after: false },
switch: { after: false },
while: { after: false }
}
}
],
'linebreak-style': ['error', 'unix'],
'no-multiple-empty-lines': ['error', { max: 2 }],
'no-irregular-whitespace': 'error',
'no-multi-spaces': 'error',
'no-trailing-spaces': 'error',
'no-new-func': 'error',
'no-eval': 'error',
'no-undef': 'error',
'no-unused-expressions': 'off',
'no-unused-vars': ['error', { args: 'none', caughtErrors: 'none' }],
'no-extend-native': 'error',
'no-alert': 'error',
'no-whitespace-before-property': 'error',
'object-curly-spacing': ['error', 'always'],
'semi-spacing': 'error',
'semi': 'error',
'space-before-blocks': 'error',
'space-before-function-paren': ['error', 'never'],
'space-in-parens': 'error',
'space-infix-ops': 'error',
'space-unary-ops': 'error',
'spaced-comment': ['error', 'always', { markers: ['/'] }],
'brace-style': ['error', '1tbs', { allowSingleLine: true }],
'curly': ['error', 'multi-line', 'consistent'],
'unicode-bom': ['error', 'never'],
'eol-last': ['error', 'always'],
'indent': [
'error',
4,
{
SwitchCase: 1,
MemberExpression: 1,
CallExpression: {
arguments: 1
}
}
],
'quotes': ['error', 'single']
}
},
{
files: ['testing/**/*.js'],
languageOptions: {
globals: {
...globals.jest
}
}
}
];
23 changes: 12 additions & 11 deletions packages/devextreme-cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,30 +48,31 @@
"strip-bom": "^4.0.0"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"@eslint/compat": "^1.2.4",
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "^9.39.4",
"@typescript-eslint/eslint-plugin": "^8.61.0",
"@typescript-eslint/parser": "^8.61.0",
"@types/node": "20.19.42",
"create-vite": "7.1.3",
"cross-env": "^5.2.1",
"eslint": "^7.32.0",
"eslint": "^9.39.4",
"eslint-config-angular": "^0.5.0",
"eslint-config-prettier": "^8.10.2",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-angular": "^4.1.0",
"eslint-plugin-jest": "^22.21.0",
"eslint-plugin-prettier": "^4.2.5",
"eslint-plugin-jest": "^28.10.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-unused-imports": "^1.1.5",
"eslint-plugin-vue": "^7.20.0",
"eslint-stylish": "^0.2.0",
"eslint-plugin-react-hooks": "^5.1.0",
"eslint-plugin-unused-imports": "^4.1.4",
"eslint-plugin-vue": "^9.32.0",
"globals": "^15.14.0",
"jest": "^29.7.0",
"jest-image-snapshot": "^6.5.2",
"prettier": "^2.8.8",
"rimraf": "^2.7.1",
"tree-kill": "^1.2.2",
"tree-kill-promise": "^1.0.12",
"typescript": "^4.9.5",
"typescript-eslint-parser": "^22.0.0",
"wait-on": "8.0.5"
}
}
6 changes: 0 additions & 6 deletions packages/devextreme-cli/testing/.eslintrc

This file was deleted.

32 changes: 32 additions & 0 deletions packages/devextreme-cli/testing/lint-config/angular.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import { FlatCompat } from '@eslint/eslintrc';
import { fixupConfigRules } from '@eslint/compat';
import globals from 'globals';
import tsParser from '@typescript-eslint/parser';

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const compat = new FlatCompat({ baseDirectory: __dirname });

const tsFiles = ['**/*.ts', '**/*.tsx'];

export default [
...fixupConfigRules(compat.extends('angular', 'plugin:angular/johnpapa')).map(config => ({
...config,
files: tsFiles
})),
{
files: tsFiles,
languageOptions: {
parser: tsParser,
ecmaVersion: 2018,
sourceType: 'module',
globals: {
...globals.node
}
},
rules: {
'angular/log': 'off'
}
}
];
14 changes: 0 additions & 14 deletions packages/devextreme-cli/testing/lint-config/angular.eslintrc

This file was deleted.

64 changes: 64 additions & 0 deletions packages/devextreme-cli/testing/lint-config/react-ts.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import globals from 'globals';
import tsParser from '@typescript-eslint/parser';
import tsPlugin from '@typescript-eslint/eslint-plugin';
import reactPlugin from 'eslint-plugin-react';
import reactHooks from 'eslint-plugin-react-hooks';
import unusedImports from 'eslint-plugin-unused-imports';
import jestPlugin from 'eslint-plugin-jest';
import prettierConfig from 'eslint-config-prettier';

export default [
{ ignores: ['node_modules/'] },
{
files: ['**/*.ts', '**/*.tsx'],
languageOptions: {
parser: tsParser,
ecmaVersion: 2018,
sourceType: 'module',
parserOptions: {
project: './testing/sandbox/react-ts/my-app/tsconfig.json',
ecmaFeatures: { jsx: true, useJSXTextNode: true }
},
globals: {
...globals.browser,
...globals.es2017,
...globals.jest
}
},
plugins: {
'@typescript-eslint': tsPlugin,
react: reactPlugin,
'react-hooks': reactHooks,
'unused-imports': unusedImports,
jest: jestPlugin
},
settings: {
react: { version: 'detect' },
'import/resolver': {
node: { extensions: ['.ts', '.tsx'] }
}
},
rules: {
...tsPlugin.configs.recommended.rules,
...jestPlugin.configs.recommended.rules,
...prettierConfig.rules,
'react/jsx-uses-react': 'error',
'react/jsx-uses-vars': 'error',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': ['error'],
'unused-imports/no-unused-imports': 'error',
'unused-imports/no-unused-vars': [
'error',
{
vars: 'all',
varsIgnorePattern: '^props',
args: 'after-used',
argsIgnorePattern: '^props'
}
],
'react/display-name': 'off',
'react/prop-types': 'off',
'react/react-in-jsx-scope': 'off'
}
}
];
Loading
Loading