diff --git a/Build/build-anti-bogus-domain.ts b/Build/build-anti-bogus-domain.ts index 127b9464..9ecfa61d 100644 --- a/Build/build-anti-bogus-domain.ts +++ b/Build/build-anti-bogus-domain.ts @@ -14,7 +14,7 @@ const getBogusNxDomainIPsPromise = fsFetchCache.apply( async () => { const result: string[] = []; for await (const line of await fetchRemoteTextByLine(URL)) { - if (line && line.startsWith('bogus-nxdomain=')) { + if (line.startsWith('bogus-nxdomain=')) { const ip = line.slice(15).trim(); if (isProbablyIpv4(ip)) { result.push(`IP-CIDR,${ip}/32,no-resolve`); diff --git a/Build/lib/aho-corasick.test.ts b/Build/lib/aho-corasick.test.ts index a47d537c..a6713f4c 100644 --- a/Build/lib/aho-corasick.test.ts +++ b/Build/lib/aho-corasick.test.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unresolved -- bun +// eslint-disable-next-line import-x/no-unresolved -- bun import { describe, expect, it } from 'bun:test'; import createKeywordFilter from './aho-corasick'; diff --git a/Build/lib/cache-filesystem.ts b/Build/lib/cache-filesystem.ts index c0387c32..1135e791 100644 --- a/Build/lib/cache-filesystem.ts +++ b/Build/lib/cache-filesystem.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unresolved -- bun built-in module +// eslint-disable-next-line import-x/no-unresolved -- bun built-in module import { Database } from 'bun:sqlite'; import os from 'os'; import path from 'path'; diff --git a/Build/lib/fetch-assets.ts b/Build/lib/fetch-assets.ts index f1ef4aa7..81debfb2 100644 --- a/Build/lib/fetch-assets.ts +++ b/Build/lib/fetch-assets.ts @@ -8,11 +8,11 @@ class CustomAbortError extends Error { const sleepWithAbort = (ms: number, signal: AbortSignal) => new Promise((resolve, reject) => { if (signal.aborted) { - reject(signal.reason); + reject(signal.reason as Error); return; } - function stop(this: AbortSignal) { reject(this.reason); } + function stop(this: AbortSignal) { reject(this.reason as Error); } signal.addEventListener('abort', stop, { once: true }); Bun.sleep(ms).then(resolve).catch(reject).finally(() => signal.removeEventListener('abort', stop)); diff --git a/Build/lib/fetch-retry.ts b/Build/lib/fetch-retry.ts index ace61eec..09539272 100644 --- a/Build/lib/fetch-retry.ts +++ b/Build/lib/fetch-retry.ts @@ -7,12 +7,13 @@ const MAX_RETRIES = 5; const MAX_RETRY_AFTER = 20; const FACTOR = 6; -function isClientError(err: any): err is NodeJS.ErrnoException { - if (!err) return false; - return ( - err.code === 'ERR_UNESCAPED_CHARACTERS' - || err.message === 'Request path contains unescaped characters' - ); +function isClientError(err: unknown): err is NodeJS.ErrnoException { + if (!err || typeof err !== 'object') return false; + + if ('code' in err) return err.code === 'ERR_UNESCAPED_CHARACTERS'; + if ('message' in err) return err.message === 'Request path contains unescaped characters'; + + return false; } export class ResponseError extends Error { @@ -70,7 +71,7 @@ function createFetchRetry($fetch: typeof fetch): FetchWithRetry { return await retry(async (bail) => { try { // this will be retried - const res = (await $fetch(url, opts)) as Response; + const res = (await $fetch(url, opts)); if ((res.status >= 500 && res.status < 600) || res.status === 429) { // NOTE: doesn't support http-date format diff --git a/Build/lib/trie.test.ts b/Build/lib/trie.test.ts index ecbe6301..4fbefc4f 100644 --- a/Build/lib/trie.test.ts +++ b/Build/lib/trie.test.ts @@ -1,5 +1,5 @@ import { createTrie } from './trie'; -// eslint-disable-next-line import/no-unresolved -- fuck eslint-import +// eslint-disable-next-line import-x/no-unresolved -- fuck eslint-import import { describe, expect, it } from 'bun:test'; describe('Trie', () => { diff --git a/Build/validate-domestic.ts b/Build/validate-domestic.ts index 49f67291..290f561c 100644 --- a/Build/validate-domestic.ts +++ b/Build/validate-domestic.ts @@ -1,5 +1,4 @@ import { fetchRemoteTextByLine, readFileByLine } from './lib/fetch-text-by-line'; -import { Readable } from 'stream'; import { parse } from 'csv-parse/sync'; import { createTrie } from './lib/trie'; import path from 'path'; diff --git a/bun.lockb b/bun.lockb index 2ba123b4..2a82fa42 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 6716239b..9a672cf8 100644 --- a/package.json +++ b/package.json @@ -32,15 +32,15 @@ "tldts": "^6.1.16" }, "devDependencies": { - "@eslint-sukka/node": "5.1.2", - "@eslint-sukka/ts": "5.1.2", + "@eslint-sukka/node": "6.0.0-beta.3", + "@eslint-sukka/ts": "6.0.0-beta.3", "@types/async-retry": "^1.4.8", "@types/bun": "^1.0.12", "@types/tar-stream": "^3.1.3", "bun-types": "^1.1.3", - "eslint": "^8.57.0", - "eslint-config-sukka": "5.1.2", - "eslint-formatter-sukka": "5.1.2", + "eslint": "^9.0.0", + "eslint-config-sukka": "6.0.0-beta.3", + "eslint-formatter-sukka": "6.0.0-beta.3", "mitata": "^0.1.11", "typescript": "^5.4.5" },