summaryrefslogtreecommitdiff
path: root/packages/integrations
diff options
context:
space:
mode:
authorGravatar Josh Goldberg ✨ <git@joshuakgoldberg.com> 2023-07-03 05:59:43 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-03 20:59:43 +0800
commit2fea174303ca60f4765c6294d99ebc7a19e73403 (patch)
tree671f1f27d6d0827e51aaa20704b7f6154ad5d053 /packages/integrations
parentfc6826ff7620b0c5e419de93ef7c463a12fe3652 (diff)
downloadastro-2fea174303ca60f4765c6294d99ebc7a19e73403.tar.gz
astro-2fea174303ca60f4765c6294d99ebc7a19e73403.tar.zst
astro-2fea174303ca60f4765c6294d99ebc7a19e73403.zip
feat: use typescript-eslint@v6's reworked configs (#7425)
Diffstat (limited to 'packages/integrations')
-rw-r--r--packages/integrations/cloudflare/src/index.ts4
-rw-r--r--packages/integrations/cloudflare/test/test-utils.js2
-rw-r--r--packages/integrations/deno/src/index.ts2
-rw-r--r--packages/integrations/deno/src/server.ts1
-rw-r--r--packages/integrations/deno/test/basics.test.ts2
-rw-r--r--packages/integrations/deno/test/dynamic-import.test.ts2
-rw-r--r--packages/integrations/image/src/build/ssg.ts1
-rw-r--r--packages/integrations/image/src/lib/get-image.ts9
-rw-r--r--packages/integrations/image/src/loaders/squoosh.ts2
-rw-r--r--packages/integrations/image/src/utils/colornames.ts2
-rw-r--r--packages/integrations/image/src/vendor/squoosh/codecs.ts2
-rw-r--r--packages/integrations/image/src/vendor/squoosh/image.ts8
-rw-r--r--packages/integrations/image/test/background-color-image-ssg.test.js2
-rw-r--r--packages/integrations/image/test/background-color-image-ssr.test.js2
-rw-r--r--packages/integrations/image/test/test-utils.js3
-rw-r--r--packages/integrations/lit/client-shim.js2
-rw-r--r--packages/integrations/lit/server.js4
-rw-r--r--packages/integrations/markdoc/src/content-entry-type.ts1
-rw-r--r--packages/integrations/markdoc/src/extensions/shiki.ts1
-rw-r--r--packages/integrations/markdoc/src/index.ts6
-rw-r--r--packages/integrations/markdoc/src/load-config.ts2
-rw-r--r--packages/integrations/markdoc/src/utils.ts2
-rw-r--r--packages/integrations/mdx/src/plugins.ts2
-rw-r--r--packages/integrations/mdx/src/remark-shiki.ts3
-rw-r--r--packages/integrations/mdx/src/utils.ts2
-rw-r--r--packages/integrations/mdx/test/mdx-get-headings.test.js4
-rw-r--r--packages/integrations/mdx/test/mdx-page.test.js2
-rw-r--r--packages/integrations/mdx/test/mdx-plus-react.test.js2
-rw-r--r--packages/integrations/netlify/test/edge-functions/dynamic-import.test.js1
-rw-r--r--packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts2
-rw-r--r--packages/integrations/netlify/test/functions/cookies.test.js2
-rw-r--r--packages/integrations/netlify/test/functions/redirects.test.js2
-rw-r--r--packages/integrations/node/src/http-server.ts1
-rw-r--r--packages/integrations/node/src/response-iterator.ts3
-rw-r--r--packages/integrations/node/test/node-middleware.test.js2
-rw-r--r--packages/integrations/node/test/test-utils.js3
-rw-r--r--packages/integrations/partytown/src/index.ts6
-rw-r--r--packages/integrations/partytown/src/sirv.ts4
-rw-r--r--packages/integrations/preact/src/client.ts4
-rw-r--r--packages/integrations/preact/src/server.ts2
-rw-r--r--packages/integrations/prefetch/test/test-utils.js3
-rw-r--r--packages/integrations/react/server-v17.js5
-rw-r--r--packages/integrations/react/server.js5
-rw-r--r--packages/integrations/sitemap/src/config-defaults.ts4
-rw-r--r--packages/integrations/sitemap/src/index.ts1
-rw-r--r--packages/integrations/sitemap/test/test-utils.js3
-rw-r--r--packages/integrations/solid/src/dependencies.ts3
-rw-r--r--packages/integrations/vercel/src/image/build-service.ts4
-rw-r--r--packages/integrations/vercel/src/serverless/request-transform.ts2
-rw-r--r--packages/integrations/vue/test/test-utils.js3
50 files changed, 49 insertions, 93 deletions
diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts
index 298d798fb..3dc237b72 100644
--- a/packages/integrations/cloudflare/src/index.ts
+++ b/packages/integrations/cloudflare/src/index.ts
@@ -93,7 +93,7 @@ export default function createIntegration(args?: Options): AstroIntegration {
vite.ssr.target = 'webworker';
}
},
- 'astro:build:ssr': ({ manifest, entryPoints }) => {
+ 'astro:build:ssr': ({ entryPoints }) => {
_entryPoints = entryPoints;
},
'astro:build:done': async ({ pages, routes, dir }) => {
@@ -138,7 +138,7 @@ export default function createIntegration(args?: Options): AstroIntegration {
const fileName = entryPointsRouteData[index].component
.replace('src/pages/', '')
.replace('.astro', '.js')
- .replace(/(\[\.\.\.)(\w+)(\])/g, (_match, _p1, p2, _p3) => {
+ .replace(/(\[\.\.\.)(\w+)(\])/g, (_match, _p1, p2) => {
return `[[${p2}]]`;
});
diff --git a/packages/integrations/cloudflare/test/test-utils.js b/packages/integrations/cloudflare/test/test-utils.js
index 6216e677c..e0fc90a64 100644
--- a/packages/integrations/cloudflare/test/test-utils.js
+++ b/packages/integrations/cloudflare/test/test-utils.js
@@ -37,7 +37,6 @@ export function runCLI(basePath, { silent, port = 8787 }) {
(async function () {
for (const msg of p.stderr) {
if (!silent) {
- // eslint-disable-next-line
console.error(msg);
}
}
@@ -45,7 +44,6 @@ export function runCLI(basePath, { silent, port = 8787 }) {
for await (const msg of p.stdout) {
if (!silent) {
- // eslint-disable-next-line
console.log(msg);
}
if (msg.includes(`Listening on`)) {
diff --git a/packages/integrations/deno/src/index.ts b/packages/integrations/deno/src/index.ts
index 8b1f38959..93e51289b 100644
--- a/packages/integrations/deno/src/index.ts
+++ b/packages/integrations/deno/src/index.ts
@@ -95,7 +95,7 @@ export function getAdapter(args?: Options): AstroAdapter {
const denoImportsShimPlugin = {
name: '@astrojs/deno:shim',
setup(build: esbuild.PluginBuild) {
- build.onLoad({ filter: /__deno_imports\.js$/ }, async (args) => {
+ build.onLoad({ filter: /__deno_imports\.js$/ }, async () => {
return {
contents: DENO_IMPORTS,
loader: 'js',
diff --git a/packages/integrations/deno/src/server.ts b/packages/integrations/deno/src/server.ts
index 08d967065..90a4a1237 100644
--- a/packages/integrations/deno/src/server.ts
+++ b/packages/integrations/deno/src/server.ts
@@ -93,7 +93,6 @@ export function start(manifest: SSRManifest, options: Options) {
});
_startPromise = Promise.resolve(_server.listenAndServe());
- // eslint-disable-next-line no-console
console.error(`Server running on port ${port}`);
}
diff --git a/packages/integrations/deno/test/basics.test.ts b/packages/integrations/deno/test/basics.test.ts
index 9e4174506..5d3f116dd 100644
--- a/packages/integrations/deno/test/basics.test.ts
+++ b/packages/integrations/deno/test/basics.test.ts
@@ -1,3 +1,5 @@
+/* Deno types consider DOM elements nullable */
+/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
import { DOMParser } from 'https://deno.land/x/deno_dom@v0.1.35-alpha/deno-dom-wasm.ts';
import { assert, assertEquals } from 'https://deno.land/std@0.158.0/testing/asserts.ts';
import { runBuildAndStartApp, defaultTestPermissions } from './helpers.ts';
diff --git a/packages/integrations/deno/test/dynamic-import.test.ts b/packages/integrations/deno/test/dynamic-import.test.ts
index 987aac9ff..aa9d44c67 100644
--- a/packages/integrations/deno/test/dynamic-import.test.ts
+++ b/packages/integrations/deno/test/dynamic-import.test.ts
@@ -1,3 +1,5 @@
+/* Deno types consider DOM elements nullable */
+/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
import { DOMParser } from 'https://deno.land/x/deno_dom@v0.1.35-alpha/deno-dom-wasm.ts';
import { assert, assertEquals } from 'https://deno.land/std@0.158.0/testing/asserts.ts';
import { runBuildAndStartAppFromSubprocess } from './helpers.ts';
diff --git a/packages/integrations/image/src/build/ssg.ts b/packages/integrations/image/src/build/ssg.ts
index 2a6976d76..4a6d84d53 100644
--- a/packages/integrations/image/src/build/ssg.ts
+++ b/packages/integrations/image/src/build/ssg.ts
@@ -162,7 +162,6 @@ export async function ssgBuild({
}
if (!inputBuffer) {
- // eslint-disable-next-line no-console
warn({ level: logLevel, message: `"${src}" image could not be fetched` });
return;
}
diff --git a/packages/integrations/image/src/lib/get-image.ts b/packages/integrations/image/src/lib/get-image.ts
index d6aae4665..37f6a3bc4 100644
--- a/packages/integrations/image/src/lib/get-image.ts
+++ b/packages/integrations/image/src/lib/get-image.ts
@@ -1,10 +1,5 @@
/// <reference types="astro/astro-jsx" />
-import type {
- ColorDefinition,
- ImageService,
- OutputFormat,
- TransformOptions,
-} from '../loaders/index.js';
+import type { ImageService, OutputFormat, TransformOptions } from '../loaders/index.js';
import { isSSRService, parseAspectRatio } from '../loaders/index.js';
import { isRemoteImage } from '../utils/paths.js';
import type { ImageMetadata } from '../vite-plugin-astro-image.js';
@@ -91,7 +86,7 @@ async function resolveTransform(input: GetImageTransform): Promise<TransformOpti
height,
aspectRatio,
format: format as OutputFormat,
- background: background as ColorDefinition | undefined,
+ background,
};
}
diff --git a/packages/integrations/image/src/loaders/squoosh.ts b/packages/integrations/image/src/loaders/squoosh.ts
index b91b05be0..16eed032a 100644
--- a/packages/integrations/image/src/loaders/squoosh.ts
+++ b/packages/integrations/image/src/loaders/squoosh.ts
@@ -35,7 +35,7 @@ class SquooshService extends BaseSSRService {
};
}
- async processPng(image: any, transform: TransformOptions) {
+ async processPng(image: any) {
await image.encode({ oxipng: {} });
const data = await image.encodedWith.oxipng;
diff --git a/packages/integrations/image/src/utils/colornames.ts b/packages/integrations/image/src/utils/colornames.ts
index 806e55f31..897ada1e5 100644
--- a/packages/integrations/image/src/utils/colornames.ts
+++ b/packages/integrations/image/src/utils/colornames.ts
@@ -70,7 +70,6 @@ export type NamedColor =
| 'lightgreen'
| 'lightpink'
| 'lightsalmon'
- | 'lightsalmon'
| 'lightseagreen'
| 'lightskyblue'
| 'lightslategray'
@@ -87,7 +86,6 @@ export type NamedColor =
| 'mediumpurple'
| 'mediumseagreen'
| 'mediumslateblue'
- | 'mediumslateblue'
| 'mediumspringgreen'
| 'mediumturquoise'
| 'mediumvioletred'
diff --git a/packages/integrations/image/src/vendor/squoosh/codecs.ts b/packages/integrations/image/src/vendor/squoosh/codecs.ts
index eb83df97d..aa751387e 100644
--- a/packages/integrations/image/src/vendor/squoosh/codecs.ts
+++ b/packages/integrations/image/src/vendor/squoosh/codecs.ts
@@ -287,7 +287,6 @@ export const codecs = {
avif: {
name: 'AVIF',
extension: 'avif',
- // eslint-disable-next-line no-control-regex
detectors: [/^\x00\x00\x00 ftypavif\x00\x00\x00\x00/],
dec: () =>
instantiateEmscriptenWasm(avifDec as DecodeModuleFactory, avifDecWasm),
@@ -318,7 +317,6 @@ export const codecs = {
oxipng: {
name: 'OxiPNG',
extension: 'png',
- // eslint-disable-next-line no-control-regex
detectors: [/^\x89PNG\x0D\x0A\x1A\x0A/],
dec: async () => {
await pngEncDecInit()
diff --git a/packages/integrations/image/src/vendor/squoosh/image.ts b/packages/integrations/image/src/vendor/squoosh/image.ts
index aad4fb598..c8862f0c4 100644
--- a/packages/integrations/image/src/vendor/squoosh/image.ts
+++ b/packages/integrations/image/src/vendor/squoosh/image.ts
@@ -29,14 +29,14 @@ export async function processBuffer(
switch (encoding) {
case 'avif':
- return await impl.encodeAvif(imageData, { quality }) as Uint8Array;
+ return await impl.encodeAvif(imageData, { quality });
case 'jpeg':
case 'jpg':
- return await impl.encodeJpeg(imageData, { quality }) as Uint8Array;
+ return await impl.encodeJpeg(imageData, { quality });
case 'png':
- return await impl.encodePng(imageData) as Uint8Array;
+ return await impl.encodePng(imageData);
case 'webp':
- return await impl.encodeWebp(imageData, { quality }) as Uint8Array;
+ return await impl.encodeWebp(imageData, { quality });
default:
throw Error(`Unsupported encoding format`)
}
diff --git a/packages/integrations/image/test/background-color-image-ssg.test.js b/packages/integrations/image/test/background-color-image-ssg.test.js
index 6c4423615..ea55d7ae1 100644
--- a/packages/integrations/image/test/background-color-image-ssg.test.js
+++ b/packages/integrations/image/test/background-color-image-ssg.test.js
@@ -50,7 +50,7 @@ describe('SSG image with background - dev', function () {
it(title, async () => {
const image = $(id);
const src = image.attr('src');
- const [_, params] = src.split('?');
+ const [, params] = src.split('?');
const searchParams = new URLSearchParams(params);
expect(searchParams.get('bg')).to.equal(bg);
});
diff --git a/packages/integrations/image/test/background-color-image-ssr.test.js b/packages/integrations/image/test/background-color-image-ssr.test.js
index 6bc5f333f..66b512e30 100644
--- a/packages/integrations/image/test/background-color-image-ssr.test.js
+++ b/packages/integrations/image/test/background-color-image-ssr.test.js
@@ -104,7 +104,7 @@ describe('SSR image with background', function () {
const image = $(id);
const src = image.attr('src');
- const [_, params] = src.split('?');
+ const [, params] = src.split('?');
const searchParams = new URLSearchParams(params);
diff --git a/packages/integrations/image/test/test-utils.js b/packages/integrations/image/test/test-utils.js
index e6c22e0ab..122e90132 100644
--- a/packages/integrations/image/test/test-utils.js
+++ b/packages/integrations/image/test/test-utils.js
@@ -1,8 +1,7 @@
import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js';
export function loadFixture(inlineConfig) {
- if (!inlineConfig || !inlineConfig.root)
- throw new Error("Must provide { root: './fixtures/...' }");
+ if (!inlineConfig?.root) throw new Error("Must provide { root: './fixtures/...' }");
// resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath
// without this, the main `loadFixture` helper will resolve relative to `packages/astro/test`
diff --git a/packages/integrations/lit/client-shim.js b/packages/integrations/lit/client-shim.js
index a798dba4d..bf45dd912 100644
--- a/packages/integrations/lit/client-shim.js
+++ b/packages/integrations/lit/client-shim.js
@@ -17,6 +17,6 @@ const polyfillCheckEl = new DOMParser()
)
.querySelector('p');
-if (!polyfillCheckEl || !polyfillCheckEl.shadowRoot) {
+if (!polyfillCheckEl?.shadowRoot) {
polyfill();
}
diff --git a/packages/integrations/lit/server.js b/packages/integrations/lit/server.js
index d4ca4e08f..d71ccee47 100644
--- a/packages/integrations/lit/server.js
+++ b/packages/integrations/lit/server.js
@@ -17,10 +17,10 @@ function getCustomElementConstructor(name) {
async function isLitElement(Component) {
const Ctr = getCustomElementConstructor(Component);
- return !!(Ctr && Ctr._$litElement$);
+ return !!Ctr?._$litElement$;
}
-async function check(Component, _props, _children) {
+async function check(Component) {
// Lit doesn't support getting a tagName from a Constructor at this time.
// So this must be a string at the moment.
return !!(await isLitElement(Component));
diff --git a/packages/integrations/markdoc/src/content-entry-type.ts b/packages/integrations/markdoc/src/content-entry-type.ts
index 097c5cfae..2bae5402c 100644
--- a/packages/integrations/markdoc/src/content-entry-type.ts
+++ b/packages/integrations/markdoc/src/content-entry-type.ts
@@ -1,4 +1,3 @@
-/* eslint-disable no-console */
import type { Config as MarkdocConfig, Node } from '@markdoc/markdoc';
import Markdoc from '@markdoc/markdoc';
import type { AstroConfig, ContentEntryType } from 'astro';
diff --git a/packages/integrations/markdoc/src/extensions/shiki.ts b/packages/integrations/markdoc/src/extensions/shiki.ts
index 34f79779f..1229a09fb 100644
--- a/packages/integrations/markdoc/src/extensions/shiki.ts
+++ b/packages/integrations/markdoc/src/extensions/shiki.ts
@@ -87,7 +87,6 @@ export default async function shiki({
if (langExists) {
lang = attributes.language;
} else {
- // eslint-disable-next-line no-console
console.warn(
`[Shiki highlighter] The language "${attributes.language}" doesn't exist, falling back to plaintext.`
);
diff --git a/packages/integrations/markdoc/src/index.ts b/packages/integrations/markdoc/src/index.ts
index 60dd01843..f0d5a8a33 100644
--- a/packages/integrations/markdoc/src/index.ts
+++ b/packages/integrations/markdoc/src/index.ts
@@ -1,8 +1,6 @@
/* eslint-disable no-console */
import type { AstroConfig, AstroIntegration, ContentEntryType, HookParameters } from 'astro';
import { bold, red } from 'kleur/colors';
-import { fileURLToPath } from 'node:url';
-import { normalizePath } from 'vite';
import { getContentEntryType } from './content-entry-type.js';
import {
loadMarkdocConfig,
@@ -26,7 +24,6 @@ export default function markdocIntegration(legacyConfig?: any): AstroIntegration
process.exit(0);
}
let markdocConfigResult: MarkdocConfigResult | undefined;
- let markdocConfigResultId = '';
let astroConfig: AstroConfig;
return {
name: '@astrojs/markdoc',
@@ -36,9 +33,6 @@ export default function markdocIntegration(legacyConfig?: any): AstroIntegration
astroConfig = params.config;
markdocConfigResult = await loadMarkdocConfig(astroConfig);
- if (markdocConfigResult) {
- markdocConfigResultId = normalizePath(fileURLToPath(markdocConfigResult.fileUrl));
- }
addContentEntryType(await getContentEntryType({ markdocConfigResult, astroConfig }));
diff --git a/packages/integrations/markdoc/src/load-config.ts b/packages/integrations/markdoc/src/load-config.ts
index 207749251..23a397e47 100644
--- a/packages/integrations/markdoc/src/load-config.ts
+++ b/packages/integrations/markdoc/src/load-config.ts
@@ -30,7 +30,7 @@ export async function loadMarkdocConfig(
}
if (!markdocConfigUrl) return;
- const { code, dependencies } = await bundleConfigFile({
+ const { code } = await bundleConfigFile({
markdocConfigUrl,
astroConfig,
});
diff --git a/packages/integrations/markdoc/src/utils.ts b/packages/integrations/markdoc/src/utils.ts
index 1fd896d52..3f2aed633 100644
--- a/packages/integrations/markdoc/src/utils.ts
+++ b/packages/integrations/markdoc/src/utils.ts
@@ -15,7 +15,7 @@ export class MarkdocError extends Error {
constructor(props: ErrorProperties, ...params: any) {
super(...params);
- const { name, title = 'MarkdocError', message, stack, location, hint, frame } = props;
+ const { title = 'MarkdocError', message, stack, location, hint, frame } = props;
this.title = title;
if (message) this.message = message;
diff --git a/packages/integrations/mdx/src/plugins.ts b/packages/integrations/mdx/src/plugins.ts
index 94c3c10ba..ed03f4b2b 100644
--- a/packages/integrations/mdx/src/plugins.ts
+++ b/packages/integrations/mdx/src/plugins.ts
@@ -33,7 +33,7 @@ export function recmaInjectImportMetaEnvPlugin({
estreeVisit(tree, (node) => {
if (node.type === 'MemberExpression') {
// attempt to get "import.meta.env" variable name
- const envVarName = getImportMetaEnvVariableName(node as MemberExpression);
+ const envVarName = getImportMetaEnvVariableName(node);
if (typeof envVarName === 'string') {
// clear object keys to replace with envVarLiteral
for (const key in node) {
diff --git a/packages/integrations/mdx/src/remark-shiki.ts b/packages/integrations/mdx/src/remark-shiki.ts
index 3f3310de7..83625051e 100644
--- a/packages/integrations/mdx/src/remark-shiki.ts
+++ b/packages/integrations/mdx/src/remark-shiki.ts
@@ -69,7 +69,6 @@ const remarkShiki = async ({ langs = [], theme = 'github-dark', wrap = false }:
if (langExists) {
lang = node.lang;
} else {
- // eslint-disable-next-line no-console
console.warn(`The language "${node.lang}" doesn't exist, falling back to plaintext.`);
lang = 'plaintext';
}
@@ -77,7 +76,7 @@ const remarkShiki = async ({ langs = [], theme = 'github-dark', wrap = false }:
lang = 'plaintext';
}
- let html = highlighter!.codeToHtml(node.value, { lang });
+ let html = highlighter.codeToHtml(node.value, { lang });
// Q: Couldn't these regexes match on a user's inputted code blocks?
// A: Nope! All rendered HTML is properly escaped.
diff --git a/packages/integrations/mdx/src/utils.ts b/packages/integrations/mdx/src/utils.ts
index 80f8c3e20..3425c50e3 100644
--- a/packages/integrations/mdx/src/utils.ts
+++ b/packages/integrations/mdx/src/utils.ts
@@ -32,7 +32,7 @@ export function getFileInfo(id: string, config: AstroConfig): FileInfo {
const isPage = fileId.includes('/pages/');
if (isPage) {
fileUrl = fileId.replace(/^.*?\/pages\//, sitePathname).replace(/(\/index)?\.mdx$/, '');
- } else if (url && url.pathname.startsWith(config.root.pathname)) {
+ } else if (url?.pathname.startsWith(config.root.pathname)) {
fileUrl = url.pathname.slice(config.root.pathname.length);
} else {
fileUrl = fileId;
diff --git a/packages/integrations/mdx/test/mdx-get-headings.test.js b/packages/integrations/mdx/test/mdx-get-headings.test.js
index 1b1987e77..5b415c70f 100644
--- a/packages/integrations/mdx/test/mdx-get-headings.test.js
+++ b/packages/integrations/mdx/test/mdx-get-headings.test.js
@@ -72,7 +72,7 @@ describe('MDX heading IDs can be customized by user plugins', () => {
rehypePlugins: [
() => (tree) => {
let count = 0;
- visit(tree, 'element', (node, index, parent) => {
+ visit(tree, 'element', (node) => {
if (!/^h\d$/.test(node.tagName)) return;
if (!node.properties?.id) {
node.properties = { ...node.properties, id: String(count++) };
@@ -125,7 +125,7 @@ describe('MDX heading IDs can be injected before user plugins', () => {
rehypePlugins: [
rehypeHeadingIds,
() => (tree) => {
- visit(tree, 'element', (node, index, parent) => {
+ visit(tree, 'element', (node) => {
if (!/^h\d$/.test(node.tagName)) return;
if (node.properties?.id) {
node.children.push({ type: 'text', value: ' ' + node.properties.id });
diff --git a/packages/integrations/mdx/test/mdx-page.test.js b/packages/integrations/mdx/test/mdx-page.test.js
index 726f091c9..52d10bce3 100644
--- a/packages/integrations/mdx/test/mdx-page.test.js
+++ b/packages/integrations/mdx/test/mdx-page.test.js
@@ -1,5 +1,3 @@
-import mdx from '@astrojs/mdx';
-
import { expect } from 'chai';
import { parseHTML } from 'linkedom';
import { loadFixture } from '../../../astro/test/test-utils.js';
diff --git a/packages/integrations/mdx/test/mdx-plus-react.test.js b/packages/integrations/mdx/test/mdx-plus-react.test.js
index 49c25d558..22d7ca0e7 100644
--- a/packages/integrations/mdx/test/mdx-plus-react.test.js
+++ b/packages/integrations/mdx/test/mdx-plus-react.test.js
@@ -1,5 +1,3 @@
-import mdx from '@astrojs/mdx';
-
import { expect } from 'chai';
import { parseHTML } from 'linkedom';
import { loadFixture } from '../../../astro/test/test-utils.js';
diff --git a/packages/integrations/netlify/test/edge-functions/dynamic-import.test.js b/packages/integrations/netlify/test/edge-functions/dynamic-import.test.js
index febd689b6..bfa895290 100644
--- a/packages/integrations/netlify/test/edge-functions/dynamic-import.test.js
+++ b/packages/integrations/netlify/test/edge-functions/dynamic-import.test.js
@@ -17,7 +17,6 @@ Deno.test({
const div = doc.querySelector('#thing');
assert(div, 'div exists');
} catch (err) {
- // eslint-disable-next-line no-console
console.error(err);
} finally {
await stop();
diff --git a/packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts b/packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts
index 0e38bc46e..3fc2012c3 100644
--- a/packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts
+++ b/packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts
@@ -1,5 +1,5 @@
import { loadFixture } from './test-utils.ts';
-import { assertEquals, assert, DOMParser } from './deps.ts';
+import { assertEquals } from './deps.ts';
Deno.test({
// TODO: debug why build cannot be found in "await import"
diff --git a/packages/integrations/netlify/test/functions/cookies.test.js b/packages/integrations/netlify/test/functions/cookies.test.js
index bc1771512..f15695235 100644
--- a/packages/integrations/netlify/test/functions/cookies.test.js
+++ b/packages/integrations/netlify/test/functions/cookies.test.js
@@ -1,8 +1,6 @@
import { expect } from 'chai';
-import { load as cheerioLoad } from 'cheerio';
import { loadFixture, testIntegration } from './test-utils.js';
import netlifyAdapter from '../../dist/index.js';
-import { fileURLToPath } from 'url';
describe('Cookies', () => {
/** @type {import('../../../astro/test/test-utils').Fixture} */
diff --git a/packages/integrations/netlify/test/functions/redirects.test.js b/packages/integrations/netlify/test/functions/redirects.test.js
index 767e5b13b..1e20d41a0 100644
--- a/packages/integrations/netlify/test/functions/redirects.test.js
+++ b/packages/integrations/netlify/test/functions/redirects.test.js
@@ -1,8 +1,6 @@
import { expect } from 'chai';
-import { load as cheerioLoad } from 'cheerio';
import { loadFixture, testIntegration } from './test-utils.js';
import netlifyAdapter from '../../dist/index.js';
-import { fileURLToPath } from 'url';
describe('SSG - Redirects', () => {
/** @type {import('../../../astro/test/test-utils').Fixture} */
diff --git a/packages/integrations/node/src/http-server.ts b/packages/integrations/node/src/http-server.ts
index 8d463ba6f..2b0252c6e 100644
--- a/packages/integrations/node/src/http-server.ts
+++ b/packages/integrations/node/src/http-server.ts
@@ -46,7 +46,6 @@ export function createServer(
stream.on('error', (err) => {
if (forwardError) {
- // eslint-disable-next-line no-console
console.error(err.toString());
res.writeHead(500);
res.end('Internal server error');
diff --git a/packages/integrations/node/src/response-iterator.ts b/packages/integrations/node/src/response-iterator.ts
index f8941460b..01624d81d 100644
--- a/packages/integrations/node/src/response-iterator.ts
+++ b/packages/integrations/node/src/response-iterator.ts
@@ -29,8 +29,7 @@ const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;
function isBuffer(value: any): value is Buffer {
return (
- value != null &&
- value.constructor != null &&
+ value?.constructor != null &&
typeof value.constructor.isBuffer === 'function' &&
value.constructor.isBuffer(value)
);
diff --git a/packages/integrations/node/test/node-middleware.test.js b/packages/integrations/node/test/node-middleware.test.js
index e96d29ed4..a658f93ef 100644
--- a/packages/integrations/node/test/node-middleware.test.js
+++ b/packages/integrations/node/test/node-middleware.test.js
@@ -1,5 +1,5 @@
import nodejs from '../dist/index.js';
-import { loadFixture, createRequestAndResponse } from './test-utils.js';
+import { loadFixture } from './test-utils.js';
import { expect } from 'chai';
import * as cheerio from 'cheerio';
diff --git a/packages/integrations/node/test/test-utils.js b/packages/integrations/node/test/test-utils.js
index 13e32a5e8..741564914 100644
--- a/packages/integrations/node/test/test-utils.js
+++ b/packages/integrations/node/test/test-utils.js
@@ -7,8 +7,7 @@ import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.j
*/
export function loadFixture(inlineConfig) {
- if (!inlineConfig || !inlineConfig.root)
- throw new Error("Must provide { root: './fixtures/...' }");
+ if (!inlineConfig?.root) throw new Error("Must provide { root: './fixtures/...' }");
// resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath
// without this, the main `loadFixture` helper will resolve relative to `packages/astro/test`
diff --git a/packages/integrations/partytown/src/index.ts b/packages/integrations/partytown/src/index.ts
index 97badee1b..758756a31 100644
--- a/packages/integrations/partytown/src/index.ts
+++ b/packages/integrations/partytown/src/index.ts
@@ -1,7 +1,7 @@
import type { PartytownConfig } from '@builder.io/partytown/integration';
import { partytownSnippet } from '@builder.io/partytown/integration';
import { copyLibFiles, libDirPath } from '@builder.io/partytown/utils';
-import type { AstroConfig, AstroIntegration } from 'astro';
+import type { AstroIntegration } from 'astro';
import * as fs from 'fs';
import { createRequire } from 'module';
import path from 'path';
@@ -18,7 +18,6 @@ function appendForwardSlash(str: string) {
}
export default function createPlugin(options?: PartytownOptions): AstroIntegration {
- let config: AstroConfig;
let partytownSnippetHtml: string;
const partytownEntrypoint = resolve('@builder.io/partytown/package.json');
const partytownLibDirectory = path.resolve(partytownEntrypoint, '../lib');
@@ -35,9 +34,6 @@ export default function createPlugin(options?: PartytownOptions): AstroIntegrati
partytownSnippetHtml = partytownSnippet(partytownConfig);
injectScript('head-inline', partytownSnippetHtml);
},
- 'astro:config:done': ({ config: _config }) => {
- config = _config;
- },
'astro:server:setup': ({ server }) => {
const lib = `/~partytown/`;
server.middlewares.use(
diff --git a/packages/integrations/partytown/src/sirv.ts b/packages/integrations/partytown/src/sirv.ts
index 78489d2ac..8e04fc85c 100644
--- a/packages/integrations/partytown/src/sirv.ts
+++ b/packages/integrations/partytown/src/sirv.ts
@@ -40,8 +40,8 @@ import { URL } from 'url';
const noop = () => {};
function isMatch(uri, arr) {
- for (let i = 0; i < arr.length; i++) {
- if (arr[i].test(uri)) return true;
+ for (const candidate of arr) {
+ if (candidate.test(uri)) return true;
}
}
diff --git a/packages/integrations/preact/src/client.ts b/packages/integrations/preact/src/client.ts
index 9ef6b2caf..f90614398 100644
--- a/packages/integrations/preact/src/client.ts
+++ b/packages/integrations/preact/src/client.ts
@@ -2,7 +2,7 @@ import { h, render, type JSX } from 'preact';
import StaticHtml from './static-html.js';
import type { SignalLike } from './types';
-const sharedSignalMap: Map<string, SignalLike> = new Map();
+const sharedSignalMap = new Map<string, SignalLike>();
export default (element: HTMLElement) =>
async (
@@ -17,7 +17,7 @@ export default (element: HTMLElement) =>
let signalsRaw = element.dataset.preactSignals;
if (signalsRaw) {
const { signal } = await import('@preact/signals');
- let signals: Record<string, string> = JSON.parse(element.dataset.preactSignals as string);
+ let signals: Record<string, string> = JSON.parse(element.dataset.preactSignals!);
for (const [propName, signalId] of Object.entries(signals)) {
if (!sharedSignalMap.has(signalId)) {
const signalValue = signal(props[propName]);
diff --git a/packages/integrations/preact/src/server.ts b/packages/integrations/preact/src/server.ts
index 9efd6017f..6a2ceb612 100644
--- a/packages/integrations/preact/src/server.ts
+++ b/packages/integrations/preact/src/server.ts
@@ -101,11 +101,9 @@ function useConsoleFilter() {
consoleFilterRefs++;
if (!originalConsoleError) {
- // eslint-disable-next-line no-console
originalConsoleError = console.error;
try {
- // eslint-disable-next-line no-console
console.error = filteredConsoleError;
} catch (error) {
// If we're unable to hook `console.error`, just accept it
diff --git a/packages/integrations/prefetch/test/test-utils.js b/packages/integrations/prefetch/test/test-utils.js
index 198ecaafa..0b5de1f9d 100644
--- a/packages/integrations/prefetch/test/test-utils.js
+++ b/packages/integrations/prefetch/test/test-utils.js
@@ -2,8 +2,7 @@ import { test as testBase } from '@playwright/test';
import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js';
export function loadFixture(inlineConfig) {
- if (!inlineConfig || !inlineConfig.root)
- throw new Error("Must provide { root: './fixtures/...' }");
+ if (!inlineConfig?.root) throw new Error("Must provide { root: './fixtures/...' }");
// resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath
// without this, the main `loadFixture` helper will resolve relative to `packages/astro/test`
diff --git a/packages/integrations/react/server-v17.js b/packages/integrations/react/server-v17.js
index 522837a16..5638c6fb7 100644
--- a/packages/integrations/react/server-v17.js
+++ b/packages/integrations/react/server-v17.js
@@ -17,8 +17,7 @@ function check(Component, props, children) {
// Note: there are packages that do some unholy things to create "components".
// Checking the $$typeof property catches most of these patterns.
if (typeof Component === 'object') {
- const $$typeof = Component['$$typeof'];
- return $$typeof && $$typeof.toString().slice('Symbol('.length).startsWith('react');
+ return Component['$$typeof']?.toString().slice('Symbol('.length).startsWith('react');
}
if (typeof Component !== 'function') return false;
@@ -73,7 +72,7 @@ function renderToStaticMarkup(Component, props, { default: children, ...slotted
}
const vnode = React.createElement(Component, newProps);
let html;
- if (metadata && metadata.hydrate) {
+ if (metadata?.hydrate) {
html = ReactDOM.renderToString(vnode);
} else {
html = ReactDOM.renderToStaticMarkup(vnode);
diff --git a/packages/integrations/react/server.js b/packages/integrations/react/server.js
index b6829e338..8c02c4b26 100644
--- a/packages/integrations/react/server.js
+++ b/packages/integrations/react/server.js
@@ -18,8 +18,7 @@ async function check(Component, props, children) {
// Note: there are packages that do some unholy things to create "components".
// Checking the $$typeof property catches most of these patterns.
if (typeof Component === 'object') {
- const $$typeof = Component['$$typeof'];
- return $$typeof && $$typeof.toString().slice('Symbol('.length).startsWith('react');
+ return Component['$$typeof'].toString().slice('Symbol('.length).startsWith('react');
}
if (typeof Component !== 'function') return false;
@@ -97,7 +96,7 @@ async function renderToStaticMarkup(Component, props, { default: children, ...sl
identifierPrefix: prefix,
};
let html;
- if (metadata && metadata.hydrate) {
+ if (metadata?.hydrate) {
if ('renderToReadableStream' in ReactDOM) {
html = await renderToReadableStreamAsync(vnode, renderOptions);
} else {
diff --git a/packages/integrations/sitemap/src/config-defaults.ts b/packages/integrations/sitemap/src/config-defaults.ts
index fbcd6263d..3d56483e1 100644
--- a/packages/integrations/sitemap/src/config-defaults.ts
+++ b/packages/integrations/sitemap/src/config-defaults.ts
@@ -1,5 +1,5 @@
import type { SitemapOptions } from './index.js';
-export const SITEMAP_CONFIG_DEFAULTS: SitemapOptions & any = {
+export const SITEMAP_CONFIG_DEFAULTS = {
entryLimit: 45000,
-};
+} satisfies SitemapOptions;
diff --git a/packages/integrations/sitemap/src/index.ts b/packages/integrations/sitemap/src/index.ts
index 13df4d1ae..950646247 100644
--- a/packages/integrations/sitemap/src/index.ts
+++ b/packages/integrations/sitemap/src/index.ts
@@ -79,7 +79,6 @@ const createPlugin = (options?: SitemapOptions): AstroIntegration => {
if (config.site) {
finalSiteUrl = new URL(config.base, config.site);
} else {
- // eslint-disable-next-line no-console
console.warn(
'The Sitemap integration requires the `site` astro.config option. Skipping.'
);
diff --git a/packages/integrations/sitemap/test/test-utils.js b/packages/integrations/sitemap/test/test-utils.js
index 31d40de9e..bf101e405 100644
--- a/packages/integrations/sitemap/test/test-utils.js
+++ b/packages/integrations/sitemap/test/test-utils.js
@@ -6,8 +6,7 @@ import * as xml2js from 'xml2js';
*/
export function loadFixture(inlineConfig) {
- if (!inlineConfig || !inlineConfig.root)
- throw new Error("Must provide { root: './fixtures/...' }");
+ if (!inlineConfig?.root) throw new Error("Must provide { root: './fixtures/...' }");
// resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath
// without this, the main `loadFixture` helper will resolve relative to `packages/astro/test`
diff --git a/packages/integrations/solid/src/dependencies.ts b/packages/integrations/solid/src/dependencies.ts
index ebe5e2a0a..6b98aeb3a 100644
--- a/packages/integrations/solid/src/dependencies.ts
+++ b/packages/integrations/solid/src/dependencies.ts
@@ -18,8 +18,7 @@ export async function getSolidPkgsConfig(isBuild: boolean, astroConfig: AstroCon
// License: MIT (https://github.com/solidjs/vite-plugin-solid/blob/5558486b0c63788e1275244256918f80294a8338/package.json#L38)
function containsSolidField(fields: Record<string, any>) {
const keys = Object.keys(fields);
- for (let i = 0; i < keys.length; i++) {
- const key = keys[i];
+ for (const key of keys) {
if (key === 'solid') return true;
if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))
return true;
diff --git a/packages/integrations/vercel/src/image/build-service.ts b/packages/integrations/vercel/src/image/build-service.ts
index 23cd664a2..973ceb22a 100644
--- a/packages/integrations/vercel/src/image/build-service.ts
+++ b/packages/integrations/vercel/src/image/build-service.ts
@@ -4,7 +4,7 @@ import { isESMImportedImage, sharedValidateOptions } from './shared';
const service: ExternalImageService = {
validateOptions: (options, serviceOptions) =>
sharedValidateOptions(options, serviceOptions, 'production'),
- getHTMLAttributes(options, serviceOptions) {
+ getHTMLAttributes(options) {
const { inputtedWidth, ...props } = options;
// If `validateOptions` returned a different width than the one of the image, use it for attributes
@@ -39,7 +39,7 @@ const service: ExternalImageService = {
decoding: attributes.decoding ?? 'async',
};
},
- getURL(options, serviceOptions) {
+ getURL(options) {
const fileSrc =
typeof options.src === 'string' ? options.src : removeLeadingForwardSlash(options.src.src);
diff --git a/packages/integrations/vercel/src/serverless/request-transform.ts b/packages/integrations/vercel/src/serverless/request-transform.ts
index 819b8e8fe..31aa377af 100644
--- a/packages/integrations/vercel/src/serverless/request-transform.ts
+++ b/packages/integrations/vercel/src/serverless/request-transform.ts
@@ -103,7 +103,7 @@ export async function getRequest(
): Promise<Request> {
let headers = req.headers as Record<string, string>;
let request = new Request(base + req.url, {
- // @ts-expect-error
+ // @ts-expect-error -- duplex does exist in Vercel requests
duplex: 'half',
method: req.method,
headers,
diff --git a/packages/integrations/vue/test/test-utils.js b/packages/integrations/vue/test/test-utils.js
index 2475944be..512fe28dc 100644
--- a/packages/integrations/vue/test/test-utils.js
+++ b/packages/integrations/vue/test/test-utils.js
@@ -5,8 +5,7 @@ import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.j
*/
export function loadFixture(inlineConfig) {
- if (!inlineConfig || !inlineConfig.root)
- throw new Error("Must provide { root: './fixtures/...' }");
+ if (!inlineConfig?.root) throw new Error("Must provide { root: './fixtures/...' }");
// resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath
// without this, the main `loadFixture` helper will resolve relative to `packages/astro/test`