@dvukovic/style-guide 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,125 @@
1
1
  # Style Guide
2
2
 
3
- ## Prettier
3
+ ## Getting Started
4
4
 
5
- Add `"lint:prettier": "prettier --log-level=warn --check .",` to scripts
5
+ To get the kitchen sink install the required dependencies:
6
+
7
+ ```
8
+ yarn add -D eslint prettier cspell stylelint npm-package-json-lint
9
+ ```
10
+
11
+ add the following scripts
12
+
13
+ ```json
14
+ {
15
+ "scripts": {
16
+ "lint": "yarn lint:prettier && yarn lint:eslint && yarn lint:stylelint && yarn lint:spell && yarn lint:package-json",
17
+ "lint:eslint": "eslint . --ext .js,.ts,.tsx",
18
+ "lint:fix": "yarn lint:prettier --write && yarn lint:eslint --fix && yarn lint:stylelint --fix && yarn lint:spell && yarn lint:package-json",
19
+ "lint:package-json": "npmPkgJsonLint --configFile ./.packagerc.js .",
20
+ "lint:prettier": "prettier --log-level=warn --check .",
21
+ "lint:spell": "cspell --no-progress --no-summary --unique '**'",
22
+ "lint:stylelint": "stylelint ./**/*.css"
23
+ }
24
+ }
25
+ ```
26
+
27
+ ### ESLint
28
+
29
+ Create a `.eslintrc.js` in root with the following:
30
+
31
+ ```javascript
32
+ /** @type {import("@types/eslint").ESLint.ConfigData} */
33
+ module.exports = {
34
+ root: true,
35
+ extends: [
36
+ // JS/TS
37
+ require.resolve("@dvukovic/style-guide/src/eslint/configs/core"),
38
+ require.resolve("@dvukovic/style-guide/src/eslint/configs/node"),
39
+
40
+ // Libraries
41
+ require.resolve("@dvukovic/style-guide/src/eslint/configs/next"),
42
+ require.resolve("@dvukovic/style-guide/src/eslint/configs/mobx"),
43
+ require.resolve("@dvukovic/style-guide/src/eslint/configs/react"),
44
+ ],
45
+ parser: "@typescript-eslint/parser",
46
+ parserOptions: {
47
+ ecmaVersion: 2024,
48
+ project: "./tsconfig.json",
49
+ },
50
+ overrides: [
51
+ {
52
+ files: ["./**/*.{tsx,ts}"],
53
+ extends: [
54
+ require.resolve(
55
+ "@dvukovic/style-guide/src/eslint/configs/typescript",
56
+ ),
57
+ ],
58
+ },
59
+ {
60
+ files: ["./**/*.test.ts"],
61
+ extends: [
62
+ require.resolve(
63
+ "@dvukovic/style-guide/src/eslint/configs/jest",
64
+ ),
65
+ ],
66
+ },
67
+ ],
68
+ }
69
+ ```
70
+
71
+ ### Prettier
72
+
73
+ Create a `.prettierrc.js` in root with the following:
74
+
75
+ ```javascript
76
+ /** @type {import("prettier").Config} */
77
+ module.exports = {
78
+ ...require("@dvukovic/style-guide/src/prettier/configs/core"),
79
+ }
80
+ ```
81
+
82
+ ### Stylelint
83
+
84
+ Create a `.stylelintrc.js` in root with the following:
85
+
86
+ ```javascript
87
+ /** @type {import("stylelint").Config} */
88
+ module.exports = {
89
+ extends: "@dvukovic/style-guide/src/stylelint/configs/core",
90
+ }
91
+ ```
92
+
93
+ ### CSpell
94
+
95
+ Create a `cspell.config.js` in root with the following:
96
+
97
+ ```javascript
98
+ /** @type {import("cspell").FileSettings} */
99
+ module.exports = {
100
+ cache: {
101
+ cacheLocation: "./node_modules/.cache/cspell",
102
+ useCache: true,
103
+ },
104
+ caseSensitive: false,
105
+ dictionaries: ["shared"],
106
+ dictionaryDefinitions: [
107
+ {
108
+ name: "shared",
109
+ path: "./node_modules/@dvukovic/style-guide/src/cspell/base.txt",
110
+ },
111
+ ],
112
+ useGitignore: true,
113
+ }
114
+ ```
115
+
116
+ ### Package Json Lint
117
+
118
+ Create a `.packagerc.js` in root with the following:
119
+
120
+ ```javascript
121
+ /** @type {import("npm-package-json-lint").NpmPackageJsonLint} */
122
+ module.exports = {
123
+ extends: "@dvukovic/style-guide/src/package-json/configs/core",
124
+ }
125
+ ```
package/package.json CHANGED
@@ -1,71 +1,105 @@
1
1
  {
2
2
  "name": "@dvukovic/style-guide",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
+ "description": "My own style guide",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/vuki656/style-guide"
8
+ },
9
+ "license": "MIT",
10
+ "author": {
11
+ "name": "Domagoj Vukovic"
12
+ },
13
+ "type": "commonjs",
4
14
  "files": [
5
15
  "src/eslint",
6
16
  "src/cspell",
7
17
  "src/prettier",
8
- "src/stylelint"
18
+ "src/stylelint",
19
+ "src/package-json"
9
20
  ],
