Skip to content

Commit 1fd1198

Browse files
committed
Refactor imagetools config resolver
1 parent c844bea commit 1fd1198

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/lib/vite.js

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,33 @@ function lqip(cfg, ctx) {
66
const r = resize({ width: cfg.lqip }, ctx)
77
const f = format({ format: 'webp', quality: '20' }, ctx)
88
return async function (image) {
9-
image = f(r(image))
10-
const buffer = await image.toBuffer()
9+
const buffer = await f(r(image)).toBuffer()
1110
setMetadata(image, 'base64', `data:image/webp;base64,${buffer.toString('base64')}`)
1211
return image
1312
}
1413
}
1514
}
1615

17-
function set(url, defaults = 'width=480;1024;1920&format=avif;webp;jpg') {
18-
const merge = new URLSearchParams(defaults)
19-
for (const [key, val] of url.searchParams.entries()) merge.set(key, val)
20-
return merge
21-
}
22-
2316
function main(overrides = {}) {
2417
return imagetools({
25-
defaultDirectives: (url) => set(url),
18+
defaultDirectives: () => new URLSearchParams('width=480;1024;1920&format=avif;webp;jpg'),
2619
extendTransforms: (builtins) => [...builtins, lqip],
2720
extendOutputFormats: (builtinOutputFormats) => ({
2821
...builtinOutputFormats,
2922
run: () => metadataFormat(['format', 'src', 'width', 'base64'])
3023
}),
3124
resolveConfigs: (e, f) => {
32-
const idx = e.findIndex((i) => i[0] === 'lqip')
33-
const lqip = idx > -1 ? parseInt(e.splice(idx, 1)[0][1][0]) : 16
34-
return [...resolveConfigs(e, f), { lqip }]
25+
if (e.findIndex((i) => i[0] === 'run') > -1) {
26+
const idx = e.findIndex((i) => i[0] === 'lqip')
27+
const lqip = idx > -1 ? parseInt(e.splice(idx, 1)[0][1][0]) : 16
28+
const merge = new Map()
29+
for (const [key, val] of e) merge.set(key, val)
30+
return [...resolveConfigs([...merge], f), { lqip }]
31+
}
32+
return resolveConfigs(e, f)
3533
},
3634
...overrides
3735
})
3836
}
3937

40-
export { main as imagetools, set, lqip }
38+
export { main as imagetools, lqip }

0 commit comments

Comments
 (0)