Chore: housekeeping

This commit is contained in:
SukkaW 2024-04-16 11:06:00 +08:00
parent 9c6141659a
commit f9a0445cbf
9 changed files with 19 additions and 19 deletions

View File

@ -14,7 +14,7 @@ const getBogusNxDomainIPsPromise = fsFetchCache.apply(
async () => { async () => {
const result: string[] = []; const result: string[] = [];
for await (const line of await fetchRemoteTextByLine(URL)) { 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(); const ip = line.slice(15).trim();
if (isProbablyIpv4(ip)) { if (isProbablyIpv4(ip)) {
result.push(`IP-CIDR,${ip}/32,no-resolve`); result.push(`IP-CIDR,${ip}/32,no-resolve`);

View File

@ -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 { describe, expect, it } from 'bun:test';
import createKeywordFilter from './aho-corasick'; import createKeywordFilter from './aho-corasick';

View File

@ -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 { Database } from 'bun:sqlite';
import os from 'os'; import os from 'os';
import path from 'path'; import path from 'path';

View File

@ -8,11 +8,11 @@ class CustomAbortError extends Error {
const sleepWithAbort = (ms: number, signal: AbortSignal) => new Promise<void>((resolve, reject) => { const sleepWithAbort = (ms: number, signal: AbortSignal) => new Promise<void>((resolve, reject) => {
if (signal.aborted) { if (signal.aborted) {
reject(signal.reason); reject(signal.reason as Error);
return; return;
} }
function stop(this: AbortSignal) { reject(this.reason); } function stop(this: AbortSignal) { reject(this.reason as Error); }
signal.addEventListener('abort', stop, { once: true }); signal.addEventListener('abort', stop, { once: true });
Bun.sleep(ms).then(resolve).catch(reject).finally(() => signal.removeEventListener('abort', stop)); Bun.sleep(ms).then(resolve).catch(reject).finally(() => signal.removeEventListener('abort', stop));

View File

@ -7,12 +7,13 @@ const MAX_RETRIES = 5;
const MAX_RETRY_AFTER = 20; const MAX_RETRY_AFTER = 20;
const FACTOR = 6; const FACTOR = 6;
function isClientError(err: any): err is NodeJS.ErrnoException { function isClientError(err: unknown): err is NodeJS.ErrnoException {
if (!err) return false; if (!err || typeof err !== 'object') return false;
return (
err.code === 'ERR_UNESCAPED_CHARACTERS' if ('code' in err) return err.code === 'ERR_UNESCAPED_CHARACTERS';
|| err.message === 'Request path contains unescaped characters' if ('message' in err) return err.message === 'Request path contains unescaped characters';
);
return false;
} }
export class ResponseError extends Error { export class ResponseError extends Error {
@ -70,7 +71,7 @@ function createFetchRetry($fetch: typeof fetch): FetchWithRetry {
return await retry<Response>(async (bail) => { return await retry<Response>(async (bail) => {
try { try {
// this will be retried // 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) { if ((res.status >= 500 && res.status < 600) || res.status === 429) {
// NOTE: doesn't support http-date format // NOTE: doesn't support http-date format

View File

@ -1,5 +1,5 @@
import { createTrie } from './trie'; 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'; import { describe, expect, it } from 'bun:test';
describe('Trie', () => { describe('Trie', () => {

View File

@ -1,5 +1,4 @@
import { fetchRemoteTextByLine, readFileByLine } from './lib/fetch-text-by-line'; import { fetchRemoteTextByLine, readFileByLine } from './lib/fetch-text-by-line';
import { Readable } from 'stream';
import { parse } from 'csv-parse/sync'; import { parse } from 'csv-parse/sync';
import { createTrie } from './lib/trie'; import { createTrie } from './lib/trie';
import path from 'path'; import path from 'path';

BIN
bun.lockb

Binary file not shown.

View File

@ -32,15 +32,15 @@
"tldts": "^6.1.16" "tldts": "^6.1.16"
}, },
"devDependencies": { "devDependencies": {
"@eslint-sukka/node": "5.1.2", "@eslint-sukka/node": "6.0.0-beta.3",
"@eslint-sukka/ts": "5.1.2", "@eslint-sukka/ts": "6.0.0-beta.3",
"@types/async-retry": "^1.4.8", "@types/async-retry": "^1.4.8",
"@types/bun": "^1.0.12", "@types/bun": "^1.0.12",
"@types/tar-stream": "^3.1.3", "@types/tar-stream": "^3.1.3",
"bun-types": "^1.1.3", "bun-types": "^1.1.3",
"eslint": "^8.57.0", "eslint": "^9.0.0",
"eslint-config-sukka": "5.1.2", "eslint-config-sukka": "6.0.0-beta.3",
"eslint-formatter-sukka": "5.1.2", "eslint-formatter-sukka": "6.0.0-beta.3",
"mitata": "^0.1.11", "mitata": "^0.1.11",
"typescript": "^5.4.5" "typescript": "^5.4.5"
}, },