@@ -17,6 +17,17 @@ const [kit_major, kit_minor] = VERSION.split('.');
1717 * } & toml.JsonMap } NetlifyConfig
1818 */
1919
20+ /**
21+ * @template T
22+ * @template {keyof T} K
23+ * @typedef {Partial<Omit<T, K>> & Required<Pick<T, K>> } PartialExcept
24+ */
25+
26+ /**
27+ * We use a custom `Builder` type here to support the minimum version of SvelteKit.
28+ * @typedef {PartialExcept<import('@sveltejs/kit').Builder, 'log' | 'rimraf' | 'mkdirp' | 'config' | 'prerendered' | 'routes' | 'createEntries' | 'findServerAssets' | 'generateFallback' | 'generateEnvModule' | 'generateManifest' | 'getBuildDirectory' | 'getClientDirectory' | 'getServerDirectory' | 'getAppPath' | 'writeClient' | 'writePrerendered' | 'writePrerendered' | 'writeServer' | 'copy' | 'compress'> } Builder2_4_0
29+ */
30+
2031const name = '@sveltejs/adapter-netlify' ;
2132const files = fileURLToPath ( new URL ( './files' , import . meta. url ) . href ) ;
2233
@@ -30,7 +41,7 @@ const FUNCTION_PREFIX = 'sveltekit-';
3041export default function ( { split = false , edge = edge_set_in_env_var } = { } ) {
3142 return {
3243 name,
33-
44+ /** @param { Builder2_4_0 } builder */
3445 async adapt ( builder ) {
3546 if ( ! builder . routes ) {
3647 throw new Error (
@@ -114,7 +125,7 @@ export default function ({ split = false, edge = edge_set_in_env_var } = {}) {
114125}
115126/**
116127 * @param { object } params
117- * @param {import('@sveltejs/kit').Builder } params.builder
128+ * @param {Builder2_4_0 } params.builder
118129 */
119130async function generate_edge_functions ( { builder } ) {
120131 const tmp = builder . getBuildDirectory ( 'netlify-tmp' ) ;
@@ -202,16 +213,16 @@ async function generate_edge_functions({ builder }) {
202213 outfile : '.netlify/edge-functions/render.js' ,
203214 ...esbuild_config
204215 } ) ,
205- builder . hasServerInstrumentationFile ( ) &&
216+ builder . hasServerInstrumentationFile ?. ( ) &&
206217 esbuild . build ( {
207218 entryPoints : [ `${ builder . getServerDirectory ( ) } /instrumentation.server.js` ] ,
208219 outfile : '.netlify/edge/instrumentation.server.js' ,
209220 ...esbuild_config
210221 } )
211222 ] ) ;
212223
213- if ( builder . hasServerInstrumentationFile ( ) ) {
214- builder . instrument ( {
224+ if ( builder . hasServerInstrumentationFile ?. ( ) ) {
225+ builder . instrument ?. ( {
215226 entrypoint : '.netlify/edge-functions/render.js' ,
216227 instrumentation : '.netlify/edge/instrumentation.server.js' ,
217228 start : '.netlify/edge/start.js'
@@ -222,7 +233,7 @@ async function generate_edge_functions({ builder }) {
222233}
223234/**
224235 * @param { object } params
225- * @param {import('@sveltejs/kit').Builder } params.builder
236+ * @param {Builder2_4_0 } params.builder
226237 * @param { string } params.publish
227238 * @param { boolean } params.split
228239 */
@@ -294,8 +305,8 @@ function generate_lambda_functions({ builder, publish, split }) {
294305
295306 writeFileSync ( `.netlify/functions-internal/${ name } .mjs` , fn ) ;
296307 writeFileSync ( `.netlify/functions-internal/${ name } .json` , fn_config ) ;
297- if ( builder . hasServerInstrumentationFile ( ) ) {
298- builder . instrument ( {
308+ if ( builder . hasServerInstrumentationFile ?. ( ) ) {
309+ builder . instrument ?. ( {
299310 entrypoint : `.netlify/functions-internal/${ name } .mjs` ,
300311 instrumentation : '.netlify/server/instrumentation.server.js' ,
301312 start : `.netlify/functions-start/${ name } .start.mjs` ,
@@ -318,8 +329,8 @@ function generate_lambda_functions({ builder, publish, split }) {
318329
319330 writeFileSync ( `.netlify/functions-internal/${ FUNCTION_PREFIX } render.json` , fn_config ) ;
320331 writeFileSync ( `.netlify/functions-internal/${ FUNCTION_PREFIX } render.mjs` , fn ) ;
321- if ( builder . hasServerInstrumentationFile ( ) ) {
322- builder . instrument ( {
332+ if ( builder . hasServerInstrumentationFile ?. ( ) ) {
333+ builder . instrument ?. ( {
323334 entrypoint : `.netlify/functions-internal/${ FUNCTION_PREFIX } render.mjs` ,
324335 instrumentation : '.netlify/server/instrumentation.server.js' ,
325336 start : `.netlify/functions-start/${ FUNCTION_PREFIX } render.start.mjs` ,
@@ -356,8 +367,8 @@ function get_netlify_config() {
356367}
357368
358369/**
359- * @param {NetlifyConfig } netlify_config
360- * @param {import('@sveltejs/kit').Builder } builder
370+ * @param {NetlifyConfig | null } netlify_config
371+ * @param {Builder2_4_0 } builder
361372 **/
362373function get_publish_directory ( netlify_config , builder ) {
363374 if ( netlify_config ) {
0 commit comments