diff --git a/site/.eslintrc.yaml b/site/.eslintrc.yaml index 6be87c5c80f52..3b28b76232635 100644 --- a/site/.eslintrc.yaml +++ b/site/.eslintrc.yaml @@ -8,6 +8,7 @@ env: extends: - eslint:recommended - plugin:@typescript-eslint/recommended + - plugin:@typescript-eslint/recommended-requiring-type-checking - plugin:eslint-comments/recommended - plugin:import/recommended - plugin:import/typescript @@ -35,28 +36,38 @@ root: true rules: "@typescript-eslint/brace-style": ["error", "1tbs", { "allowSingleLine": false }] - "@typescript-eslint/camelcase": "off" - "@typescript-eslint/explicit-function-return-type": "off" "@typescript-eslint/method-signature-style": ["error", "property"] - "@typescript-eslint/no-floating-promises": error - "@typescript-eslint/no-invalid-void-type": error + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/no-misused-promises": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/no-unsafe-argument": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/no-unsafe-assignment": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/no-unsafe-call": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/no-unsafe-member-access": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/no-unsafe-return": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/require-await": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/restrict-plus-operands": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/restrict-template-expressions": "off" + # TODO: Investigate whether to enable this rule & fix and/or disable all its complaints + "@typescript-eslint/unbound-method": "off" # We're disabling the `no-namespace` rule to use a pattern of defining an interface, # and then defining functions that operate on that data via namespace. This is helpful for # dealing with immutable objects. This is a common pattern that shows up in some other # large TypeScript projects, like VSCode. # More details: https://github.com/coder/m/pull/9720#discussion_r697609528 "@typescript-eslint/no-namespace": "off" - "@typescript-eslint/no-unnecessary-boolean-literal-compare": error - "@typescript-eslint/no-unnecessary-condition": warn - "@typescript-eslint/no-unnecessary-type-assertion": warn "@typescript-eslint/no-unused-vars": - error - argsIgnorePattern: "^_" varsIgnorePattern: "^_" ignoreRestSiblings: true - "@typescript-eslint/no-use-before-define": "off" - "@typescript-eslint/object-curly-spacing": ["error", "always"] - "@typescript-eslint/triple-slash-reference": "off" "brace-style": "off" "curly": ["error", "all"] "eslint-comments/require-description": "error" diff --git a/site/src/api/api.ts b/site/src/api/api.ts index 885e701a644b3..294d8c1993237 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -20,8 +20,7 @@ export const hardCodedCSRFCookie = (): string => { export const withDefaultFeatures = ( fs: Partial, ): TypesGen.Entitlements["features"] => { - for (const k in TypesGen.FeatureNames) { - const feature = k as TypesGen.FeatureName + for (const feature of TypesGen.FeatureNames) { // Skip fields that are already filled. if (fs[feature] !== undefined) { continue @@ -140,8 +139,7 @@ export const getTokens = async (): Promise => { } export const deleteAPIKey = async (keyId: string): Promise => { - const response = await axios.delete("/api/v2/users/me/keys/" + keyId) - return response.data + await axios.delete("/api/v2/users/me/keys/" + keyId) } export const getUsers = async ( diff --git a/site/src/pages/TemplateSettingsPage/TemplateSettingsPage.test.tsx b/site/src/pages/TemplateSettingsPage/TemplateSettingsPage.test.tsx index e0608628d315a..bab264530a146 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSettingsPage.test.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSettingsPage.test.tsx @@ -65,7 +65,7 @@ const fillAndSubmitForm = async ({ await userEvent.clear(maxTtlField) await userEvent.type(maxTtlField, default_ttl_ms.toString()) - const allowCancelJobsField = await screen.getByRole("checkbox") + const allowCancelJobsField = screen.getByRole("checkbox") // checkbox is checked by default, so it must be clicked to get unchecked if (!allow_user_cancel_workspace_jobs) { await userEvent.click(allowCancelJobsField) diff --git a/site/src/pages/UsersPage/UsersPage.test.tsx b/site/src/pages/UsersPage/UsersPage.test.tsx index 4f8c1acb53050..2c0f274629a38 100644 --- a/site/src/pages/UsersPage/UsersPage.test.tsx +++ b/site/src/pages/UsersPage/UsersPage.test.tsx @@ -249,7 +249,7 @@ describe("UsersPage", () => { expect(API.getUsers).toBeCalledWith({ offset: 0, limit: 25, q: "" }), ) - const pageButtons = await container.querySelectorAll( + const pageButtons = container.querySelectorAll( `button[name="Page button"]`, ) // count handler says there are 2 pages of results diff --git a/site/src/pages/WorkspacesPage/WorkspacesPage.test.tsx b/site/src/pages/WorkspacesPage/WorkspacesPage.test.tsx index 3d73efa33518a..e63f549ecd5ea 100644 --- a/site/src/pages/WorkspacesPage/WorkspacesPage.test.tsx +++ b/site/src/pages/WorkspacesPage/WorkspacesPage.test.tsx @@ -49,7 +49,7 @@ describe("WorkspacesPage", () => { name: "Previous page", }) expect(prevPage).toBeDisabled() - const pageButtons = await container.querySelectorAll( + const pageButtons = container.querySelectorAll( `button[name="Page button"]`, ) expect(pageButtons.length).toBe(2) diff --git a/site/src/xServices/users/searchUserXService.ts b/site/src/xServices/users/searchUserXService.ts index 4840126895b13..a80e763dfda78 100644 --- a/site/src/xServices/users/searchUserXService.ts +++ b/site/src/xServices/users/searchUserXService.ts @@ -51,9 +51,7 @@ export const searchUserMachine = createMachine( { services: { searchUsers: async (_, { query }) => - await ( - await getUsers(queryToFilter(query)) - ).users, + (await getUsers(queryToFilter(query))).users, }, actions: { assignSearchResults: assign({