diff options
author | 2023-07-03 05:59:43 -0700 | |
---|---|---|
committer | 2023-07-03 20:59:43 +0800 | |
commit | 2fea174303ca60f4765c6294d99ebc7a19e73403 (patch) | |
tree | 671f1f27d6d0827e51aaa20704b7f6154ad5d053 /packages/integrations | |
parent | fc6826ff7620b0c5e419de93ef7c463a12fe3652 (diff) | |
download | astro-2fea174303ca60f4765c6294d99ebc7a19e73403.tar.gz astro-2fea174303ca60f4765c6294d99ebc7a19e73403.tar.zst astro-2fea174303ca60f4765c6294d99ebc7a19e73403.zip |
feat: use typescript-eslint@v6's reworked configs (#7425)
Diffstat (limited to 'packages/integrations')
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` |