diff options
author | 2024-01-30 08:35:08 +0000 | |
---|---|---|
committer | 2024-01-30 08:35:08 +0000 | |
commit | bcc504dae03f9ceed1aa502b76cfa2c6d2fbbfc8 (patch) | |
tree | 98c0127753ab788483332ba8f0a1acfd89652936 | |
parent | 44c957f893c6bf5f5b7c78301de7b21c5975584d (diff) | |
download | astro-bcc504dae03f9ceed1aa502b76cfa2c6d2fbbfc8.tar.gz astro-bcc504dae03f9ceed1aa502b76cfa2c6d2fbbfc8.tar.zst astro-bcc504dae03f9ceed1aa502b76cfa2c6d2fbbfc8.zip |
chore: add rule `switch-exhaustiveness-check` (#9867)
* chore: add rule `switch-exhaustiveness-check`
* apply feedback
* routing is always defined
-rw-r--r-- | .eslintrc.cjs | 1 | ||||
-rw-r--r-- | packages/astro/src/assets/services/squoosh.ts | 2 | ||||
-rw-r--r-- | packages/astro/src/cli/add/index.ts | 2 | ||||
-rw-r--r-- | packages/astro/src/core/app/types.ts | 2 | ||||
-rw-r--r-- | packages/astro/src/preferences/index.ts | 3 | ||||
-rw-r--r-- | packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts | 3 | ||||
-rw-r--r-- | packages/astro/src/runtime/server/scripts.ts | 2 | ||||
-rw-r--r-- | packages/astro/src/vite-plugin-astro/types.ts | 1 | ||||
-rw-r--r-- | packages/integrations/node/test/encoded.test.js | 2 | ||||
-rw-r--r-- | packages/integrations/node/test/headers.test.js | 2 | ||||
-rw-r--r-- | packages/integrations/node/test/locals.test.js | 2 |
11 files changed, 17 insertions, 5 deletions
diff --git a/.eslintrc.cjs b/.eslintrc.cjs index e2a11d03e..c3e825cfc 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -16,6 +16,7 @@ module.exports = { plugins: ['@typescript-eslint', 'prettier', 'no-only-tests'], rules: { // These off/configured-differently-by-default rules fit well for us + '@typescript-eslint/switch-exhaustiveness-check': 'error', '@typescript-eslint/array-type': ['error', { default: 'array-simple' }], '@typescript-eslint/no-unused-vars': [ 'warn', diff --git a/packages/astro/src/assets/services/squoosh.ts b/packages/astro/src/assets/services/squoosh.ts index c9586af10..098b3a669 100644 --- a/packages/astro/src/assets/services/squoosh.ts +++ b/packages/astro/src/assets/services/squoosh.ts @@ -48,6 +48,8 @@ async function getRotationForEXIF( case 7: case 8: return { type: 'rotate', numRotations: 3 }; + default: + return undefined; } } diff --git a/packages/astro/src/cli/add/index.ts b/packages/astro/src/cli/add/index.ts index dcc4859f8..b8cb1949c 100644 --- a/packages/astro/src/cli/add/index.ts +++ b/packages/astro/src/cli/add/index.ts @@ -211,6 +211,8 @@ export async function add(names: string[], { flags }: AddOptions) { case UpdateResult.failure: { throw createPrettyError(new Error(`Unable to install dependencies`)); } + case UpdateResult.none: + break; } const rawConfigPath = await resolveConfigPath({ diff --git a/packages/astro/src/core/app/types.ts b/packages/astro/src/core/app/types.ts index b4da7dc68..a5b93fb50 100644 --- a/packages/astro/src/core/app/types.ts +++ b/packages/astro/src/core/app/types.ts @@ -60,7 +60,7 @@ export type SSRManifest = { export type SSRManifestI18n = { fallback?: Record<string, string>; - routing?: RoutingStrategies; + routing: RoutingStrategies; locales: Locales; defaultLocale: string; }; diff --git a/packages/astro/src/preferences/index.ts b/packages/astro/src/preferences/index.ts index d758c405b..8a19c5d48 100644 --- a/packages/astro/src/preferences/index.ts +++ b/packages/astro/src/preferences/index.ts @@ -66,7 +66,10 @@ export function coerce(key: string, value: unknown) { case 'boolean': { if (value === 'true' || value === 1) return true; if (value === 'false' || value === 0) return false; + break; } + default: + throw new Error(`Incorrect value for ${key}`); } return value as any; } diff --git a/packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts b/packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts index d6a2cbde8..7fa199309 100644 --- a/packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts +++ b/packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts @@ -161,7 +161,10 @@ export default { astroToggle.input.addEventListener('change', setting.changeEvent); astroToggle.input.checked = settings.config[setting.settingKey]; label.append(astroToggle); + break; } + default: + break; } return label; diff --git a/packages/astro/src/runtime/server/scripts.ts b/packages/astro/src/runtime/server/scripts.ts index 47cd122f1..2ab368625 100644 --- a/packages/astro/src/runtime/server/scripts.ts +++ b/packages/astro/src/runtime/server/scripts.ts @@ -42,6 +42,8 @@ export function getPrescripts(result: SSRResult, type: PrescriptType, directive: )};${islandScript}</script>`; case 'directive': return `<script>${getDirectiveScriptText(result, directive)}</script>`; + case null: + break; } return ''; } diff --git a/packages/astro/src/vite-plugin-astro/types.ts b/packages/astro/src/vite-plugin-astro/types.ts index 589a0b0b0..40979293d 100644 --- a/packages/astro/src/vite-plugin-astro/types.ts +++ b/packages/astro/src/vite-plugin-astro/types.ts @@ -1,6 +1,5 @@ import type { HoistedScript, TransformResult } from '@astrojs/compiler'; import type { PropagationHint } from '../@types/astro.js'; -import type { CompileAstroResult } from './compile.js'; export interface PageOptions { prerender?: boolean; diff --git a/packages/integrations/node/test/encoded.test.js b/packages/integrations/node/test/encoded.test.js index 2739fcfb7..15b5654b1 100644 --- a/packages/integrations/node/test/encoded.test.js +++ b/packages/integrations/node/test/encoded.test.js @@ -1,5 +1,5 @@ import * as assert from 'node:assert/strict'; -import { describe, it, before, after } from 'node:test'; +import { describe, it, before } from 'node:test'; import nodejs from '../dist/index.js'; import { loadFixture, createRequestAndResponse } from './test-utils.js'; diff --git a/packages/integrations/node/test/headers.test.js b/packages/integrations/node/test/headers.test.js index 6a08dca22..b74af9952 100644 --- a/packages/integrations/node/test/headers.test.js +++ b/packages/integrations/node/test/headers.test.js @@ -1,5 +1,5 @@ import * as assert from 'node:assert/strict'; -import { describe, it, before, after } from 'node:test'; +import { describe, it, before } from 'node:test'; import nodejs from '../dist/index.js'; import { loadFixture, createRequestAndResponse } from './test-utils.js'; diff --git a/packages/integrations/node/test/locals.test.js b/packages/integrations/node/test/locals.test.js index e2a531cce..a310c729d 100644 --- a/packages/integrations/node/test/locals.test.js +++ b/packages/integrations/node/test/locals.test.js @@ -1,5 +1,5 @@ import * as assert from 'node:assert/strict'; -import { describe, it, before, after } from 'node:test'; +import { describe, it, before } from 'node:test'; import nodejs from '../dist/index.js'; import { loadFixture, createRequestAndResponse } from './test-utils.js'; |