@@ -25,7 +25,7 @@ type ImageProps = Omit<
2525 'src' | 'srcSet' | 'ref' | 'width' | 'height' | 'loading'
2626> & {
2727 src : string
28- quality ?: string
28+ quality ?: number | string
2929 priority ?: boolean
3030 loading ?: LoadingValue
3131 unoptimized ?: boolean
@@ -83,7 +83,7 @@ function getObserver(): IntersectionObserver | undefined {
8383function computeSrc (
8484 src : string ,
8585 unoptimized : boolean ,
86- quality ?: string
86+ quality ?: number
8787) : string {
8888 if ( unoptimized ) {
8989 return src
@@ -94,7 +94,7 @@ function computeSrc(
9494type CallLoaderProps = {
9595 src : string
9696 width : number
97- quality ?: string
97+ quality ?: number
9898}
9999
100100function callLoader ( loaderProps : CallLoaderProps ) {
@@ -105,7 +105,7 @@ function callLoader(loaderProps: CallLoaderProps) {
105105type SrcSetData = {
106106 src : string
107107 widths : number [ ]
108- quality ?: string
108+ quality ?: number
109109}
110110
111111function generateSrcSet ( { src, widths, quality } : SrcSetData ) : string {
@@ -121,7 +121,7 @@ type PreloadData = {
121121 widths : number [ ]
122122 sizes ?: string
123123 unoptimized ?: boolean
124- quality ?: string
124+ quality ?: number
125125}
126126
127127function generatePreload ( {
@@ -200,13 +200,15 @@ export default function Image({
200200 }
201201 } , [ thisEl , lazy ] )
202202
203+ const parsedQuality = parseInt ( quality as string , 10 )
204+
203205 // Generate attribute values
204- const imgSrc = computeSrc ( src , unoptimized , quality )
206+ const imgSrc = computeSrc ( src , unoptimized , parsedQuality )
205207 const imgSrcSet = ! unoptimized
206208 ? generateSrcSet ( {
207209 src,
208210 widths : configSizes ,
209- quality,
211+ quality : parsedQuality ,
210212 } )
211213 : undefined
212214
@@ -301,7 +303,7 @@ export default function Image({
301303 widths : configSizes ,
302304 unoptimized,
303305 sizes,
304- quality,
306+ quality : parsedQuality ,
305307 } )
306308 : '' }
307309 < img
@@ -391,7 +393,5 @@ function defaultLoader({ root, src, width, quality }: LoaderProps): string {
391393 }
392394 }
393395
394- return `${ root } ?url=${ encodeURIComponent ( src ) } &w=${ width } &q=${
395- quality || '100'
396- } `
396+ return `${ root } ?url=${ encodeURIComponent ( src ) } &w=${ width } &q=${ quality || 100 } `
397397}
0 commit comments