@nuxt/image
Version:
Nuxt Image Module
26 lines (25 loc) • 865 B
JavaScript
import { joinURL } from "ufo";
import { formatter } from "./formatter.js";
import { keyMap } from "./keyMap.js";
import { valueMap } from "./valueMap.js";
import { createOperationsGenerator } from "#image";
const operationsGenerator = createOperationsGenerator({
formatter,
joinWith: ",",
keyMap,
valueMap
});
const getImage = (src, options, _ctx) => {
const { projectName } = options;
if (typeof projectName !== "string" || !projectName.trim()) {
throw new TypeError("[nuxt] [image] [prepr] No project name provided.");
}
const fileBucket = "stream";
const fileOperations = operationsGenerator(options.modifiers);
const filePath = fileOperations ? joinURL(fileOperations, src) : src;
const projectUrl = `https://${projectName.trim()}.${fileBucket}.prepr.io`;
return {
url: joinURL(projectUrl, filePath)
};
};
export { getImage };