astro-ghostcms/.pnpm-store/v3/files/3a/54cbf1f8fedf3bdbf9fd47e8067...

36 lines
959 B
Plaintext

import { lookup } from "./vendor/image-size/lookup.js";
async function probe(url) {
const response = await fetch(url);
if (!response.body || !response.ok) {
throw new Error("Failed to fetch image");
}
const reader = response.body.getReader();
let done, value;
let accumulatedChunks = new Uint8Array();
while (!done) {
const readResult = await reader.read();
done = readResult.done;
if (done)
break;
if (readResult.value) {
value = readResult.value;
let tmp = new Uint8Array(accumulatedChunks.length + value.length);
tmp.set(accumulatedChunks, 0);
tmp.set(value, accumulatedChunks.length);
accumulatedChunks = tmp;
try {
const dimensions = lookup(accumulatedChunks);
if (dimensions) {
await reader.cancel();
return dimensions;
}
} catch (error) {
}
}
}
throw new Error("Failed to parse the size");
}
export {
probe
};