1- 'use strict'
2-
3- const handler = require ( '../src/serverless' ) . handler
1+ import * as serverless from '../src/serverless.js'
42
53/**
64 * A serverless function handler for the '/api' route, for use with Vercel.
75 * This handler follows the AWS Lambda API; Vercel deployments are opted-in
86 * using the "NODEJS_AWS_HANDLER_NAME" environment variable defined in vercel.json.
97 *
108 * See:
11- * - https://vercel.com/docs/serverless-functions/supported-languages#node.js
12- * - https://vercel.com/docs/runtimes#advanced-usage/advanced-node-js-usage/aws-lambda-api
9+ * - https://vercel.com/docs/serverless-functions/supported-languages#node.js
10+ * - https://vercel.com/docs/runtimes#advanced-usage/advanced-node-js-usage/aws-lambda-api
11+ *
12+ * @param {...any } args - The arguments passed by Vercel to the handler, following the AWS Lambda API.
13+ * @returns {Promise<any> } - The response from the serverless handler, with multiValueHeaders converted to headers for Vercel compatibility.
1314 */
14- exports . handler = async ( ...args ) => {
15- const response = await handler ( ...args )
16- return convertMultiValueHeaders ( response )
15+ export const handler = async ( ...args ) => {
16+ const response = await serverless . handler ( ...args )
17+ return convertMultiValueHeaders ( response )
1718}
1819
1920/*
@@ -22,17 +23,17 @@ exports.handler = async (...args) => {
2223 * Since all the headers we commonly attach have a single value, we can map them to .headers instead.
2324 */
2425const convertMultiValueHeaders = ( response ) => {
25- if ( response ?. multiValueHeaders == null ) return response
26+ if ( response ?. multiValueHeaders == null ) return response
2627
27- response . headers = response . headers ?? { }
28+ response . headers = response . headers ?? { }
2829
29- for ( const [ key , value ] of Object . entries ( response . multiValueHeaders ) ) {
30- if ( value . length === 1 ) {
31- response . headers [ key ] = value [ 0 ]
32- } else {
33- console . warn ( `multiValueHeaders is currently unsupported on Vercel. Header ${ key } will be ignored.` )
34- }
35- }
30+ for ( const [ key , value ] of Object . entries ( response . multiValueHeaders ) ) {
31+ if ( value . length === 1 ) {
32+ response . headers [ key ] = value [ 0 ]
33+ } else {
34+ console . warn ( `multiValueHeaders is currently unsupported on Vercel. Header ${ key } will be ignored.` )
35+ }
36+ }
3637
37- return response
38- }
38+ return response
39+ }
0 commit comments