Skip to content

Commit

Permalink
ESLint 9
Browse files Browse the repository at this point in the history
  • Loading branch information
qmonmert committed Sep 1, 2024
1 parent e7a9499 commit dc21090
Show file tree
Hide file tree
Showing 12 changed files with 156 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) {
.addDevDependency(packageName("@typescript-eslint/eslint-plugin"), COMMON)
.addDevDependency(packageName("@vitejs/plugin-react"), REACT)
.addDevDependency(packageName("@vitest/coverage-istanbul"), COMMON)
.addDevDependency(packageName("typescript-eslint"), COMMON)
.addDevDependency(packageName("globals"), COMMON)
.addDevDependency(packageName("eslint"), COMMON)
.addDevDependency(packageName("eslint-plugin-react"), REACT)
.addDevDependency(packageName("jsdom"), COMMON)
Expand All @@ -61,7 +63,7 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) {
.addScript(scriptKey("build"), scriptCommand("tsc && vite build --emptyOutDir"))
.addScript(scriptKey("preview"), scriptCommand("vite preview"))
.addScript(scriptKey("start"), scriptCommand("vite"))
.addScript(scriptKey("lint"), scriptCommand("eslint --ext .js,.ts,.tsx src/"))
.addScript(scriptKey("lint"), scriptCommand("eslint ."))
.addScript(scriptKey("test"), scriptCommand("npm run test:watch"))
.addScript(scriptKey("test:coverage"), scriptCommand("vitest run --coverage"))
.addScript(scriptKey("test:watch"), scriptCommand("vitest --"))
Expand All @@ -71,10 +73,9 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) {
.addFile("tsconfig.json")
.addTemplate("vite.config.ts")
.addTemplate("vitest.config.ts")
.addFile(".eslintrc.cjs")
.addFile("eslint.config.js")
.and()
.batch(SOURCE_COMMON, to("."))
.addFile(".eslintignore")
.addFile(".npmrc")
.and()
.batch(APP_SOURCE, APP_DESTINATION)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ public JHipsterModule buildVueModule(JHipsterModuleProperties properties) {
.addDependency(packageName("vue-router"), VUE)
.addDevDependency(packageName("@typescript-eslint/parser"), COMMON)
.addDevDependency(packageName("@vitejs/plugin-vue"), VUE)
.addDevDependency(packageName("@vue/eslint-config-typescript"), VUE)
.addDevDependency(packageName("typescript-eslint"), COMMON)
.addDevDependency(packageName("globals"), COMMON)
.addDevDependency(packageName("@vue/test-utils"), VUE)
.addDevDependency(packageName("@vue/tsconfig"), VUE)
.addDevDependency(packageName("@vitest/coverage-istanbul"), COMMON)
Expand All @@ -74,15 +75,15 @@ public JHipsterModule buildVueModule(JHipsterModuleProperties properties) {
.addDevDependency(packageName("sinon"), VUE)
.addScript(scriptKey("build"), scriptCommand("vue-tsc -p tsconfig.build.json --noEmit && vite build --emptyOutDir"))
.addScript(scriptKey("dev"), scriptCommand("vite"))
.addScript(scriptKey("lint"), scriptCommand("eslint --ext .js,.ts,.vue src/"))
.addScript(scriptKey("lint"), scriptCommand("eslint ."))
.addScript(scriptKey("preview"), scriptCommand("vite preview"))
.addScript(scriptKey("start"), scriptCommand("vite"))
.addScript(scriptKey("test"), scriptCommand("npm run test:watch"))
.addScript(scriptKey("test:coverage"), scriptCommand("vitest run --coverage"))
.addScript(scriptKey("test:watch"), scriptCommand("vitest --"))
.and()
.files()
.add(SOURCE.file(".eslintrc.cjs"), to(".eslintrc.cjs"))
.add(SOURCE.file("eslint.config.js"), to("eslint.config.js"))
.add(SOURCE.file("tsconfig.json"), to("tsconfig.json"))
.add(SOURCE.file("tsconfig.build.json"), to("tsconfig.build.json"))
.add(SOURCE.template("webapp/app/http/AxiosHttp.ts.mustache"), MAIN_DESTINATION.append("http/AxiosHttp.ts"))
Expand All @@ -91,7 +92,6 @@ public JHipsterModule buildVueModule(JHipsterModuleProperties properties) {
.addTemplate("vitest.config.ts")
.and()
.batch(SOURCE_COMMON, to("."))
.addFile(".eslintignore")
.addFile(".npmrc")
.and()
.batch(SOURCE.file("test/unit/http"), to("src/test/webapp/unit/http"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) {
.addDevDependency(packageName("@vitest/coverage-istanbul"), COMMON)
.addDevDependency(packageName("eslint"), COMMON)
.addDevDependency(packageName("eslint-config-prettier"), COMMON)
.addDevDependency(packageName("eslint-import-resolver-typescript"), COMMON)
.addDevDependency(packageName("eslint-plugin-import"), COMMON)
.addDevDependency(packageName("eslint-plugin-import-x"), COMMON)
.addDevDependency(packageName("eslint-plugin-prettier"), COMMON)
.addDevDependency(packageName("globals"), COMMON)
.addDevDependency(packageName("typescript-eslint"), COMMON)
.addDevDependency(packageName("vite-tsconfig-paths"), COMMON)
.addDevDependency(packageName("vitest"), COMMON)
.addDevDependency(packageName("vitest-sonar-reporter"), COMMON)
.addScript(scriptKey("lint"), scriptCommand("eslint --ext .js,.ts,.tsx src/"))
.addScript(scriptKey("lint"), scriptCommand("eslint ."))
.addScript(scriptKey("test"), scriptCommand("npm run test:watch"))
.addScript(scriptKey("test:coverage"), scriptCommand("vitest run --coverage"))
.addScript(scriptKey("test:watch"), scriptCommand("vitest --"))
Expand All @@ -41,7 +43,7 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) {
.batch(SOURCE, to("."))
.addFile("tsconfig.json")
.addTemplate("vitest.config.ts")
.addFile(".eslintrc.cjs")
.addFile("eslint.config.js")
.and()
.and()
.build();
Expand Down
42 changes: 42 additions & 0 deletions src/main/resources/generator/client/react/core/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import globals from 'globals';
import typescript from 'typescript-eslint';
import eslint from '@eslint/js';
import react from 'eslint-plugin-react/configs/recommended.js';

export default typescript.config(
{
languageOptions: {
globals: {
...globals.node,
},
},
},
{
ignores: ['src/main/docker/', 'jest.conf.js', 'src/test/webapp/jest.conf.js', 'postcss.config.js'],
},
eslint.configs.recommended,
{
files: ['src/main/webapp/**/*.{ts,tsx}', 'src/main/webapp/**/*.spec.ts'],
extends: [...typescript.configs.recommendedTypeChecked, react],
settings: {
react: {
version: 'detect',
},
},
languageOptions: {
globals: {
...globals.browser,
},
parserOptions: {
project: ['./tsconfig.json'],
},
},
rules: {
'react/react-in-jsx-scope': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': 'off',
},
},
);
42 changes: 42 additions & 0 deletions src/main/resources/generator/client/vue/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import globals from 'globals';
import typescript from 'typescript-eslint';
import js from '@eslint/js';
import vue from 'eslint-plugin-vue';

export default typescript.config(
{
languageOptions: {
globals: {
...globals.node,
},
},
},
{
ignores: ['src/main/docker/', 'jest.conf.js', 'src/test/webapp/jest.conf.js', 'postcss.config.js'],
},
js.configs.recommended,
...typescript.configs.recommended.map(config => (config.name === 'typescript-eslint/base' ? config : { ...config, files: ['**/*.ts'] })),
...vue.configs['flat/recommended'],
{
files: ['**/*.vue'],
languageOptions: {
parserOptions: { parser: '@typescript-eslint/parser' },
globals: { ...globals.browser },
},
},
{
files: ['src/*/webapp/**/*.vue', 'src/*/webapp/**/*.ts'],
languageOptions: {
globals: { ...globals.browser },
},
rules: {
quotes: ['error', 'single', { avoidEscape: true }],
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unused-vars': ['error'],
'vue/html-self-closing': 'off',
'vue/multi-word-component-names': 'off',
'vue/no-reserved-component-names': 'off',
'@typescript-eslint/no-empty-object-type': 'off',
},
},
);
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

declare module '*.vue' {
import { DefineComponent } from 'vue';
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
const component: DefineComponent<{}, {}, any>;
export default component;
}
12 changes: 7 additions & 5 deletions src/main/resources/generator/dependencies/common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,19 @@
"@tsconfig/recommended": "1.0.7",
"@types/jest": "29.5.12",
"@types/node": "20.16.2",
"@typescript-eslint/eslint-plugin": "7.18.0",
"@typescript-eslint/parser": "7.18.0",
"@typescript-eslint/eslint-plugin": "8.1.0",
"@typescript-eslint/parser": "8.1.0",
"@vitest/coverage-istanbul": "2.0.5",
"autoprefixer": "10.4.20",
"browser-sync": "3.0.2",
"cssnano": "7.0.5",
"cypress": "13.14.0",
"eslint": "8.57.0",
"eslint": "9.9.0",
"eslint-config-prettier": "9.1.0",
"eslint-import-resolver-typescript": "3.6.3",
"eslint-plugin-cypress": "3.5.0",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-import-x": "4.1.0",
"eslint-plugin-prettier": "5.2.1",
"globals": "15.9.0",
"husky": "9.1.5",
"jasmine-core": "5.2.0",
"jest": "29.7.0",
Expand All @@ -49,6 +50,7 @@
"tailwindcss": "3.4.10",
"ts-jest": "29.2.5",
"typescript": "5.5.4",
"typescript-eslint": "8.1.0",
"vite": "5.4.2",
"vite-tsconfig-paths": "5.0.1",
"vitest": "2.0.5",
Expand Down
1 change: 0 additions & 1 deletion src/main/resources/generator/dependencies/vue/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"@pinia/testing": "0.1.5",
"@types/sinon": "17.0.3",
"@vitejs/plugin-vue": "5.1.2",
"@vue/eslint-config-typescript": "13.0.0",
"@vue/test-utils": "2.4.6",
"@vue/tsconfig": "0.5.1",
"eslint-plugin-vue": "9.27.0",
Expand Down
37 changes: 37 additions & 0 deletions src/main/resources/generator/typescript/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import globals from 'globals';
import typescript from 'typescript-eslint';
import js from '@eslint/js';

export default typescript.config(
{
languageOptions: {
globals: {
...globals.node,
},
},
},
{
ignores: ['src/main/docker/', 'jest.conf.js', 'src/test/webapp/jest.conf.js', 'postcss.config.js'],
},
js.configs.recommended,
...typescript.configs.recommended.map(config => (config.name === 'typescript-eslint/base' ? config : { ...config, files: ['**/*.ts'] })),
{
files: ['src/*/webapp/**/*.ts'],
languageOptions: {
globals: { ...globals.browser },
},
rules: {
quotes: ['error', 'single', { avoidEscape: true }],
'comma-dangle': [
'error',
{
arrays: 'always-multiline',
objects: 'always-multiline',
imports: 'always-multiline',
exports: 'always-multiline',
functions: 'never',
},
],
},
},
);
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ void shouldBuildModuleWithStyle() {
.containing(nodeDependency("@typescript-eslint/eslint-plugin"))
.containing(nodeDependency("@vitejs/plugin-react"))
.containing(nodeDependency("@vitest/coverage-istanbul"))
.containing(nodeDependency("typescript-eslint"))
.containing(nodeDependency("globals"))
.containing(nodeDependency("eslint"))
.containing(nodeDependency("eslint-plugin-react"))
.containing(nodeDependency("jsdom"))
Expand All @@ -45,7 +47,7 @@ void shouldBuildModuleWithStyle() {
.containing(nodeScript("build", "tsc && vite build --emptyOutDir"))
.containing(nodeScript("preview", "vite preview"))
.containing(nodeScript("start", "vite"))
.containing(nodeScript("lint", "eslint --ext .js,.ts,.tsx src/"))
.containing(nodeScript("lint", "eslint ."))
.containing(nodeScript("test", "npm run test:watch"))
.containing(nodeScript("test:coverage", "vitest run --coverage"))
.containing(nodeScript("test:watch", "vitest --"))
Expand All @@ -60,7 +62,7 @@ void shouldBuildModuleWithStyle() {
"""
)
.and()
.hasFiles("tsconfig.json", "vite.config.ts", "vitest.config.ts", ".npmrc", ".eslintignore", ".eslintrc.cjs")
.hasFiles("tsconfig.json", "vite.config.ts", "vitest.config.ts", ".npmrc", "eslint.config.js")
.hasFiles("src/main/webapp/index.html")
.hasPrefixedFiles("src/main/webapp/app", "index.css", "index.tsx", "vite-env.d.ts")
.hasFiles("src/test/webapp/unit/common/primary/app/App.spec.tsx")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ void shouldCreateVueModule() {
.containing(nodeDependency("vue"))
.containing(nodeDependency("@typescript-eslint/parser"))
.containing(nodeDependency("@vitejs/plugin-vue"))
.containing(nodeDependency("@vue/eslint-config-typescript"))
.containing(nodeDependency("typescript-eslint"))
.containing(nodeDependency("globals"))
.containing(nodeDependency("@vue/test-utils"))
.containing(nodeDependency("@vue/tsconfig"))
.containing(nodeDependency("@vitest/coverage-istanbul"))
Expand All @@ -50,7 +51,7 @@ void shouldCreateVueModule() {
.containing(nodeDependency("vue-router"))
.containing(nodeScript("build", "vue-tsc -p tsconfig.build.json --noEmit && vite build --emptyOutDir"))
.containing(nodeScript("dev", "vite"))
.containing(nodeScript("lint", "eslint --ext .js,.ts,.vue src/"))
.containing(nodeScript("lint", "eslint ."))
.containing(nodeScript("preview", "vite preview"))
.containing(nodeScript("start", "vite"))
.containing(nodeScript("test", "npm run test:watch"))
Expand All @@ -67,7 +68,7 @@ void shouldCreateVueModule() {
"""
)
.and()
.hasPrefixedFiles("", ".eslintignore", ".npmrc", ".eslintrc.cjs", "tsconfig.json", "tsconfig.build.json", "vite.config.ts", "vitest.config.ts")
.hasPrefixedFiles("", ".npmrc", "eslint.config.js", "tsconfig.json", "tsconfig.build.json", "vite.config.ts", "vitest.config.ts")
.hasFiles("src/main/webapp/app/http/AxiosHttp.ts")
.hasPrefixedFiles("src/test/webapp/unit/http", "AxiosHttp.spec.ts", "AxiosHttpStub.ts", "AxiosStub.ts")
.hasFiles("src/main/webapp/index.html")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,18 @@ void shouldCreateTypescriptModule() {
.containing(nodeDependency("@vitest/coverage-istanbul"))
.containing(nodeDependency("eslint"))
.containing(nodeDependency("eslint-config-prettier"))
.containing(nodeDependency("eslint-import-resolver-typescript"))
.containing(nodeDependency("eslint-plugin-import"))
.containing(nodeDependency("eslint-plugin-import-x"))
.containing(nodeDependency("eslint-plugin-prettier"))
.containing(nodeDependency("globals"))
.containing(nodeDependency("typescript-eslint"))
.containing(nodeDependency("vite-tsconfig-paths"))
.containing(nodeDependency("vitest"))
.containing(nodeDependency("vitest-sonar-reporter"))
.containing(nodeScript("test", "npm run test:watch"))
.containing(nodeScript("test:coverage", "vitest run --coverage"))
.containing(nodeScript("test:watch", "vitest --"))
.containing(nodeScript("lint", "eslint --ext .js,.ts,.tsx src/"))
.containing(nodeScript("lint", "eslint ."))
.and()
.hasPrefixedFiles("", ".eslintrc.cjs", "tsconfig.json");
.hasPrefixedFiles("", "eslint.config.js", "tsconfig.json");
}
}

0 comments on commit dc21090

Please sign in to comment.