Skip to content

Commit eee0eb2

Browse files
authored
typescript-eslint v6 + prettier 3.0 (#1805)
* start by bumping everything * seems like everything works. no more double plugin workaround * use new recommended stylistic config * use strict config, it seems fine! * use structuredClone directly, don't fall back to JSON.parse(JSON.stringify(x))
1 parent 60c2285 commit eee0eb2

31 files changed

+441
-426
lines changed

.babelrc

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

.eslintrc.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
},
77
"extends": [
88
"eslint:recommended",
9+
"plugin:@typescript-eslint/strict",
10+
"plugin:@typescript-eslint/stylistic",
911
"plugin:jsx-a11y/recommended",
1012
"plugin:react/recommended",
11-
"plugin:@typescript-eslint/recommended",
1213
"prettier",
1314
"plugin:react-hook-form/recommended"
1415
],
@@ -28,6 +29,8 @@
2829
"node": true
2930
},
3031
"rules": {
32+
"@typescript-eslint/array-type": "off",
33+
"@typescript-eslint/consistent-type-definitions": "off",
3134
"@typescript-eslint/consistent-type-imports": ["error", { "prefer": "type-imports" }],
3235
"@typescript-eslint/no-empty-function": "off",
3336
"@typescript-eslint/no-empty-interface": "off",

.prettierrc.js

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,13 @@
66
* Copyright Oxide Computer Company
77
*/
88

9-
const twPlugin = require('prettier-plugin-tailwindcss')
10-
const importsPlugin = require('@trivago/prettier-plugin-sort-imports')
11-
12-
// The Tailwind plugin and the imports plugin can't both be used at the same
13-
// time because they both rely on the same underlying mechanism, which can only
14-
// take one plugin. So we manually combine them into a single plugin and use
15-
// that. Approach recommended here:
16-
// https://github.com/tailwindlabs/prettier-plugin-tailwindcss/issues/31#issuecomment-1195411734
17-
18-
/** @type {import("prettier").Parser} */
19-
const combinedParser = {
20-
...importsPlugin.parsers.typescript,
21-
parse: twPlugin.parsers.typescript.parse,
22-
}
23-
24-
/** @type {import("prettier").Plugin} */
25-
const combinedPlugin = {
26-
parsers: {
27-
typescript: combinedParser,
28-
},
29-
}
30-
319
module.exports = {
32-
plugins: [combinedPlugin],
10+
// note: it seems like tailwind has to be last for it to work
11+
plugins: ['@trivago/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'],
3312
printWidth: 92,
3413
singleQuote: true,
3514
semi: false,
15+
trailingComma: 'es5', // default changed to all in prettier 3, wanted to minimize diff
3616
importOrder: ['<THIRD_PARTY_MODULES>', '^@oxide/(.*)$', '^app/(.*)$', '^[./]'],
3717
importOrderGroupNamespaceSpecifiers: true,
3818
importOrderSeparation: true,

app/components/AccessNameCell.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { Badge } from '@oxide/ui'
1414
* Display the user or group name. If the row is for a group, add a GROUP badge.
1515
*/
1616
export const AccessNameCell = <
17-
RowData extends { name: string; identityType: IdentityType }
17+
RowData extends { name: string; identityType: IdentityType },
1818
>(
1919
info: CellContext<RowData, string>
2020
) => {

app/components/RoundedSector.tsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -202,26 +202,26 @@ function getPath(angle: number, thickness: number, size: number, cornerRadius: n
202202
${+(Math.abs(newOuterAngle) > 180)},0,
203203
${outerLineEndCornerXY1.x},${outerLineEndCornerXY1.y}
204204
C ${outerLineEndCornerXY1.x} ${outerLineEndCornerXY1.y} ${
205-
outerLineEndCornerBezier.x
206-
} ${outerLineEndCornerBezier.y} ${outerLineEndCornerXY2.x} ${outerLineEndCornerXY2.y}
205+
outerLineEndCornerBezier.x
206+
} ${outerLineEndCornerBezier.y} ${outerLineEndCornerXY2.x} ${outerLineEndCornerXY2.y}
207207
L ${innerLineStartCornerXY1.x} ${innerLineStartCornerXY1.y}
208208
C ${innerLineStartCornerXY1.x} ${innerLineStartCornerXY1.y} ${
209-
innerLineStartCornerBezier.x
210-
} ${innerLineStartCornerBezier.y} ${innerLineStartCornerXY2.x} ${
211-
innerLineStartCornerXY2.y
212-
}
209+
innerLineStartCornerBezier.x
210+
} ${innerLineStartCornerBezier.y} ${innerLineStartCornerXY2.x} ${
211+
innerLineStartCornerXY2.y
212+
}
213213
A ${innerRadius},${innerRadius},0,
214214
${+(Math.abs(newInnerAngle) > 180)},1,
215215
${innerLineEndCornerXY1.x},${innerLineEndCornerXY1.y}
216216
C ${innerLineEndCornerXY1.x} ${innerLineEndCornerXY1.y} ${innerLineEndCornerBezier.x} ${
217-
innerLineEndCornerBezier.y
218-
} ${innerLineEndCornerXY2.x} ${innerLineEndCornerXY2.y}
217+
innerLineEndCornerBezier.y
218+
} ${innerLineEndCornerXY2.x} ${innerLineEndCornerXY2.y}
219219
L ${outerLinerStartCornerXY1.x} ${outerLinerStartCornerXY1.y}
220220
C ${outerLinerStartCornerXY1.x} ${outerLinerStartCornerXY1.y} ${
221-
outerLineStartCornerBezier.x
222-
} ${outerLineStartCornerBezier.y} ${outerLineStartCornerXY2.x} ${
223-
outerLineStartCornerXY2.y
224-
}
221+
outerLineStartCornerBezier.x
222+
} ${outerLineStartCornerBezier.y} ${outerLineStartCornerXY2.x} ${
223+
outerLineStartCornerXY2.y
224+
}
225225
`
226226
}
227227

app/components/form/fields/CheckboxField.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ import { Checkbox } from '@oxide/ui'
1313

1414
type CheckboxFieldProps<
1515
TFieldValues extends FieldValues,
16-
TName extends FieldPath<TFieldValues>
16+
TName extends FieldPath<TFieldValues>,
1717
> = Omit<CheckboxProps, 'name'> & {
1818
name: TName
1919
control: Control<TFieldValues>
2020
}
2121

2222
export const CheckboxField = <
2323
TFieldValues extends FieldValues,
24-
TName extends FieldPath<TFieldValues>
24+
TName extends FieldPath<TFieldValues>,
2525
>({
2626
control,
2727
name,

app/components/form/fields/DescriptionField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const MAX_LEN = 512
1515

1616
export function DescriptionField<
1717
TFieldValues extends FieldValues,
18-
TName extends FieldPath<TFieldValues>
18+
TName extends FieldPath<TFieldValues>,
1919
>(props: Omit<TextFieldProps<TFieldValues, TName>, 'validate'>) {
2020
return <TextField as="textarea" validate={validateDescription} {...props} />
2121
}

app/components/form/fields/DiskSizeField.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ import type { TextFieldProps } from './TextField'
1414

1515
interface DiskSizeProps<
1616
TFieldValues extends FieldValues,
17-
TName extends FieldPath<TFieldValues>
17+
TName extends FieldPath<TFieldValues>,
1818
> extends TextFieldProps<TFieldValues, TName> {
1919
minSize?: number
2020
}
2121

2222
export function DiskSizeField<
2323
TFieldValues extends FieldValues,
24-
TName extends FieldPathByValue<TFieldValues, number>
24+
TName extends FieldPathByValue<TFieldValues, number>,
2525
>({ required = true, name, minSize = 1, ...props }: DiskSizeProps<TFieldValues, TName>) {
2626
return (
2727
<NumberField

app/components/form/fields/FileField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { ErrorMessage } from './ErrorMessage'
1414

1515
export function FileField<
1616
TFieldValues extends FieldValues,
17-
TName extends FieldPath<TFieldValues>
17+
TName extends FieldPath<TFieldValues>,
1818
>({
1919
id,
2020
name,

app/components/form/fields/ListboxField.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { ErrorMessage } from './ErrorMessage'
1717

1818
export type ListboxFieldProps<
1919
TFieldValues extends FieldValues,
20-
TName extends FieldPath<TFieldValues>
20+
TName extends FieldPath<TFieldValues>,
2121
> = {
2222
name: TName
2323
placeholder?: string
@@ -35,7 +35,7 @@ export type ListboxFieldProps<
3535

3636
export function ListboxField<
3737
TFieldValues extends FieldValues,
38-
TName extends FieldPath<TFieldValues>
38+
TName extends FieldPath<TFieldValues>,
3939
>({
4040
items,
4141
name,

0 commit comments

Comments
 (0)