summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Emanuele Stoppa <my.burning@gmail.com> 2024-01-30 08:35:08 +0000
committerGravatar GitHub <noreply@github.com> 2024-01-30 08:35:08 +0000
commitbcc504dae03f9ceed1aa502b76cfa2c6d2fbbfc8 (patch)
tree98c0127753ab788483332ba8f0a1acfd89652936
parent44c957f893c6bf5f5b7c78301de7b21c5975584d (diff)
downloadastro-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.cjs1
-rw-r--r--packages/astro/src/assets/services/squoosh.ts2
-rw-r--r--packages/astro/src/cli/add/index.ts2
-rw-r--r--packages/astro/src/core/app/types.ts2
-rw-r--r--packages/astro/src/preferences/index.ts3
-rw-r--r--packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts3
-rw-r--r--packages/astro/src/runtime/server/scripts.ts2
-rw-r--r--packages/astro/src/vite-plugin-astro/types.ts1
-rw-r--r--packages/integrations/node/test/encoded.test.js2
-rw-r--r--packages/integrations/node/test/headers.test.js2
-rw-r--r--packages/integrations/node/test/locals.test.js2
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';