From dd2bf786371272252a6edf518f38835be03d00d9 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Fri, 15 Jan 2021 14:58:27 +0100 Subject: [PATCH] fix: parse width and height modifiers helps to avoid accidentally passing wrong input (also stripping px) --- src/runtime/image.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/runtime/image.ts b/src/runtime/image.ts index 46c209d1d..32e01ac87 100644 --- a/src/runtime/image.ts +++ b/src/runtime/image.ts @@ -4,6 +4,7 @@ import { hasProtocol, joinURL } from 'ufo' import requrl from 'requrl' import type { ImageOptions, CreateImageOptions, ResolvedImage } from '../types/image' import { imageMeta } from './utils/meta' +import { parseSize } from './utils' export interface ImageCTX { options: CreateImageOptions, @@ -122,7 +123,14 @@ function resolveImage (ctx: ImageCTX, input: string, options: ImageOptions): Res const { provider, defaults } = getProvider(ctx, options.provider || ctx.options.provider) const preset = getPreset(ctx, options.preset) - const image = provider.getImage(input, { ...defaults, ...options }) + const _options = { ...defaults, ...options } + if (_options.modifiers?.width) { + _options.modifiers.width = parseSize(_options.modifiers.width) + } + if (_options.modifiers?.height) { + _options.modifiers.height = parseSize(_options.modifiers.height) + } + const image = provider.getImage(input, _options) if (process.server && !hasProtocol(image.url)) { const url = requrl(ctx.nuxtContext.ssrContext.req)