fix: should allow optional properties for images
option (#28709)
## Bug - Fixes #28708 - [x] Related issues linked using `fixes #number`
This commit is contained in:
parent
8921d9115b
commit
13893395dc
4 changed files with 15 additions and 10 deletions
|
@ -2,7 +2,7 @@ import React from 'react'
|
|||
import Head from '../shared/lib/head'
|
||||
import { toBase64 } from '../shared/lib/to-base-64'
|
||||
import {
|
||||
ImageConfig,
|
||||
ImageConfigComplete,
|
||||
imageConfigDefault,
|
||||
LoaderValue,
|
||||
VALID_LOADERS,
|
||||
|
@ -110,7 +110,8 @@ const {
|
|||
loader: configLoader,
|
||||
path: configPath,
|
||||
domains: configDomains,
|
||||
} = (process.env.__NEXT_IMAGE_OPTS as any as ImageConfig) || imageConfigDefault
|
||||
} = (process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete) ||
|
||||
imageConfigDefault
|
||||
// sort smallest to largest
|
||||
const allSizes = [...configDeviceSizes, ...configImageSizes]
|
||||
configDeviceSizes.sort((a, b) => a - b)
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
import os from 'os'
|
||||
import { Header, Redirect, Rewrite } from '../lib/load-custom-routes'
|
||||
import { ImageConfig, imageConfigDefault } from './image-config'
|
||||
import {
|
||||
ImageConfig,
|
||||
ImageConfigComplete,
|
||||
imageConfigDefault,
|
||||
} from './image-config'
|
||||
|
||||
type NoOptionals<T> = {
|
||||
[P in keyof T]-?: T[P]
|
||||
export type NextConfigComplete = Required<NextConfig> & {
|
||||
images: ImageConfigComplete
|
||||
}
|
||||
|
||||
export type NextConfigComplete = NoOptionals<NextConfig>
|
||||
|
||||
export interface I18NConfig {
|
||||
defaultLocale: string
|
||||
domains?: DomainLocale[]
|
||||
|
|
|
@ -181,7 +181,7 @@ function assignDefaults(userConfig: { [key: string]: any }) {
|
|||
}
|
||||
|
||||
if (result?.images) {
|
||||
const images: Partial<ImageConfig> = result.images
|
||||
const images: ImageConfig = result.images
|
||||
|
||||
if (typeof images !== 'object') {
|
||||
throw new Error(
|
||||
|
|
|
@ -8,7 +8,7 @@ export const VALID_LOADERS = [
|
|||
|
||||
export type LoaderValue = typeof VALID_LOADERS[number]
|
||||
|
||||
export type ImageConfig = {
|
||||
export type ImageConfigComplete = {
|
||||
deviceSizes: number[]
|
||||
imageSizes: number[]
|
||||
loader: LoaderValue
|
||||
|
@ -18,7 +18,9 @@ export type ImageConfig = {
|
|||
minimumCacheTTL?: number
|
||||
}
|
||||
|
||||
export const imageConfigDefault: ImageConfig = {
|
||||
export type ImageConfig = Partial<ImageConfigComplete>
|
||||
|
||||
export const imageConfigDefault: ImageConfigComplete = {
|
||||
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
|
||||
imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
|
||||
path: '/_next/image',
|
||||
|
|
Loading…
Reference in a new issue