@@ -25,7 +25,7 @@ type ImageProps = Omit<
25
25
'src' | 'srcSet' | 'ref' | 'width' | 'height' | 'loading'
26
26
> & {
27
27
src : string
28
- quality ?: string
28
+ quality ?: number | string
29
29
priority ?: boolean
30
30
loading ?: LoadingValue
31
31
unoptimized ?: boolean
@@ -83,7 +83,7 @@ function getObserver(): IntersectionObserver | undefined {
83
83
function computeSrc (
84
84
src : string ,
85
85
unoptimized : boolean ,
86
- quality ?: string
86
+ quality ?: number
87
87
) : string {
88
88
if ( unoptimized ) {
89
89
return src
@@ -94,7 +94,7 @@ function computeSrc(
94
94
type CallLoaderProps = {
95
95
src : string
96
96
width : number
97
- quality ?: string
97
+ quality ?: number
98
98
}
99
99
100
100
function callLoader ( loaderProps : CallLoaderProps ) {
@@ -105,7 +105,7 @@ function callLoader(loaderProps: CallLoaderProps) {
105
105
type SrcSetData = {
106
106
src : string
107
107
widths : number [ ]
108
- quality ?: string
108
+ quality ?: number
109
109
}
110
110
111
111
function generateSrcSet ( { src, widths, quality } : SrcSetData ) : string {
@@ -121,7 +121,7 @@ type PreloadData = {
121
121
widths : number [ ]
122
122
sizes ?: string
123
123
unoptimized ?: boolean
124
- quality ?: string
124
+ quality ?: number
125
125
}
126
126
127
127
function generatePreload ( {
@@ -200,13 +200,15 @@ export default function Image({
200
200
}
201
201
} , [ thisEl , lazy ] )
202
202
203
+ const parsedQuality = parseInt ( quality as string , 10 )
204
+
203
205
// Generate attribute values
204
- const imgSrc = computeSrc ( src , unoptimized , quality )
206
+ const imgSrc = computeSrc ( src , unoptimized , parsedQuality )
205
207
const imgSrcSet = ! unoptimized
206
208
? generateSrcSet ( {
207
209
src,
208
210
widths : configSizes ,
209
- quality,
211
+ quality : parsedQuality ,
210
212
} )
211
213
: undefined
212
214
@@ -301,7 +303,7 @@ export default function Image({
301
303
widths : configSizes ,
302
304
unoptimized,
303
305
sizes,
304
- quality,
306
+ quality : parsedQuality ,
305
307
} )
306
308
: '' }
307
309
< img
@@ -391,7 +393,5 @@ function defaultLoader({ root, src, width, quality }: LoaderProps): string {
391
393
}
392
394
}
393
395
394
- return `${ root } ?url=${ encodeURIComponent ( src ) } &w=${ width } &q=${
395
- quality || '100'
396
- } `
396
+ return `${ root } ?url=${ encodeURIComponent ( src ) } &w=${ width } &q=${ quality || 100 } `
397
397
}
0 commit comments