10
21
  "scripts": {
11
- "lint": "yarn lint:prettier && yarn lint:eslint && yarn lint:stylelint && yarn lint:spell",
22
+ "lint": "yarn lint:prettier && yarn lint:eslint && yarn lint:stylelint && yarn lint:spell && yarn lint:package-json",
12
23
  "lint:eslint": "eslint . --ext .js,.ts,.tsx",
13
- "lint:fix": "yarn lint:prettier --write && yarn lint:stylelint --fix && yarn lint:eslint --fix",
24
+ "lint:fix": "yarn lint:prettier --write && yarn lint:eslint --fix && yarn lint:stylelint --fix && yarn lint:spell && yarn lint:package-json",
25
+ "lint:package-json": "npmPkgJsonLint --configFile ./.packagerc.js .",
14
26
  "lint:prettier": "prettier --log-level=warn --check .",
15
27
  "lint:spell": "cspell --no-progress --no-summary --unique '**'",
16
28
  "lint:stylelint": "stylelint ./**/*.css",
17
29
  "release": "release-it"
18
30
  },
19
31
  "dependencies": {
20
- "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0",
21
- "@next/eslint-plugin-next": "^14.2.5",
22
- "@prettier/plugin-xml": "^3.4.1",
23
- "@typescript-eslint/parser": "^7.17.0",
24
- "eslint-plugin-etc": "^2.0.3",
25
- "eslint-plugin-import-x": "^3.1.0",
26
- "eslint-plugin-jest": "^28.6.0",
27
- "eslint-plugin-jest-formatting": "^3.1.0",
28
- "eslint-plugin-mobx": "^0.0.10",
29
- "eslint-plugin-n": "^17.9.0",
30
- "eslint-plugin-promise": "^7.0.0",
31
- "eslint-plugin-react": "^7.35.0",
32
- "eslint-plugin-react-hooks": "^4.6.2",
33
- "eslint-plugin-security-node": "^1.1.4",
34
- "eslint-plugin-sonarjs": "^1.0.4",
35
- "eslint-plugin-unicorn": "^54.0.0",
36
- "eslint-plugin-unused-imports": "^4.0.1",
37
- "prettier-plugin-embed": "^0.4.15",
38
- "prettier-plugin-jsdoc": "^1.3.0",
39
- "prettier-plugin-packagejson": "^2.5.1",
40
- "prettier-plugin-prisma": "^5.0.0",
41
- "prettier-plugin-sh": "^0.14.0",
42
- "prettier-plugin-sql": "^0.18.1",
43
- "stylelint-order": "^6.0.4",
44
- "typescript-eslint": "^7.17.0"
32
+ "@eslint-community/eslint-plugin-eslint-comments": "4.3.0",
33
+ "@next/eslint-plugin-next": "14.2.5",
34
+ "@prettier/plugin-xml": "3.4.1",
35
+ "@typescript-eslint/parser": "7.17.0",
36
+ "eslint-plugin-etc": "2.0.3",
37
+ "eslint-plugin-import-x": "3.1.0",
38
+ "eslint-plugin-jest": "28.6.0",
39
+ "eslint-plugin-jest-formatting": "3.1.0",
40
+ "eslint-plugin-mobx": "0.0.10",
41
+ "eslint-plugin-n": "17.9.0",
42
+ "eslint-plugin-promise": "7.0.0",
43
+ "eslint-plugin-react": "7.35.0",
44
+ "eslint-plugin-react-hooks": "4.6.2",
45
+ "eslint-plugin-security-node": "1.1.4",
46
+ "eslint-plugin-sonarjs": "1.0.4",
47
+ "eslint-plugin-sort-destructure-keys": "2.0.0",
48
+ "eslint-plugin-sort-keys-fix": "1.1.2",
49
+ "eslint-plugin-typescript-sort-keys": "3.2.0",
50
+ "eslint-plugin-unicorn": "54.0.0",
51
+ "eslint-plugin-unused-imports": "4.0.1",
52
+ "prettier-plugin-embed": "0.4.15",
53
+ "prettier-plugin-jsdoc": "1.3.0",
54
+ "prettier-plugin-packagejson": "2.5.1",
55
+ "prettier-plugin-prisma": "5.0.0",
56
+ "prettier-plugin-sh": "0.14.0",
57
+ "prettier-plugin-sql": "0.18.1",
58
+ "stylelint-order": "6.0.4",
59
+ "typescript-eslint": "7.17.0"
45
60
  },
