summaryrefslogtreecommitdiff
path: root/packages/integrations/image/src/endpoint.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/image/src/endpoint.ts')
-rw-r--r--packages/integrations/image/src/endpoint.ts55
1 files changed, 0 insertions, 55 deletions
diff --git a/packages/integrations/image/src/endpoint.ts b/packages/integrations/image/src/endpoint.ts
deleted file mode 100644
index 5a8ca554b..000000000
--- a/packages/integrations/image/src/endpoint.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import type { APIRoute } from 'astro';
-import mime from 'mime';
-// @ts-expect-error
-import loader from 'virtual:image-loader';
-import { etag } from './utils/etag.js';
-import { isRemoteImage } from './utils/paths.js';
-
-async function loadRemoteImage(src: URL) {
- try {
- const res = await fetch(src);
-
- if (!res.ok) {
- return undefined;
- }
-
- return Buffer.from(await res.arrayBuffer());
- } catch (err: unknown) {
- console.error(err);
- return undefined;
- }
-}
-
-export const get: APIRoute = async ({ request }) => {
- try {
- const url = new URL(request.url);
- const transform = loader.parseTransform(url.searchParams);
-
- let inputBuffer: Buffer | undefined = undefined;
-
- // TODO: handle config subpaths?
- const sourceUrl = isRemoteImage(transform.src)
- ? new URL(transform.src)
- : new URL(transform.src, url.origin);
- inputBuffer = await loadRemoteImage(sourceUrl);
-
- if (!inputBuffer) {
- return new Response('Not Found', { status: 404 });
- }
-
- const { data, format } = await loader.transform(inputBuffer, transform);
-
- return new Response(data, {
- status: 200,
- headers: {
- 'Content-Type': mime.getType(format) || '',
- 'Cache-Control': 'public, max-age=31536000',
- ETag: etag(data.toString()),
- Date: new Date().toUTCString(),
- },
- });
- } catch (err: unknown) {
- console.error(err);
- return new Response(`Server Error: ${err}`, { status: 500 });
- }
-};