Ctrl K
ComunidadGuías…

test/scripts/static-cdn-fixtures.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import type { StaticCdnAsset, StaticCdnConfig } from "#scripts/static-cdn.ts";

export const CONFIG = {
  accountKey: "account-secret",
  cdnUrl: "https://assets.example.com/static",
  pullZoneId: "12345",
  storageHost: "storage.bunnycdn.com",
  storageKey: "storage-secret",
  storageName: "tickets-assets",
} satisfies StaticCdnConfig;

export const ENV = {
  BUNNY_ACCESS_KEY: "account-secret",
  CDN_BUNNY_PULL_ZONE_ID: "12345",
  CDN_BUNNY_STORAGE_HOST: "storage.bunnycdn.com",
  CDN_BUNNY_STORAGE_ZONE_KEY: "storage-secret",
  CDN_BUNNY_STORAGE_ZONE_NAME: "tickets-assets",
  CDN_URL: "https://assets.example.com/static/",
};

export const STYLE_ASSET = {
  bytes: new TextEncoder().encode("body{}"),
  contentType: "text/css; charset=utf-8",
  filename: "style.css",
} satisfies StaticCdnAsset;

export const WASM_ASSET = {
  bytes: new Uint8Array([0, 97, 115, 109]),
  contentType: "application/wasm",
  filename: "jpegDec.wasm",
} satisfies StaticCdnAsset;

export const assetResponse = (asset: StaticCdnAsset): Response =>
  new Response(Uint8Array.from(asset.bytes).buffer, {
    headers: { "content-type": asset.contentType },
  });

export const successfulFetcher =
  (assetForUrl: (url: string) => StaticCdnAsset): typeof fetch =>
  (input, init) => {
    const method = init?.method ?? "GET";
    if (method !== "GET") {
      return Promise.resolve(new Response(null, { status: 201 }));
    }
    const url = String(input);
    return Promise.resolve(assetResponse(assetForUrl(url)));
  };

export const verificationFetcher =
  (publicResponse: Response): typeof fetch =>
  (_input, init) =>
    Promise.resolve(
      init?.method === "PUT"
        ? new Response(null, { status: 201 })
        : init?.method === "POST"
          ? new Response(null, { status: 204 })
          : publicResponse,
    );