46
61
  "devDependencies": {
47
- "@release-it/conventional-changelog": "^8.0.1",
48
- "@total-typescript/tsconfig": "^1.0.4",
49
- "@types/eslint": "^8.56.11",
50
- "@types/jest": "^29.5.12",
51
- "@types/node": "^20.14.12",
52
- "@types/react": "^18.3.3",
53
- "cspell": "^8.12.1",
54
- "eslint": "^8.57.0",
55
- "jest": "^29.7.0",
56
- "prettier": "^3.3.3",
57
- "react": "^18.3.1",
58
- "release-it": "^17.6.0",
59
- "stylelint": "^16.7.0",
60
- "typescript": "^5.5.4"
62
+ "@release-it/conventional-changelog": "8.0.1",
63
+ "@total-typescript/tsconfig": "1.0.4",
64
+ "@types/eslint": "8.56.11",
65
+ "@types/jest": "29.5.12",
66
+ "@types/node": "20.14.12",
67
+ "@types/react": "18.3.3",
68
+ "cspell": "8.12.1",
69
+ "eslint": "8.57.0",
70
+ "jest": "29.7.0",
71
+ "npm-package-json-lint": "8.0.0",
72
+ "prettier": "3.3.3",
73
+ "react": "18.3.1",
74
+ "release-it": "17.6.0",
75
+ "stylelint": "16.7.0",
76
+ "typescript": "5.5.4"
61
77
  },
62
78
  "peerDependencies": {
63
79
  "cspell": "8",
64
80
  "eslint": "8.57",
81
+ "npm-package-json-lint": "8",
65
82
  "prettier": "3",
66
83
  "stylelint": "16"
67
84
  },
85
+ "peerDependenciesMeta": {
86
+ "eslint": {
87
+ "optional": true
88
+ },
89
+ "npm-package-json-lint": {
90
+ "optional": true
91
+ },
92
+ "prettier": {
93
+ "optional": true
94
+ },
95
+ "stylelint": {
96
+ "optional": true
97
+ }
98
+ },
68
99
  "packageManager": "yarn@4.3.1",
