Skip to content

Commit ca60204

Browse files
committed
Update ESLint config to flat format
1 parent 5e40583 commit ca60204

File tree

105 files changed

+1049
-2637
lines changed

Some content is hidden

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

105 files changed

+1049
-2637
lines changed
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
// All of these are defaults except singleQuote, but we specify them
22
// for explicitness
3-
module.exports = {
3+
const config = {
44
quoteProps: 'as-needed',
55
singleQuote: true,
66
tabWidth: 2,
77
trailingComma: 'all',
8+
plugins: ['prettier-plugin-packagejson'],
89
};
10+
11+
export default config;

eslint.config.mjs

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
import base, { createConfig } from '@metamask/eslint-config';
2+
import jest from '@metamask/eslint-config-jest';
3+
import nodejs from '@metamask/eslint-config-nodejs';
4+
import typescript from '@metamask/eslint-config-typescript';
5+
import react from 'eslint-plugin-react';
6+
import reactHooks from 'eslint-plugin-react-hooks';
7+
8+
const config = createConfig([
9+
{
10+
ignores: ['dist/', 'docs/', '.yarn/'],
11+
},
12+
13+
// Base configuration
14+
{
15+
extends: base,
16+
17+
languageOptions: {
18+
sourceType: 'module',
19+
parserOptions: {
20+
tsconfigRootDir: import.meta.dirname,
21+
project: ['./tsconfig.packages.json'],
22+
},
23+
},
24+
25+
settings: {
26+
'import-x/extensions': ['.js', '.mjs'],
27+
},
28+
},
29+
30+
// TypeScript source files
31+
{
32+
files: ['**/*.ts', '**/*.mts', '**/*.tsx'],
33+
extends: typescript,
34+
35+
rules: {
36+
// This prevents using the `console.log` and similar functions. All logging
37+
// should be done through the module logger, or `logError` function in
38+
// `@metamask/snaps-utils`.
39+
'no-console': 'error',
40+
41+
// This allows importing the `Text` JSX component.
42+
'@typescript-eslint/no-shadow': [
43+
'error',
44+
{
45+
allow: ['Text'],
46+
},
47+
],
48+
49+
// Without the `allowAny` option, this rule causes a lot of false
50+
// positives.
51+
'@typescript-eslint/restrict-template-expressions': [
52+
'error',
53+
{
54+
allowAny: true,
55+
allowBoolean: true,
56+
allowNumber: true,
57+
},
58+
],
59+
},
60+
},
61+
62+
// Node.js / TypeScript scripts
63+
{
64+
files: [
65+
'scripts/**/*.ts',
66+
'scripts/**/*.mts',
67+
'**/*.js',
68+
'**/*.cjs',
69+
'**/*.mjs',
70+
'packages/snaps-execution-environments/scripts/**/*.ts',
71+
'packages/snaps-execution-environments/scripts/**/*.js',
72+
],
73+
74+
extends: nodejs,
75+
76+
languageOptions: {
77+
sourceType: 'module',
78+
parserOptions: {
79+
tsconfigRootDir: import.meta.dirname,
80+
project: ['./tsconfig.json'],
81+
},
82+
},
83+
84+
rules: {
85+
'n/hashbang': 'off',
86+
},
87+
},
88+
89+
// Test files
90+
{
91+
files: ['**/*.test.ts', '**/*.test.js'],
92+
extends: [jest, nodejs],
93+
94+
'jest/expect-expect': [
95+
'error',
96+
{
97+
assertFunctionNames: ['expect', 'expectTypeOf'],
98+
},
99+
],
100+
},
101+
102+
// Packages that are Node.js-only
103+
{
104+
files: ['packages/create-snap/**/*.ts', 'packages/snaps-cli/**/*.ts'],
105+
extends: [nodejs],
106+
107+
rules: {
108+
'n/hashbang': 'off',
109+
},
110+
},
111+
112+
// Configuration specific to `@metamask/snaps-simulator`
113+
{
114+
files: [
115+
'packages/snaps-simulator/**/*.ts',
116+
'packages/snaps-simulator/**/*.tsx',
117+
],
118+
119+
extends: [
120+
react.configs.flat.recommended,
121+
react.configs.flat.recommended['jsx-runtime'],
122+
reactHooks.configs.recommended,
123+
],
124+
},
125+
]);
126+
127+
export default config;

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@
102102
"eslint-plugin-n": "^17.10.3",
103103
"eslint-plugin-prettier": "^5.2.1",
104104
"eslint-plugin-promise": "^7.1.0",
105+
"eslint-plugin-react": "^7.37.4",
106+
"eslint-plugin-react-hooks": "^5.1.0",
105107
"execa": "^5.1.1",
106108
"favicons": "^7.1.2",
107109
"geckodriver": "^4.2.0",

packages/create-snap/.eslintrc.js

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

packages/create-snap/package.json

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,6 @@
6767
"devDependencies": {
6868
"@lavamoat/allow-scripts": "^3.0.4",
6969
"@metamask/auto-changelog": "^4.1.0",
70-
"@metamask/eslint-config": "^14.0.0",
71-
"@metamask/eslint-config-jest": "^14.0.0",
72-
"@metamask/eslint-config-nodejs": "^14.0.0",
73-
"@metamask/eslint-config-typescript": "^14.0.0",
7470
"@swc/core": "1.3.78",
7571
"@swc/jest": "^0.2.26",
7672
"@ts-bridge/cli": "^0.6.1",
@@ -79,25 +75,13 @@
7975
"@types/yargs": "^17.0.24",
8076
"deepmerge": "^4.2.2",
8177
"depcheck": "^1.4.7",
82-
"eslint": "^9.11.0",
83-
"eslint-config-prettier": "^9.1.0",
84-
"eslint-import-resolver-typescript": "^3.6.3",
85-
"eslint-plugin-import-x": "^4.3.0",
86-
"eslint-plugin-jest": "^28.8.3",
87-
"eslint-plugin-jsdoc": "^50.2.4",
88-
"eslint-plugin-n": "^17.10.3",
89-
"eslint-plugin-prettier": "^5.2.1",
90-
"eslint-plugin-promise": "^7.1.0",
9178
"jest": "^29.0.2",
9279
"jest-it-up": "^2.0.0",
9380
"jest-silent-reporter": "^0.6.0",
9481
"memfs": "^3.4.13",
95-
"prettier": "^3.3.3",
96-
"prettier-plugin-packagejson": "^2.5.8",
9782
"ts-node": "^10.9.1",
9883
"tsc-watch": "^4.5.0",
99-
"typescript": "~5.3.3",
100-
"typescript-eslint": "^8.6.0"
84+
"typescript": "~5.3.3"
10185
},
10286
"engines": {
10387
"node": "^18.16 || >=20"

packages/examples/.eslintrc.js

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

packages/examples/package.json

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,27 +43,11 @@
4343
"devDependencies": {
4444
"@lavamoat/allow-scripts": "^3.0.4",
4545
"@metamask/auto-changelog": "^4.1.0",
46-
"@metamask/eslint-config": "^14.0.0",
47-
"@metamask/eslint-config-jest": "^14.0.0",
48-
"@metamask/eslint-config-nodejs": "^14.0.0",
49-
"@metamask/eslint-config-typescript": "^14.0.0",
5046
"@types/node": "18.14.2",
5147
"depcheck": "^1.4.7",
52-
"eslint": "^9.11.0",
53-
"eslint-config-prettier": "^9.1.0",
54-
"eslint-import-resolver-typescript": "^3.6.3",
55-
"eslint-plugin-import-x": "^4.3.0",
56-
"eslint-plugin-jest": "^28.8.3",
57-
"eslint-plugin-jsdoc": "^50.2.4",
58-
"eslint-plugin-n": "^17.10.3",
59-
"eslint-plugin-prettier": "^5.2.1",
60-
"eslint-plugin-promise": "^7.1.0",
6148
"jest-silent-reporter": "^0.6.0",
62-
"prettier": "^3.3.3",
63-
"prettier-plugin-packagejson": "^2.5.8",
6449
"ts-node": "^10.9.1",
65-
"typescript": "~5.3.3",
66-
"typescript-eslint": "^8.6.0"
50+
"typescript": "~5.3.3"
6751
},
6852
"engines": {
6953
"node": "^18.16 || >=20"

packages/examples/packages/bip32/.eslintrc.js

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

packages/examples/packages/bip32/package.json

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -53,33 +53,17 @@
5353
"@jest/globals": "^29.5.0",
5454
"@lavamoat/allow-scripts": "^3.0.4",
5555
"@metamask/auto-changelog": "^4.1.0",
56-
"@metamask/eslint-config": "^14.0.0",
57-
"@metamask/eslint-config-jest": "^14.0.0",
58-
"@metamask/eslint-config-nodejs": "^14.0.0",
59-
"@metamask/eslint-config-typescript": "^14.0.0",
6056
"@metamask/snaps-cli": "workspace:^",
6157
"@metamask/snaps-jest": "workspace:^",
6258
"@swc/core": "1.3.78",
6359
"@swc/jest": "^0.2.26",
6460
"@types/node": "18.14.2",
6561
"deepmerge": "^4.2.2",
6662
"depcheck": "^1.4.7",
67-
"eslint": "^9.11.0",
68-
"eslint-config-prettier": "^9.1.0",
69-
"eslint-import-resolver-typescript": "^3.6.3",
70-
"eslint-plugin-import-x": "^4.3.0",
71-
"eslint-plugin-jest": "^28.8.3",
72-
"eslint-plugin-jsdoc": "^50.2.4",
73-
"eslint-plugin-n": "^17.10.3",
74-
"eslint-plugin-prettier": "^5.2.1",
75-
"eslint-plugin-promise": "^7.1.0",
7663
"jest": "^29.0.2",
7764
"jest-silent-reporter": "^0.6.0",
78-
"prettier": "^3.3.3",
79-
"prettier-plugin-packagejson": "^2.5.8",
8065
"ts-node": "^10.9.1",
81-
"typescript": "~5.3.3",
82-
"typescript-eslint": "^8.6.0"
66+
"typescript": "~5.3.3"
8367
},
8468
"engines": {
8569
"node": "^18.16 || >=20"

packages/examples/packages/bip44/.eslintrc.js

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

0 commit comments

Comments
 (0)