Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion playground/nuxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,15 @@ export default defineNuxtConfig({
'https://images.unsplash.com',
'https://upload.wikimedia.org',
],
format: ['webp', 'jpg', 'jpeg'],
densities: [1, 2, 3, 4],
screens: {
750: 750,
'sm': 640,
'750': 750,
'md': 768,
'lg': 1024,
'xl': 1280,
'2xl': 1536,
},
none: {},
ipx: {
Expand Down
30 changes: 14 additions & 16 deletions src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,10 @@ export default defineNuxtModule<ModuleOptions>({
dir: nuxt.options.dir.public,
dirs: [],
presets: {},
domains: [] as string[],
domains: [],
sharp: {},
format: ['webp'],
// https://tailwindcss.com/docs/breakpoints
screens: {
'sm': 640,
'md': 768,
'lg': 1024,
'xl': 1280,
'2xl': 1536,
},
providers: {},
alias: {},
densities: [1, 2],
}),
meta: {
name: '@nuxt/image',
Expand Down Expand Up @@ -97,12 +87,20 @@ export default defineNuxtModule<ModuleOptions>({
if (options.provider) {
options[options.provider as keyof ImageProviders] = options[options.provider as keyof ImageProviders] || {}
}
options.densities = options.densities || []

// Deduplicate format array (defu merges arrays, causing duplicates)
if (options.format && Array.isArray(options.format)) {
options.format = [...new Set(options.format)]
}
options.densities = options.densities || [1, 2]

options.format = [...new Set(options.format || ['webp'])]

options.screens = options.screens
// https://tailwindcss.com/docs/breakpoints
|| {
'sm': 640,
'md': 768,
'lg': 1024,
'xl': 1280,
'2xl': 1536,
}

const imageOptions: Omit<CreateImageOptions, 'providers' | 'nuxt' | 'runtimeConfig'> = pick(options, [
'screens',
Expand Down
Loading