@epic-web/config 1.21.0 → 1.21.2
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/docs/decisions/009-consistent-filename-casing.md +11 -8
- package/eslint.js +4 -9
- package/package.json +12 -12
- package/prettier.js +9 -3
- package/utils.js +13 -0
|
@@ -6,18 +6,21 @@ Status: accepted
|
|
|
6
6
|
|
|
7
7
|
## Context
|
|
8
8
|
|
|
9
|
-
TypeScript follows the case sensitivity rules of the file system it’s running
|
|
10
|
-
This can be problematic if some developers are working in a case-sensitive
|
|
11
|
-
If a file attempts to import fileManager.ts by
|
|
12
|
-
|
|
9
|
+
TypeScript follows the case sensitivity rules of the file system it’s running
|
|
10
|
+
on. This can be problematic if some developers are working in a case-sensitive
|
|
11
|
+
file system and others aren’t. If a file attempts to import fileManager.ts by
|
|
12
|
+
specifying ./FileManager.ts the file will be found in a case-insensitive file
|
|
13
|
+
system, but not on a case-sensitive file system.
|
|
13
14
|
|
|
14
|
-
When this option is set, TypeScript will issue an error if a program tries to
|
|
15
|
-
by a casing different from the casing on disk.
|
|
15
|
+
When this option is set, TypeScript will issue an error if a program tries to
|
|
16
|
+
include a file by a casing different from the casing on disk.
|
|
16
17
|
|
|
17
18
|
## Decision
|
|
18
19
|
|
|
19
|
-
Set
|
|
20
|
+
Set
|
|
21
|
+
[`forceConsistentCasingInFileNames`](https://www.typescriptlang.org/tsconfig/forceConsistentCasingInFileNames.html)
|
|
22
|
+
to true in Typescript
|
|
20
23
|
|
|
21
24
|
## Consequences
|
|
22
25
|
|
|
23
|
-
Ensure seamless workflow between developers with different operating systems.
|
|
26
|
+
Ensure seamless workflow between developers with different operating systems.
|
package/eslint.js
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
import globals from 'globals'
|
|
2
|
+
import { has } from './utils.js'
|
|
2
3
|
|
|
3
4
|
const ERROR = 'error'
|
|
4
5
|
const WARN = 'warn'
|
|
5
6
|
|
|
6
|
-
const has = (pkg) => {
|
|
7
|
-
try {
|
|
8
|
-
import.meta.resolve(pkg, import.meta.url)
|
|
9
|
-
return true
|
|
10
|
-
} catch {
|
|
11
|
-
return false
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
7
|
const hasTypeScript = has('typescript')
|
|
16
8
|
const hasReact = has('react')
|
|
17
9
|
const hasTestingLibrary = has('@testing-library/dom')
|
|
@@ -36,6 +28,9 @@ export const config = [
|
|
|
36
28
|
'**/dist/**',
|
|
37
29
|
'**/coverage/**',
|
|
38
30
|
'**/*.tsbuildinfo',
|
|
31
|
+
'**/.react-router/**',
|
|
32
|
+
'**/.wrangler/**',
|
|
33
|
+
'worker-configuration.d.ts',
|
|
39
34
|
],
|
|
40
35
|
},
|
|
41
36
|
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "1.21.
|
|
7
|
+
"version": "1.21.2",
|
|
8
8
|
"description": "Reasonable ESLint configs for epic web devs",
|
|
9
9
|
"main": "index.js",
|
|
10
10
|
"type": "module",
|
|
@@ -41,26 +41,26 @@
|
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@total-typescript/ts-reset": "^0.6.1",
|
|
44
|
-
"@vitest/eslint-plugin": "^1.
|
|
45
|
-
"eslint-plugin-import-x": "^4.
|
|
44
|
+
"@vitest/eslint-plugin": "^1.3.4",
|
|
45
|
+
"eslint-plugin-import-x": "^4.16.1",
|
|
46
46
|
"eslint-plugin-jest-dom": "^5.5.0",
|
|
47
47
|
"eslint-plugin-playwright": "^2.2.0",
|
|
48
48
|
"eslint-plugin-react": "^7.37.5",
|
|
49
49
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
50
|
-
"eslint-plugin-testing-library": "^7.
|
|
51
|
-
"globals": "^16.
|
|
52
|
-
"prettier-plugin-tailwindcss": "^0.6.
|
|
50
|
+
"eslint-plugin-testing-library": "^7.6.1",
|
|
51
|
+
"globals": "^16.3.0",
|
|
52
|
+
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
53
53
|
"tslib": "^2.8.1",
|
|
54
|
-
"typescript-eslint": "^8.
|
|
54
|
+
"typescript-eslint": "^8.38.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@playwright/test": "^1.
|
|
58
|
-
"@types/react": "^19.1.
|
|
59
|
-
"eslint": "^9.
|
|
57
|
+
"@playwright/test": "^1.54.1",
|
|
58
|
+
"@types/react": "^19.1.8",
|
|
59
|
+
"eslint": "^9.32.0",
|
|
60
60
|
"npm-run-all": "^4.1.5",
|
|
61
|
-
"prettier": "^3.
|
|
61
|
+
"prettier": "^3.6.2",
|
|
62
62
|
"react": "^19.1.0",
|
|
63
63
|
"typescript": "^5.8.3",
|
|
64
|
-
"vitest": "^3.
|
|
64
|
+
"vitest": "^3.2.4"
|
|
65
65
|
}
|
|
66
66
|
}
|
package/prettier.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { has } from './utils.js'
|
|
2
|
+
|
|
3
|
+
const hasTailwind = has('tailwindcss')
|
|
4
|
+
|
|
1
5
|
/** @type {import("prettier").Options} */
|
|
2
6
|
export const config = {
|
|
3
7
|
arrowParens: 'always',
|
|
@@ -39,9 +43,11 @@ export const config = {
|
|
|
39
43
|
},
|
|
40
44
|
},
|
|
41
45
|
],
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
...(hasTailwind && {
|
|
47
|
+
plugins: ['prettier-plugin-tailwindcss'],
|
|
48
|
+
tailwindAttributes: ['class', 'className', 'ngClass', '.*[cC]lassName'],
|
|
49
|
+
tailwindFunctions: ['clsx', 'cn', 'cva'],
|
|
50
|
+
}),
|
|
45
51
|
}
|
|
46
52
|
|
|
47
53
|
// this is for backward compatibility
|
package/utils.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a package is installed by attempting to resolve it
|
|
3
|
+
* @param {string} pkg - The package name to check
|
|
4
|
+
* @returns {boolean} - True if the package is installed, false otherwise
|
|
5
|
+
*/
|
|
6
|
+
export const has = (pkg) => {
|
|
7
|
+
try {
|
|
8
|
+
import.meta.resolve(pkg, import.meta.url)
|
|
9
|
+
return true
|
|
10
|
+
} catch {
|
|
11
|
+
return false
|
|
12
|
+
}
|
|
13
|
+
}
|