UNPKG

@nuxt/image

Version:

Nuxt Image Module

34 lines (33 loc) 1 kB
import { joinURL, encodePath, encodeParam } from "ufo"; import { createOperationsGenerator } from "../utils/index.js"; import { defineProvider } from "../utils/provider.js"; export const operationsGenerator = createOperationsGenerator({ keyMap: { format: "f", width: "w", height: "h", resize: "s", quality: "q", background: "b", position: "pos" }, formatter: (key, val) => encodeParam(key) + "_" + encodeParam(val.toString()) }); export default defineProvider({ validateDomains: true, supportsAlias: true, getImage: (src, { modifiers, baseURL }, ctx) => { if (modifiers.width && modifiers.height) { modifiers.resize = `${modifiers.width}x${modifiers.height}`; delete modifiers.width; delete modifiers.height; } const params = operationsGenerator(modifiers) || "_"; if (!baseURL) { baseURL = joinURL(ctx.options.nuxt.baseURL, "/_ipx"); } return { url: joinURL(baseURL, params, encodePath(src)) }; } });