Skip to content

Commit 85d8ebf

Browse files
authored
Merge pull request #29 from s-group-dev/updates
fix(dependencies): migrate to ESLint v9, update all other dependencies
2 parents 76d2771 + f0acbce commit 85d8ebf

24 files changed

Lines changed: 2600 additions & 2407 deletions

.commitlintrc.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

.eslintignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

.eslintrc.json

Lines changed: 0 additions & 59 deletions
This file was deleted.

.lintstagedrc.mjs

Lines changed: 0 additions & 5 deletions
This file was deleted.

commitlint.config.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default {
2+
extends: ['@commitlint/config-conventional'],
3+
}

eslint.config.mjs

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import eslintJs from '@eslint/js'
2+
import pluginJest from 'eslint-plugin-jest'
3+
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
4+
import reactPlugin from 'eslint-plugin-react'
5+
import hooksPlugin from 'eslint-plugin-react-hooks'
6+
import simpleImportSort from 'eslint-plugin-simple-import-sort'
7+
import globals from 'globals'
8+
import tseslint from 'typescript-eslint'
9+
10+
export default tseslint.config(
11+
{
12+
ignores: ['.swc/**', 'dist/**'],
13+
},
14+
{
15+
languageOptions: {
16+
parserOptions: {
17+
project: './tsconfig.json',
18+
tsconfigRootDir: import.meta.dirname,
19+
},
20+
globals: {
21+
...globals.browser,
22+
...globals.node,
23+
},
24+
},
25+
settings: {
26+
react: {
27+
version: 'detect',
28+
},
29+
},
30+
},
31+
eslintJs.configs.recommended,
32+
reactPlugin.configs.flat.recommended,
33+
tseslint.configs.eslintRecommended,
34+
...tseslint.configs.recommendedTypeChecked,
35+
...tseslint.configs.stylisticTypeChecked,
36+
eslintPluginPrettierRecommended,
37+
{
38+
plugins: {
39+
/** "eslint-plugin-react-hooks" doesn't work with TypeScript */
40+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
41+
'react-hooks': hooksPlugin,
42+
'simple-import-sort': simpleImportSort,
43+
},
44+
/** "eslint-plugin-react-hooks" doesn't work with TypeScript */
45+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
46+
rules: {
47+
/** "eslint-plugin-react-hooks" doesn't work with TypeScript */
48+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
49+
...hooksPlugin.configs.recommended.rules,
50+
'@typescript-eslint/consistent-type-definitions': 'off',
51+
'@typescript-eslint/consistent-type-imports': ['error', { fixStyle: 'inline-type-imports' }],
52+
'@typescript-eslint/prefer-nullish-coalescing': 'off',
53+
'react/react-in-jsx-scope': 'off',
54+
'simple-import-sort/imports': 'error',
55+
'simple-import-sort/exports': 'error',
56+
},
57+
},
58+
{
59+
files: ['tests/**/*.(spec|test).*'],
60+
plugins: {
61+
jest: pluginJest,
62+
},
63+
languageOptions: {
64+
globals: pluginJest.environments.globals.globals,
65+
},
66+
rules: {
67+
'jest/no-disabled-tests': 'warn',
68+
'jest/no-focused-tests': 'error',
69+
'jest/no-identical-title': 'error',
70+
'jest/prefer-to-have-length': 'warn',
71+
'jest/valid-expect': 'error',
72+
},
73+
},
74+
)

jest-setup.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ type MockObjectConstructor = ObjectConstructor & { __definePropertyMocked__?: tr
66
* Allow module mocks with `@swc/core` enforcing stricter ESM spec.
77
* @see https://github.com/magic-akari/swc_mut_cjs_exports/issues/103#issuecomment-1926819722
88
*/
9-
if ((Object as MockObjectConstructor)['__definePropertyMocked__'] !== true) {
10-
;(Object as MockObjectConstructor)['__definePropertyMocked__'] = true
9+
if ((Object as MockObjectConstructor).__definePropertyMocked__ !== true) {
10+
;(Object as MockObjectConstructor).__definePropertyMocked__ = true
1111
const originalDefineProperty = Object.defineProperty
1212
const mutableDefineProperty: ObjectConstructor['defineProperty'] = (obj, prop, attributes) => {
1313
// this is to prevent the error `Cannot redefine property: prototype`; prototype can not be configurable...

jest.config.cjs renamed to jest.config.mjs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// eslint-disable-next-line no-undef
2-
module.exports = {
1+
export default {
32
moduleNameMapper: {
43
'^(\\.{1,2}/.*)\\.js$': '$1',
54
},

lint-staged.config.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export default {
2+
'*.{js,jsx,mjs}': 'eslint --',
3+
'*.ts': 'eslint --',
4+
'*.tsx': 'eslint --',
5+
}

0 commit comments

Comments
 (0)