init from site
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { fileURLToPath } from "node:url"
|
||||
import { extname, relative, resolve } from "node:path"
|
||||
import { getSrcPath } from "./getSrcPath.js"
|
||||
import getResolvedSrc from "./getResolvedSrc.js"
|
||||
import { cwd, sharp, fsCachePath } from "../../utils/runtimeChecks.js"
|
||||
import throwErrorIfUnsupported from "./throwErrorIfUnsupported.js"
|
||||
import { getImageDetails } from "./imagetools.js"
|
||||
|
||||
export default async function getProcessedImage(src, transformConfigs) {
|
||||
throwErrorIfUnsupported(src, extname(src).slice(1));
|
||||
let base;
|
||||
if (src.match("(http://|https://|data:image/).*")) {
|
||||
({ src, base } = await getResolvedSrc(src));
|
||||
} else {
|
||||
const {
|
||||
default: { isSsrBuild },
|
||||
} = await import("../../astroViteConfigs.js");
|
||||
|
||||
if (isSsrBuild) {
|
||||
const filename = fileURLToPath(import.meta.url);
|
||||
const assetPath = resolve(filename, "../../client") + src;
|
||||
src = "/" + relative(cwd, assetPath);
|
||||
}
|
||||
}
|
||||
|
||||
const {
|
||||
w,
|
||||
h,
|
||||
ar,
|
||||
width = w,
|
||||
height = h,
|
||||
aspect = ar,
|
||||
...rest
|
||||
} = transformConfigs
|
||||
|
||||
const path = src.replace(/\\/g, `/`)
|
||||
const { image, imageWidth, imageHeight, imageFormat } = await getImageDetails(
|
||||
await getSrcPath(src),
|
||||
width,
|
||||
height,
|
||||
aspect
|
||||
)
|
||||
return {
|
||||
path,
|
||||
base,
|
||||
rest,
|
||||
image,
|
||||
imageWidth,
|
||||
imageHeight,
|
||||
imageFormat,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user