Browse Source

Fix types

SukkaW 1 year ago
parent
commit
99e5d46531
3 changed files with 13 additions and 11 deletions
  1. 9 9
      Build/lib/cache-filesystem.ts
  2. 1 1
      Build/lib/fetch-assets.ts
  3. 3 1
      Build/lib/fetch-retry.ts

+ 9 - 9
Build/lib/cache-filesystem.ts

@@ -214,7 +214,7 @@ export class Cache<S = string> {
     fn: (resp: Response) => Promise<T>,
     fn: (resp: Response) => Promise<T>,
     opt: Omit<CacheApplyOption<T, S>, 'incrementTtlWhenHit'>,
     opt: Omit<CacheApplyOption<T, S>, 'incrementTtlWhenHit'>,
     requestInit?: RequestInit
     requestInit?: RequestInit
-  ) {
+  ): Promise<T> {
     if (opt.temporaryBypass) {
     if (opt.temporaryBypass) {
       return fn(await fetchWithRetry(url, requestInit ?? defaultRequestInit));
       return fn(await fetchWithRetry(url, requestInit ?? defaultRequestInit));
     }
     }
@@ -323,12 +323,12 @@ export class Cache<S = string> {
         this.set(getETagKey(primaryUrl), r.headers.get('etag')!, TTL.ONE_WEEK_STATIC);
         this.set(getETagKey(primaryUrl), r.headers.get('etag')!, TTL.ONE_WEEK_STATIC);
 
 
         // If we do not have a cached value, we ignore 304
         // If we do not have a cached value, we ignore 304
-        if (r.status === 304 && previouslyCached != null) {
+        if (r.status === 304 && typeof previouslyCached === 'string') {
           controller.abort();
           controller.abort();
-          throw new Custom304NotModifiedError(primaryUrl);
+          throw new Custom304NotModifiedError(primaryUrl, previouslyCached);
         }
         }
-      } else if (!primaryETag && previouslyCached) {
-        throw new CustomNoETagFallbackError(previouslyCached as string);
+      } else if (!primaryETag && typeof previouslyCached === 'string') {
+        throw new CustomNoETagFallbackError(previouslyCached);
       }
       }
 
 
       return r.text();
       return r.text();
@@ -369,13 +369,13 @@ export class Cache<S = string> {
         this.set(getETagKey(url), res.headers.get('etag')!, TTL.ONE_WEEK_STATIC);
         this.set(getETagKey(url), res.headers.get('etag')!, TTL.ONE_WEEK_STATIC);
 
 
         // If we do not have a cached value, we ignore 304
         // If we do not have a cached value, we ignore 304
-        if (res.status === 304 && previouslyCached != null) {
+        if (res.status === 304 && typeof previouslyCached === 'string') {
           controller.abort();
           controller.abort();
-          throw new Custom304NotModifiedError(url);
+          throw new Custom304NotModifiedError(url, previouslyCached);
         }
         }
-      } else if (!primaryETag && previouslyCached) {
+      } else if (!primaryETag && typeof previouslyCached === 'string') {
         controller.abort();
         controller.abort();
-        throw new CustomNoETagFallbackError(previouslyCached as string);
+        throw new CustomNoETagFallbackError(previouslyCached);
       }
       }
 
 
       const text = await res.text();
       const text = await res.text();

+ 1 - 1
Build/lib/fetch-assets.ts

@@ -12,7 +12,7 @@ export class Custom304NotModifiedError extends Error {
   public readonly name = 'Custom304NotModifiedError';
   public readonly name = 'Custom304NotModifiedError';
   public readonly digest = 'Custom304NotModifiedError';
   public readonly digest = 'Custom304NotModifiedError';
 
 
-  constructor(public readonly url: string) {
+  constructor(public readonly url: string, public readonly data: string) {
     super('304 Not Modified');
     super('304 Not Modified');
   }
   }
 }
 }

+ 3 - 1
Build/lib/fetch-retry.ts

@@ -107,7 +107,9 @@ function createFetchRetry($fetch: typeof fetch): FetchWithRetry {
           }
           }
 
 
           console.log(picocolors.gray('[fetch fail]'), url, err);
           console.log(picocolors.gray('[fetch fail]'), url, err);
-          throw err;
+          const newErr = new Error('Fetch failed');
+          newErr.cause = err;
+          throw newErr;
         }
         }
       }, retryOpts);
       }, retryOpts);
     } catch (err) {
     } catch (err) {