100
+ "engines": {
101
+ "node": ">20.0.0"
102
+ },
69
103
  "publishConfig": {
70
104
  "access": "public",
71
105
  "registry": "https://registry.npmjs.org"
@@ -71,3 +71,6 @@ httpsrequest
71
71
  missconfiguration
72
72
  mischeck
73
73
  descriptionless
74
+ typeorm
75
+ domagoj
76
+ vukovic
@@ -2,7 +2,6 @@
2
2
  module.exports = {
3
3
  extends: [
4
4
  "../plugins/eslint.js",
5
- "../plugins/typescript-eslint.js",
6
5
  "../plugins/eslint-comments.js",
7
6
  "../plugins/promise.js",
8
7
  "../plugins/unicorn.js",
@@ -10,5 +9,7 @@ module.exports = {
10
9
  "../plugins/import-x.js",
11
10
  "../plugins/sonarjs.js",
12
11
  "../plugins/etc.js",
12
+ "../plugins/sort-keys-fix.js",
13
+ "../plugins/sort-destructure-keys.js",
13
14
  ],
14
15
  }
@@ -0,0 +1,7 @@
1
+ /** @type {import("@types/eslint").ESLint.ConfigData} */
2
+ module.exports = {
3
+ extends: [
4
+ "../plugins/typescript-eslint.js",
5
+ "../plugins/typescript-sort-keys.js",
6
+ ],
7
+ }
@@ -7,48 +7,6 @@ module.exports = {
7
7
  allowImplicit: true,
8
8
  },
9
9
  ],
10
- "for-direction": "error",
11
- "no-async-promise-executor": "error",
12
- "no-await-in-loop": "error",
13
- "no-class-assign": "error",
14
- "no-compare-neg-zero": "error",
15
- "no-cond-assign": ["error", "always"],
16
- "no-constant-binary-expression": "error",
17
- "no-constant-condition": "error",
18
- "no-constructor-return": "error",
19
- "no-control-regex": "error",
20
- "no-debugger": "error",
21
- "no-dupe-else-if": "error",
22
- "no-duplicate-case": "error",
23
- "no-duplicate-imports": "error",
24
- "no-empty-character-class": "error",
25
- "no-empty-pattern": "error",
26
- "no-ex-assign": "error",
27
- "no-fallthrough": "error",
28
- "no-inner-declarations": "error",
29
- "no-invalid-regexp": "error",
30
- "no-irregular-whitespace": "error",
31
- "no-loss-of-precision": "error",
32
- "no-misleading-character-class": "error",
33
- "no-new-native-nonconstructor": "error",
34
- "no-promise-executor-return": "error",
35
- "no-prototype-builtins": "error",
36
- "no-self-assign": "error",
37
- "no-self-compare": "error",
38
- "no-sparse-arrays": "error",
39
- "no-template-curly-in-string": "error",
40
- "no-unexpected-multiline": "error",
41
- "no-unmodified-loop-condition": "error",
42
- "no-unreachable-loop": "error",
43
- "no-unsafe-finally": "error",
44
- "no-unsafe-optional-chaining": "error",
45
- "no-unused-private-class-members": "error",
46
- "no-unused-vars": "error",
47
- "no-use-before-define": "error",
48
- // "no-useless-assignment": "error", NOTE: available in eslint 9
49
- "no-useless-backreference": "error",
50
- "require-atomic-updates": "error",
51
- "use-isnan": "error",
52
10
  "arrow-body-style": ["error", "always"],
53
11
  "block-scoped-var": "error",
54
12
  "capitalized-comments": "error",
@@ -58,6 +16,7 @@ module.exports = {
58
16
  "default-param-last": "error",
59
17
  "dot-notation": "error",
60
18
  eqeqeq: "error",
19
+ "for-direction": "error",
61
20
  "func-name-matching": "error",
62
21
  "func-names": ["error", "as-needed"],
63
22
  "func-style": ["error", "declaration", { allowArrowFunctions: true }],
@@ -66,63 +25,167 @@ module.exports = {
66
25
  "max-classes-per-file": ["error", 1],
67
26
  "max-depth": ["error", 4],
68
27
  "max-lines": ["error", 700],
69
- "max-nested-callbacks": ["error", 3],
70
28
  "max-params": ["error", 2],
71
- "new-cap": "error",
72
29
  "no-alert": "error",
73
30
  "no-array-constructor": "error",
31
+ "no-async-promise-executor": "error",
32
+ "no-await-in-loop": "error",
74
33
  "no-bitwise": "error",
75
34
  "no-caller": "error",
76
35
  "no-case-declarations": "error",
36
+ "no-class-assign": "error",
37
+ "no-compare-neg-zero": "error",
38
+ "no-cond-assign": ["error", "always"],
77
39
  "no-console": "error",
40
+ "no-constant-binary-expression": "error",
41
+ "no-constant-condition": "error",
42
+ "no-constructor-return": "error",
43
+ "no-control-regex": "error",
44
+ "no-debugger": "error",
78
45
  "no-delete-var": "error",
79
46
  "no-div-regex": "error",
47
+
48
+ "no-dupe-else-if": "error",
49
+
50
+ "no-duplicate-case": "error",
51
+
80
52
  "no-else-return": ["error", { allowElseIf: false }],
53
+
81
54
  "no-empty": "error",
55
+
82
56
  "no-empty": ["error", { allowEmptyCatch: false }],
57
+
58
+ "no-empty-character-class": "error",
59
+
83
60
  "no-empty-function": ["error", { allow: ["functions"] }],
61
+
62
+ "no-empty-pattern": "error",
63
+
84
64
  "no-empty-static-block": "error",
65
+
85
66
  "no-eval": "error",
67
+
68
+ "no-ex-assign": "error",
69
+
86
70
  "no-extend-native": "error",
71
+
87
72
  "no-extra-bind": "error",
73
+
88
74
  "no-extra-boolean-cast": "error",
75
+
89
76
  "no-extra-label": "error",
77
+
78
+ "no-fallthrough": "error",
79
+
90
80
  "no-global-assign": "error",
81
+
91
82
  "no-implicit-coercion": "error",
92
- "no-implicit-globals": "error",
83
+
93
84
  "no-implied-eval": "error",
85
+
94
86
  "no-inline-comments": "error",
87
+
88
+ "no-inner-declarations": "error",
89
+
90
+ "no-invalid-regexp": "error",
91
+
95
92
  "no-invalid-this": "error",
93
+
94
+ "no-irregular-whitespace": "error",
95
+
96
96
  "no-iterator": "error",
97
+
97
98
  "no-label-var": "error",
99
+
98
100
  "no-labels": "error",
101
+
99
102
  "no-lone-blocks": "error",
103
+
100
104
  "no-lonely-if": "error",
105
+
101
106
  "no-loop-func": "error",
107
+
108
+ "no-loss-of-precision": "error",
109
+
110
+ "no-misleading-character-class": "error",
111
+
102
112
  "no-multi-assign": "error",
113
+
103
114
  "no-multi-str": "error",
115
+
104
116
  "no-nested-ternary": "error",
117
+
105
118
  "no-new": "error",
119
+
106
120
  "no-new-func": "error",
121
+
122
+ "no-new-native-nonconstructor": "error",
123
+
107
124
  "no-new-wrappers": "error",
125
+
108
126
  "no-nonoctal-decimal-escape": "error",
127
+
109
128
  "no-object-constructor": "error",
129
+
110
130
  "no-octal": "error",
131
+
111
132
  "no-octal-escape": "error",
133
+
112
134
  "no-param-reassign": "error",
135
+
113
136
  "no-plusplus": ["error", { allowForLoopAfterthoughts: true }],
137
+
138
+ "no-promise-executor-return": "error",
139
+
114
140
  "no-proto": "error",
141
+
142
+ "no-prototype-builtins": "error",
143
+
115
144
  "no-regex-spaces": "error",
145
+
116
146
  "no-return-assign": "error",
147
+
117
148
  "no-script-url": "error",
149
+
150
+ "no-self-assign": "error",
151
+
152
+ "no-self-compare": "error",
153
+
118
154
  "no-sequences": "error",
155
+
119
156
  "no-shadow": "error",
157
+
120
158
  "no-shadow-restricted-names": "error",
159
+
160
+ "no-sparse-arrays": "error",
161
+
162
+ "no-template-curly-in-string": "error",
163
+
121
164
  "no-throw-literal": "error",
122
- "no-undefined": "error",
165
+
166
+ "no-unexpected-multiline": "error",
167
+
168
+ "no-unmodified-loop-condition": "error",
169
+
123
170
  "no-unneeded-ternary": "error",
171
+
172
+ "no-unreachable-loop": "error",
173
+
174
+ "no-unsafe-finally": "error",
175
+
176
+ "no-unsafe-optional-chaining": "error",
177
+
124
178
  "no-unused-expressions": "error",
179
+
125
180
  "no-unused-labels": "error",
181
+
182
+ "no-unused-private-class-members": "error",
183
+
184
+ "no-unused-vars": "error",
185
+
186
+ "no-use-before-define": "error",
187
+ // "no-useless-assignment": "error", NOTE: available in eslint 9
188
+ "no-useless-backreference": "error",
126
189
  "no-useless-call": "error",
127
190
  "no-useless-catch": "error",
128
191
  "no-useless-computed-key": "error",
@@ -136,7 +199,12 @@ module.exports = {
136
199
  "object-shorthand": ["error", "always"],
137
200
  "one-var": ["error", "never"],
138
201
  "operator-assignment": ["error", "never"],
139
- "prefer-arrow-callback": "error",
202
+ "prefer-arrow-callback": [
203
+ "error",
204
+ {
205
+ allowNamedFunctions: true,
206
+ },
207
+ ],
140
208
  "prefer-const": "error",
141
209
  "prefer-object-has-own": "error",
142
210
  "prefer-object-spread": "error",
@@ -145,9 +213,11 @@ module.exports = {
145
213
  "prefer-spread": "error",
146
214
  "prefer-template": "error",
147
215
  radix: "error",
216
+ "require-atomic-updates": "error",
148
217
  "require-await": "error",
149
218
  "require-yield": "error",
150
219
  "symbol-description": "error",
220
+ "use-isnan": "error",
151
221
  yoda: "error",
152
222
  },
153
223
  }
@@ -6,11 +6,8 @@ module.exports = {
6
6
  "etc/no-commented-out-code": "error",
7
7
  "etc/no-deprecated": "error",
8
8
  "etc/no-enum": "error",
9
- "etc/no-implicit-any-catch": "error",
10
9
  "etc/no-internal": "error",
11
- "etc/no-misused-generics": "error",
12
10
  "etc/no-t": "error",
13
- "etc/prefer-less-than": "error",
14
11
  "etc/throw-error": "error",
15
12
  },
16
13
  }
@@ -2,30 +2,28 @@
2
2
  module.exports = {
3
3
  plugins: ["import-x"],
4
4
  rules: {
5
+ "import-x/default": "error",
5
6
  "import-x/export": "error",
7
+ "import-x/exports-last": "error",
8
+ "import-x/first": "error",
9
+ "import-x/named": "error",
10
+ "import-x/namespace": "error",
11
+ "import-x/newline-after-import": "error",
12
+ "import-x/no-absolute-path": "error",
13
+ "import-x/no-anonymous-default-export": "error",
14
+ "import-x/no-cycle": "error",
6
15
  "import-x/no-deprecated": "error",
16
+ "import-x/no-duplicates": "error",
17
+ "import-x/no-dynamic-require": "error",
7
18
  "import-x/no-empty-named-blocks": "error",
8
19
  "import-x/no-extraneous-dependencies": "error",
9
20
  "import-x/no-mutable-exports": "error",
10
21
  "import-x/no-named-as-default": "error",
11
22
  "import-x/no-named-as-default-member": "error",
12
- "import-x/default": "error",
13
- "import-x/named": "error",
14
- "import-x/namespace": "error",
15
- "import-x/no-absolute-path": "error",
16
- "import-x/no-cycle": "error",
17
- "import-x/no-dynamic-require": "error",
23
+ "import-x/no-named-default": "error",
18
24
  "import-x/no-relative-packages": "error",
19
25
  "import-x/no-self-import": "error",
20
- "import-x/no-unresolved": "error",
21
26
  "import-x/no-useless-path-segments": "error",
22
- "import-x/exports-last": "error",
23
- "import-x/first": "error",
24
- "import-x/group-exports": "error",
25
- "import-x/newline-after-import": "error",
26
- "import-x/no-anonymous-default-export": "error",
27
- "import-x/no-duplicates": "error",
28
- "import-x/no-named-default": "error",
29
27
  "import-x/order": "error",
30
28
  },
31
29
  }
@@ -16,21 +16,21 @@ module.exports = {
16
16
  "jest/no-duplicate-hooks": "error",
17
17
  "jest/no-export": "error",
18
18
  "jest/no-focused-tests": "error",
19
+ "jest/no-identical-title": "error",
20
+ "jest/no-interpolation-in-snapshots": "error",
21
+ "jest/no-jasmine-globals": "error",
19
22
  "jest/no-mocks-import": "error",
20
23
  "jest/no-standalone-expect": "error",
21
24
  "jest/no-test-prefixes": "error",
22
25
  "jest/no-test-return-statement": "error",
23
- "jest/no-identical-title": "error",
24
- "jest/no-interpolation-in-snapshots": "error",
25
- "jest/no-jasmine-globals": "error",
26
26
  "jest/no-untyped-mock-factory": "error",
27
+ "jest/prefer-called-with": "error",
27
28
  "jest/prefer-comparison-matcher": "error",
28
29
  "jest/prefer-each": "error",
29
30
  "jest/prefer-equality-matcher": "error",
30
31
  "jest/prefer-expect-resolves": "error",
31
32
  "jest/prefer-hooks-in-order": "error",
32
33
  "jest/prefer-hooks-on-top": "error",
33
- "jest/prefer-called-with": "error",
34
34
  "jest/prefer-jest-mocked": "error",
35
35
  "jest/prefer-lowercase-title": [
36
36
  "error",
@@ -39,16 +39,16 @@ module.exports = {
39
39
  "jest/prefer-mock-promise-shorthand": "error",
40
40
  "jest/prefer-spy-on": "error",
41
41
  "jest/prefer-strict-equal": "error",
42
+ "jest/prefer-to-be": "error",
42
43
  "jest/prefer-to-contain": "error",
43
44
  "jest/prefer-to-have-length": "error",
44
45
  "jest/prefer-todo": "error",
45
- "jest/prefer-to-be": "error",
46
46
  "jest/require-hook": "error",
47
47
  "jest/require-to-throw-message": "error",
48
48
  "jest/require-top-level-describe": "error",
49
49
  "jest/valid-describe-callback": "error",
50
50
  "jest/valid-expect": "error",
51
- "jest/valid-title": "error",
52
51
  "jest/valid-expect-in-promise": "error",
52
+ "jest/valid-title": "error",
53
53
  },
54
54
  }