Skip to content

Commit 4df59c1

Browse files
committed
type frameworks api config
1 parent c4bf5e3 commit 4df59c1

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

src/adapter/adapter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
modifyConfig as modifyConfigForImageCDN,
88
onBuildComplete as onBuildCompleteForImageCDN,
99
} from './image-cdn.js'
10+
import { FrameworksAPIConfig } from './types.js'
1011

1112
const NETLIFY_FRAMEWORKS_API_CONFIG_PATH = '.netlify/v1/config.json'
1213

@@ -23,8 +24,7 @@ const adapter: NextAdapter = {
2324
async onBuildComplete(ctx) {
2425
console.log('onBuildComplete hook called')
2526

26-
// TODO: do we have a type for this? https://docs.netlify.com/build/frameworks/frameworks-api/#netlifyv1configjson
27-
let frameworksAPIConfig: any = null
27+
let frameworksAPIConfig: FrameworksAPIConfig = null
2828

2929
frameworksAPIConfig = onBuildCompleteForImageCDN(ctx, frameworksAPIConfig)
3030

src/adapter/image-cdn.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { fileURLToPath } from 'node:url'
33
import type { RemotePattern } from 'next-with-adapters/dist/shared/lib/image-config.js'
44
import { makeRe } from 'picomatch'
55

6-
import type { NextConfigComplete, OnBuildCompleteContext } from './types.js'
6+
import type { FrameworksAPIConfig, NextConfigComplete, OnBuildCompleteContext } from './types.js'
77

88
const NETLIFY_IMAGE_LOADER_FILE = fileURLToPath(import.meta.resolve(`./next-image-loader.cjs`))
99

@@ -20,8 +20,11 @@ function generateRegexFromPattern(pattern: string): string {
2020
return makeRe(pattern).source
2121
}
2222

23-
export function onBuildComplete(ctx: OnBuildCompleteContext, frameworksAPIConfigArg: any) {
24-
const frameworksAPIConfig: any = frameworksAPIConfigArg ?? {}
23+
export function onBuildComplete(
24+
ctx: OnBuildCompleteContext,
25+
frameworksAPIConfigArg: FrameworksAPIConfig,
26+
) {
27+
const frameworksAPIConfig: FrameworksAPIConfig = frameworksAPIConfigArg ?? {}
2528

2629
// when migrating from @netlify/plugin-nextjs@4 image redirect to ipx might be cached in the browser
2730
frameworksAPIConfig.redirects ??= []
@@ -95,7 +98,7 @@ export function onBuildComplete(ctx: OnBuildCompleteContext, frameworksAPIConfig
9598

9699
if (remoteImageSources.length !== 0) {
97100
// https://docs.netlify.com/build/frameworks/frameworks-api/#images
98-
frameworksAPIConfig.images ??= {}
101+
frameworksAPIConfig.images ??= { remote_images: [] }
99102
frameworksAPIConfig.images.remote_images = remoteImageSources
100103
}
101104
}

src/adapter/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1+
import type { NetlifyConfig } from '@netlify/build'
12
import type { NextAdapter } from 'next-with-adapters'
23

34
export type OnBuildCompleteContext = Parameters<Required<NextAdapter>['onBuildComplete']>[0]
45
export type NextConfigComplete = OnBuildCompleteContext['config']
6+
7+
export type FrameworksAPIConfig = Partial<
8+
Pick<NetlifyConfig, 'edge_functions' | 'functions' | 'headers' | 'redirects' | 'images'>
9+
> | null

0 commit comments

Comments
 (0)