diff --git a/Build/download-previous-build.ts b/Build/download-previous-build.ts index 9d15427f..1faa972a 100644 --- a/Build/download-previous-build.ts +++ b/Build/download-previous-build.ts @@ -1,10 +1,12 @@ import path from 'node:path'; +import fs from 'node:fs'; import { pipeline } from 'node:stream/promises'; import { task } from './trace'; import { extract as tarExtract } from 'tar-fs'; import type { Headers as TarEntryHeaders } from 'tar-fs'; import zlib from 'node:zlib'; import undici from 'undici'; +import picocolors from 'picocolors'; const GITHUB_CODELOAD_URL = 'https://codeload.github.com/sukkalab/ruleset.skk.moe/tar.gz/master'; const GITLAB_CODELOAD_URL = 'https://gitlab.com/SukkaW/ruleset.skk.moe/-/archive/master/ruleset.skk.moe-master.tar.gz'; @@ -12,10 +14,10 @@ const GITLAB_CODELOAD_URL = 'https://gitlab.com/SukkaW/ruleset.skk.moe/-/archive export const downloadPreviousBuild = task(require.main === module, __filename)(async (span) => { const publicDir = path.resolve(__dirname, '..', 'public'); - // if (fs.existsSync(publicDir)) { - // console.log(picocolors.blue('Public directory exists, skip downloading previous build')); - // return; - // } + if (fs.existsSync(publicDir)) { + console.log(picocolors.blue('Public directory exists, skip downloading previous build')); + return; + } const tarGzUrl = await span.traceChildAsync('get tar.gz url', async () => { const resp = await undici.request(GITHUB_CODELOAD_URL, { method: 'HEAD' }); diff --git a/Build/lib/cache-filesystem.ts b/Build/lib/cache-filesystem.ts index 95e1f1bf..9fc127dc 100644 --- a/Build/lib/cache-filesystem.ts +++ b/Build/lib/cache-filesystem.ts @@ -11,7 +11,7 @@ import { stringHash } from './string-hash'; import { defaultRequestInit, fetchWithLog } from './fetch-retry'; import { Custom304NotModifiedError, CustomAbortError, CustomNoETagFallbackError, fetchAssets, sleepWithAbort } from './fetch-assets'; -import type { Response, RequestInit } from 'undici'; +import type { Response, RequestInit, HeadersInit } from 'undici'; const enum CacheStatus { Hit = 'hit', @@ -329,9 +329,9 @@ export class Cache { signal: controller.signal, ...defaultRequestInit, headers: (typeof etag === 'string' && etag.length > 0) - ? mergeHeaders( - defaultRequestInit.headers, - { 'If-None-Match': etag } + ? mergeHeaders( + { 'If-None-Match': etag }, + defaultRequestInit.headers ) : defaultRequestInit.headers } diff --git a/Build/lib/fetch-retry.ts b/Build/lib/fetch-retry.ts index 7233d8cd..e99a2433 100644 --- a/Build/lib/fetch-retry.ts +++ b/Build/lib/fetch-retry.ts @@ -133,7 +133,7 @@ export class ResponseError extends Error { } } -export const defaultRequestInit: RequestInit = { +export const defaultRequestInit = { headers: { 'User-Agent': 'curl/8.9.1 (https://github.com/SukkaW/Surge)' }