Log make-fetch-happen status / Implement Evict

This commit is contained in:
SukkaW
2024-10-13 13:17:36 +08:00
parent fa70896b8f
commit 6a984161a4
4 changed files with 35 additions and 3 deletions

View File

@@ -37,8 +37,8 @@ export const downloadPreviousBuild = task(require.main === module, __filename)(a
// https://github.com/unjs/giget/issues/97
// https://gitlab.com/gitlab-org/gitlab/-/commit/50c11f278d18fe1f3fb12eb595067216bb58ade2
'sec-fetch-mode': 'same-origin'
}
// mode: 'same-origin'
},
mode: 'same-origin'
});
if (resp.status !== 200) {

View File

@@ -1,6 +1,8 @@
import path from 'node:path';
import fs from 'node:fs';
import makeFetchHappen from 'make-fetch-happen';
import type { FetchOptions } from 'make-fetch-happen';
import cacache from 'cacache';
import picocolors from 'picocolors';
// eslint-disable-next-line @typescript-eslint/no-restricted-imports -- type only
import type { Response as NodeFetchResponse } from 'node-fetch';
@@ -10,7 +12,7 @@ export type { NodeFetchResponse };
const cachePath = path.resolve(__dirname, '../../.cache/__make_fetch_happen__');
fs.mkdirSync(cachePath, { recursive: true });
export const $fetch = makeFetchHappen.defaults({
const _fetch = makeFetchHappen.defaults({
cachePath,
maxSockets: 32, /**
* They said 15 is a good default that prevents knocking out others' routers,
@@ -25,6 +27,21 @@ export const $fetch = makeFetchHappen.defaults({
}
});
export function $fetch(uriOrRequest: string | Request, opts?: FetchOptions) {
return _fetch(uriOrRequest, opts).then((resp) => {
printResponseStatus(resp);
return resp;
});
}
export async function $delete(resp: NodeFetchResponse) {
const cacheKey = resp.headers.get('X-Local-Cache-Key');
if (cacheKey) {
await cacache.rm.entry(cachePath, cacheKey);
await cacache.verify(cachePath, { concurrency: 64 });
}
}
export function printResponseStatus(resp: NodeFetchResponse) {
const status = resp.headers.get('X-Local-Cache-Status');
if (status) {