@zeltjs/adapter-lambda 0.8.0 → 0.8.2-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { EnvAdaptor, HttpApp, ReadyResult } from "@zeltjs/core";
1
+ import { ConfiguredFeature, CreateRuntimeOptions, EnvAdaptor, HttpCapabilities, RuntimeApp } from "@zeltjs/core";
2
2
  import { Writable } from "node:stream";
3
3
 
4
4
  //#region src/lambda-env.adaptor.d.ts
@@ -330,11 +330,18 @@ type LambdaAppOptions = {
330
330
  };
331
331
  type LambdaHandlerV2 = (event: APIGatewayProxyEventV2, context: Context) => Promise<APIGatewayProxyResultV2>;
332
332
  type LambdaHandlerV1 = (event: APIGatewayProxyEvent, context: Context) => Promise<APIGatewayProxyResult>;
333
- type LambdaApp = ReadyResult & {
333
+ type LambdaApp = {
334
+ readonly get: <T extends object>(cls: new (...args: never[]) => T) => Promise<T>;
334
335
  readonly handler: LambdaHandlerV2;
335
336
  readonly handlerV1: LambdaHandlerV1;
336
337
  readonly shutdown: () => Promise<void>;
337
338
  };
339
+ type HttpRuntimeApp = RuntimeApp<readonly ConfiguredFeature[]> & {
340
+ readonly http: HttpCapabilities;
341
+ };
342
+ type HttpApp = {
343
+ readonly createRuntime: (options?: CreateRuntimeOptions) => Promise<HttpRuntimeApp>;
344
+ };
338
345
  declare const onLambda: (app: HttpApp, options?: LambdaAppOptions) => Promise<LambdaApp>;
339
346
  //#endregion
340
347
  export { type LambdaApp, type LambdaAppOptions, LambdaEnvAdaptor, type LambdaHandlerV1, type LambdaHandlerV2, onLambda };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["APIGatewayAuthorizerResultContext","name","APIGatewayEventDefaultAuthorizerContext","APIGatewayEventRequestContext","APIGatewayEventRequestContextWithAuthorizer","TAuthorizerContext","APIGatewayEventIdentity","accountId","apiId","authorizer","connectedAt","connectionId","domainName","domainPrefix","eventType","extendedRequestId","protocol","httpMethod","identity","messageDirection","messageId","path","stage","requestId","requestTime","requestTimeEpoch","resourceId","resourcePath","routeKey","APIGatewayEventClientCertificate","clientCertPem","serialNumber","subjectDN","issuerDN","validity","notAfter","notBefore","accessKey","apiKey","apiKeyId","caller","clientCert","cognitoAuthenticationProvider","cognitoAuthenticationType","cognitoIdentityId","cognitoIdentityPoolId","principalOrgId","sourceIp","user","userAgent","userArn","Writable","Handler","TEvent","TResult","Context","Callback","Promise","event","context","callback","CognitoIdentity","ClientContext","Error","callbackWaitsForEmptyEventLoop","functionName","functionVersion","invokedFunctionArn","memoryLimitInMB","awsRequestId","logGroupName","logStreamName","identity","clientContext","getRemainingTimeInMillis","done","error","result","fail","succeed","messageOrObject","message","object","cognitoIdentityId","cognitoIdentityPoolId","ClientContextClient","ClientContextEnv","client","Custom","env","installationId","appTitle","appVersionName","appVersionCode","appPackageName","platformVersion","platform","make","model","locale","StreamifyHandler","awslambda","HttpResponseStream","responseStream","_0","Record","global","from","writable","metadata","setContentType","contentType","streamifyResponse","handler","sideEffect","APIGatewayEventClientCertificate","APIGatewayEventDefaultAuthorizerContext","APIGatewayEventRequestContextWithAuthorizer","Callback","CognitoIdentity","Handler","APIGatewayProxyHandler","APIGatewayProxyEvent","APIGatewayProxyResult","APIGatewayProxyCallback","APIGatewayProxyHandlerV2","T","APIGatewayProxyEventV2","APIGatewayProxyResultV2","APIGatewayProxyWebsocketHandlerV2","APIGatewayProxyWebsocketEventV2","APIGatewayProxyHandlerV2WithJWTAuthorizer","APIGatewayProxyEventV2WithJWTAuthorizer","APIGatewayProxyHandlerV2WithLambdaAuthorizer","TAuthorizerContext","APIGatewayProxyEventV2WithLambdaAuthorizer","APIGatewayProxyHandlerV2WithIAMAuthorizer","APIGatewayProxyEventV2WithIAMAuthorizer","APIGatewayProxyCallbackV2","APIGatewayProxyEventBase","APIGatewayProxyWithLambdaAuthorizerHandler","APIGatewayProxyWithLambdaAuthorizerEvent","APIGatewayProxyWithCognitoAuthorizerHandler","APIGatewayProxyWithCognitoAuthorizerEvent","APIGatewayEventLambdaAuthorizerContext","APIGatewayProxyWithLambdaAuthorizerEventRequestContext","P","principalId","integrationLatency","APIGatewayProxyCognitoAuthorizer","claims","name","APIGatewayProxyEventHeaders","APIGatewayProxyEventMultiValueHeaders","APIGatewayProxyEventPathParameters","APIGatewayProxyEventQueryStringParameters","APIGatewayProxyEventMultiValueQueryStringParameters","APIGatewayProxyEventStageVariables","body","headers","multiValueHeaders","httpMethod","isBase64Encoded","path","pathParameters","queryStringParameters","multiValueQueryStringParameters","stageVariables","requestContext","resource","Array","statusCode","header","APIGatewayEventRequestContextV2","accountId","apiId","authentication","clientCert","domainName","domainPrefix","http","method","protocol","sourceIp","userAgent","requestId","routeKey","stage","time","timeEpoch","APIGatewayEventWebsocketRequestContextV2","messageId","eventType","extendedRequestId","requestTime","messageDirection","connectedAt","requestTimeEpoch","connectionId","APIGatewayProxyEventV2WithRequestContext","TRequestContext","version","rawPath","rawQueryString","cookies","APIGatewayProxyWebsocketEventV2WithRequestContext","APIGatewayEventRequestContextLambdaAuthorizer","lambda","APIGatewayEventRequestContextJWTAuthorizer","jwt","scopes","APIGatewayEventRequestContextIAMAuthorizer","iam","accessKey","callerId","cognitoIdentity","principalOrgId","userArn","userId","APIGatewayEventRequestContextV2WithAuthorizer","TAuthorizer","authorizer","APIGatewayProxyStructuredResultV2","ProxyHandler","ProxyCallback","APIGatewayEvent","ProxyResult"],"sources":["../src/lambda-env.adaptor.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.150/node_modules/@types/aws-lambda/common/api-gateway.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.150/node_modules/@types/aws-lambda/handler.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.150/node_modules/@types/aws-lambda/trigger/api-gateway-proxy.d.ts","../src/on-lambda.ts"],"x_google_ignoreList":[1,2,3],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["APIGatewayAuthorizerResultContext","name","APIGatewayEventDefaultAuthorizerContext","APIGatewayEventRequestContext","APIGatewayEventRequestContextWithAuthorizer","TAuthorizerContext","APIGatewayEventIdentity","accountId","apiId","authorizer","connectedAt","connectionId","domainName","domainPrefix","eventType","extendedRequestId","protocol","httpMethod","identity","messageDirection","messageId","path","stage","requestId","requestTime","requestTimeEpoch","resourceId","resourcePath","routeKey","APIGatewayEventClientCertificate","clientCertPem","serialNumber","subjectDN","issuerDN","validity","notAfter","notBefore","accessKey","apiKey","apiKeyId","caller","clientCert","cognitoAuthenticationProvider","cognitoAuthenticationType","cognitoIdentityId","cognitoIdentityPoolId","principalOrgId","sourceIp","user","userAgent","userArn","Writable","Handler","TEvent","TResult","Context","Callback","Promise","event","context","callback","CognitoIdentity","ClientContext","Error","callbackWaitsForEmptyEventLoop","functionName","functionVersion","invokedFunctionArn","memoryLimitInMB","awsRequestId","logGroupName","logStreamName","identity","clientContext","getRemainingTimeInMillis","done","error","result","fail","succeed","messageOrObject","message","object","cognitoIdentityId","cognitoIdentityPoolId","ClientContextClient","ClientContextEnv","client","Custom","env","installationId","appTitle","appVersionName","appVersionCode","appPackageName","platformVersion","platform","make","model","locale","StreamifyHandler","awslambda","HttpResponseStream","responseStream","_0","Record","global","from","writable","metadata","setContentType","contentType","streamifyResponse","handler","sideEffect","APIGatewayEventClientCertificate","APIGatewayEventDefaultAuthorizerContext","APIGatewayEventRequestContextWithAuthorizer","Callback","CognitoIdentity","Handler","APIGatewayProxyHandler","APIGatewayProxyEvent","APIGatewayProxyResult","APIGatewayProxyCallback","APIGatewayProxyHandlerV2","T","APIGatewayProxyEventV2","APIGatewayProxyResultV2","APIGatewayProxyWebsocketHandlerV2","APIGatewayProxyWebsocketEventV2","APIGatewayProxyHandlerV2WithJWTAuthorizer","APIGatewayProxyEventV2WithJWTAuthorizer","APIGatewayProxyHandlerV2WithLambdaAuthorizer","TAuthorizerContext","APIGatewayProxyEventV2WithLambdaAuthorizer","APIGatewayProxyHandlerV2WithIAMAuthorizer","APIGatewayProxyEventV2WithIAMAuthorizer","APIGatewayProxyCallbackV2","APIGatewayProxyEventBase","APIGatewayProxyWithLambdaAuthorizerHandler","APIGatewayProxyWithLambdaAuthorizerEvent","APIGatewayProxyWithCognitoAuthorizerHandler","APIGatewayProxyWithCognitoAuthorizerEvent","APIGatewayEventLambdaAuthorizerContext","APIGatewayProxyWithLambdaAuthorizerEventRequestContext","P","principalId","integrationLatency","APIGatewayProxyCognitoAuthorizer","claims","name","APIGatewayProxyEventHeaders","APIGatewayProxyEventMultiValueHeaders","APIGatewayProxyEventPathParameters","APIGatewayProxyEventQueryStringParameters","APIGatewayProxyEventMultiValueQueryStringParameters","APIGatewayProxyEventStageVariables","body","headers","multiValueHeaders","httpMethod","isBase64Encoded","path","pathParameters","queryStringParameters","multiValueQueryStringParameters","stageVariables","requestContext","resource","Array","statusCode","header","APIGatewayEventRequestContextV2","accountId","apiId","authentication","clientCert","domainName","domainPrefix","http","method","protocol","sourceIp","userAgent","requestId","routeKey","stage","time","timeEpoch","APIGatewayEventWebsocketRequestContextV2","messageId","eventType","extendedRequestId","requestTime","messageDirection","connectedAt","requestTimeEpoch","connectionId","APIGatewayProxyEventV2WithRequestContext","TRequestContext","version","rawPath","rawQueryString","cookies","APIGatewayProxyWebsocketEventV2WithRequestContext","APIGatewayEventRequestContextLambdaAuthorizer","lambda","APIGatewayEventRequestContextJWTAuthorizer","jwt","scopes","APIGatewayEventRequestContextIAMAuthorizer","iam","accessKey","callerId","cognitoIdentity","principalOrgId","userArn","userId","APIGatewayEventRequestContextV2WithAuthorizer","TAuthorizer","authorizer","APIGatewayProxyStructuredResultV2","ProxyHandler","ProxyCallback","APIGatewayEvent","ProxyResult"],"sources":["../src/lambda-env.adaptor.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.150/node_modules/@types/aws-lambda/common/api-gateway.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.150/node_modules/@types/aws-lambda/handler.d.ts","../../../node_modules/.pnpm/@types+aws-lambda@8.10.150/node_modules/@types/aws-lambda/trigger/api-gateway-proxy.d.ts","../src/on-lambda.ts"],"x_google_ignoreList":[1,2,3],"mappings":"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"}
package/dist/index.js CHANGED
@@ -101,16 +101,17 @@ const createHandlerV1 = (appFetch) => {
101
101
  };
102
102
  };
103
103
  const onLambda = async (app, options = {}) => {
104
- app.addFallbackConfig(LambdaEnvAdaptor);
105
- const readyOptions = { warmup: options.warmup ?? false };
106
- const resolver = await app.ready(readyOptions);
107
- const handler = createHandlerV2(app.fetch);
108
- const handlerV1 = createHandlerV1(app.fetch);
104
+ const readyApp = await app.createRuntime({
105
+ fallbackConfigs: [LambdaEnvAdaptor],
106
+ warmup: options.warmup ?? false
107
+ });
108
+ const handler = createHandlerV2(readyApp.http.fetch);
109
+ const handlerV1 = createHandlerV1(readyApp.http.fetch);
109
110
  return {
110
- ...resolver,
111
+ get: readyApp.get,
111
112
  handler,
112
113
  handlerV1,
113
- shutdown: app.shutdown
114
+ shutdown: readyApp.shutdown
114
115
  };
115
116
  };
116
117
  //#endregion
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Config","EnvAdaptor","LambdaEnvAdaptor","get","key","process","env","LambdaEnvAdaptor","buildHeadersFromRecord","headersRecord","headers","Headers","key","value","Object","entries","set","buildBodyFromEvent","body","isBase64Encoded","buffer","Buffer","from","Blob","buildRequestBody","method","buildRequestFromEventV2","event","protocol","get","host","requestContext","domainName","path","rawPath","queryString","rawQueryString","url","http","requestBody","Request","buildQueryStringFromParams","queryParams","params","undefined","URLSearchParams","toString","buildRequestFromEventV1","queryStringParameters","httpMethod","buildResultFromResponseV2","response","forEach","contentType","isBinary","startsWith","arrayBuffer","text","statusCode","status","buildResultFromResponseV1","createHandlerV2","appFetch","_context","request","createHandlerV1","onLambda","app","options","addFallbackConfig","readyOptions","warmup","resolver","ready","handler","fetch","handlerV1","shutdown"],"sources":["../src/lambda-env.adaptor.ts","../src/on-lambda.ts"],"sourcesContent":["import { Config, EnvAdaptor } from '@zeltjs/core';\n\n@Config\nexport class LambdaEnvAdaptor extends EnvAdaptor {\n override get(key: string): string | undefined {\n return process.env[key];\n }\n}\n","import type { HttpApp, ReadyOptions, ReadyResult } from '@zeltjs/core';\nimport type {\n APIGatewayProxyEvent,\n APIGatewayProxyEventV2,\n APIGatewayProxyResult,\n APIGatewayProxyResultV2,\n Context,\n} from 'aws-lambda';\n\nimport { LambdaEnvAdaptor } from './lambda-env.adaptor';\n\nexport type LambdaAppOptions = {\n readonly warmup?: boolean;\n};\n\nexport type LambdaHandlerV2 = (\n event: APIGatewayProxyEventV2,\n context: Context,\n) => Promise<APIGatewayProxyResultV2>;\n\nexport type LambdaHandlerV1 = (\n event: APIGatewayProxyEvent,\n context: Context,\n) => Promise<APIGatewayProxyResult>;\n\nexport type LambdaApp = ReadyResult & {\n readonly handler: LambdaHandlerV2;\n readonly handlerV1: LambdaHandlerV1;\n readonly shutdown: () => Promise<void>;\n};\n\nconst buildHeadersFromRecord = (\n headersRecord: Record<string, string | undefined> | undefined,\n): Headers => {\n const headers = new Headers();\n if (headersRecord) {\n for (const [key, value] of Object.entries(headersRecord)) {\n if (value) headers.set(key, value);\n }\n }\n return headers;\n};\n\nconst buildBodyFromEvent = (\n body: string | null | undefined,\n isBase64Encoded: boolean,\n): BodyInit | null => {\n if (!body) return null;\n if (isBase64Encoded) {\n const buffer = Buffer.from(body, 'base64');\n return new Blob([buffer]);\n }\n return body;\n};\n\nconst buildRequestBody = (method: string, body: BodyInit | null): BodyInit | null => {\n return method !== 'GET' && method !== 'HEAD' ? body : null;\n};\n\nconst buildRequestFromEventV2 = (event: APIGatewayProxyEventV2): Request => {\n const headers = buildHeadersFromRecord(event.headers);\n\n const protocol = headers.get('x-forwarded-proto') ?? 'https';\n const host = event.requestContext.domainName;\n const path = event.rawPath;\n const queryString = event.rawQueryString ? `?${event.rawQueryString}` : '';\n const url = `${protocol}://${host}${path}${queryString}`;\n\n const method = event.requestContext.http.method;\n const body = buildBodyFromEvent(event.body, event.isBase64Encoded);\n const requestBody = buildRequestBody(method, body);\n\n return new Request(url, {\n method,\n headers,\n body: requestBody,\n });\n};\n\nconst buildQueryStringFromParams = (\n queryParams: Record<string, string | undefined> | null | undefined,\n): string => {\n if (!queryParams) return '';\n const params: Record<string, string> = {};\n for (const [key, value] of Object.entries(queryParams)) {\n if (value !== undefined) {\n params[key] = value;\n }\n }\n return `?${new URLSearchParams(params).toString()}`;\n};\n\nconst buildRequestFromEventV1 = (event: APIGatewayProxyEvent): Request => {\n const headers = buildHeadersFromRecord(event.headers);\n\n const protocol = headers.get('x-forwarded-proto') ?? 'https';\n const host = headers.get('host') ?? 'localhost';\n const path = event.path;\n\n const queryString = buildQueryStringFromParams(event.queryStringParameters);\n const url = `${protocol}://${host}${path}${queryString}`;\n\n const method = event.httpMethod;\n const body = buildBodyFromEvent(event.body, event.isBase64Encoded);\n const requestBody = buildRequestBody(method, body);\n\n return new Request(url, {\n method,\n headers,\n body: requestBody,\n });\n};\n\nconst buildResultFromResponseV2 = async (response: Response): Promise<APIGatewayProxyResultV2> => {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n\n const contentType = response.headers.get('content-type') ?? '';\n const isBinary =\n contentType.startsWith('image/') ||\n contentType.startsWith('audio/') ||\n contentType.startsWith('video/') ||\n contentType === 'application/octet-stream';\n\n const body = isBinary\n ? Buffer.from(await response.arrayBuffer()).toString('base64')\n : await response.text();\n\n return {\n statusCode: response.status,\n headers,\n body,\n isBase64Encoded: isBinary,\n };\n};\n\nconst buildResultFromResponseV1 = async (response: Response): Promise<APIGatewayProxyResult> => {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n\n const contentType = response.headers.get('content-type') ?? '';\n const isBinary =\n contentType.startsWith('image/') ||\n contentType.startsWith('audio/') ||\n contentType.startsWith('video/') ||\n contentType === 'application/octet-stream';\n\n const body = isBinary\n ? Buffer.from(await response.arrayBuffer()).toString('base64')\n : await response.text();\n\n return {\n statusCode: response.status,\n headers,\n body,\n isBase64Encoded: isBinary,\n };\n};\n\nconst createHandlerV2 = (appFetch: (request: Request) => Promise<Response>): LambdaHandlerV2 => {\n return async (\n event: APIGatewayProxyEventV2,\n _context: Context,\n ): Promise<APIGatewayProxyResultV2> => {\n const request = buildRequestFromEventV2(event);\n const response = await appFetch(request);\n return buildResultFromResponseV2(response);\n };\n};\n\nconst createHandlerV1 = (appFetch: (request: Request) => Promise<Response>): LambdaHandlerV1 => {\n return async (event: APIGatewayProxyEvent, _context: Context): Promise<APIGatewayProxyResult> => {\n const request = buildRequestFromEventV1(event);\n const response = await appFetch(request);\n return buildResultFromResponseV1(response);\n };\n};\n\nexport const onLambda = async (\n app: HttpApp,\n options: LambdaAppOptions = {},\n): Promise<LambdaApp> => {\n app.addFallbackConfig(LambdaEnvAdaptor);\n\n const readyOptions: ReadyOptions = { warmup: options.warmup ?? false };\n const resolver = await app.ready(readyOptions);\n\n const handler = createHandlerV2(app.fetch);\n const handlerV1 = createHandlerV1(app.fetch);\n\n return {\n ...resolver,\n handler,\n handlerV1,\n shutdown: app.shutdown,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Config","EnvAdaptor","LambdaEnvAdaptor","get","key","process","env","LambdaEnvAdaptor","buildHeadersFromRecord","headersRecord","headers","Headers","key","value","Object","entries","set","buildBodyFromEvent","body","isBase64Encoded","buffer","Buffer","from","Blob","buildRequestBody","method","buildRequestFromEventV2","event","protocol","get","host","requestContext","domainName","path","rawPath","queryString","rawQueryString","url","http","requestBody","Request","buildQueryStringFromParams","queryParams","params","undefined","URLSearchParams","toString","buildRequestFromEventV1","queryStringParameters","httpMethod","buildResultFromResponseV2","response","forEach","contentType","isBinary","startsWith","arrayBuffer","text","statusCode","status","buildResultFromResponseV1","createHandlerV2","appFetch","_context","request","createHandlerV1","onLambda","app","options","readyApp","createRuntime","fallbackConfigs","warmup","handler","fetch","handlerV1","shutdown"],"sources":["../src/lambda-env.adaptor.ts","../src/on-lambda.ts"],"sourcesContent":["import { Config, EnvAdaptor } from '@zeltjs/core';\n\n@Config\nexport class LambdaEnvAdaptor extends EnvAdaptor {\n override get(key: string): string | undefined {\n return process.env[key];\n }\n}\n","import type {\n ConfiguredFeature,\n CreateRuntimeOptions,\n HttpCapabilities,\n RuntimeApp,\n} from '@zeltjs/core';\nimport type {\n APIGatewayProxyEvent,\n APIGatewayProxyEventV2,\n APIGatewayProxyResult,\n APIGatewayProxyResultV2,\n Context,\n} from 'aws-lambda';\n\nimport { LambdaEnvAdaptor } from './lambda-env.adaptor';\n\nexport type LambdaAppOptions = {\n readonly warmup?: boolean;\n};\n\nexport type LambdaHandlerV2 = (\n event: APIGatewayProxyEventV2,\n context: Context,\n) => Promise<APIGatewayProxyResultV2>;\n\nexport type LambdaHandlerV1 = (\n event: APIGatewayProxyEvent,\n context: Context,\n) => Promise<APIGatewayProxyResult>;\n\nexport type LambdaApp = {\n readonly get: <T extends object>(cls: new (...args: never[]) => T) => Promise<T>;\n readonly handler: LambdaHandlerV2;\n readonly handlerV1: LambdaHandlerV1;\n readonly shutdown: () => Promise<void>;\n};\n\nconst buildHeadersFromRecord = (\n headersRecord: Record<string, string | undefined> | undefined,\n): Headers => {\n const headers = new Headers();\n if (headersRecord) {\n for (const [key, value] of Object.entries(headersRecord)) {\n if (value) headers.set(key, value);\n }\n }\n return headers;\n};\n\nconst buildBodyFromEvent = (\n body: string | null | undefined,\n isBase64Encoded: boolean,\n): BodyInit | null => {\n if (!body) return null;\n if (isBase64Encoded) {\n const buffer = Buffer.from(body, 'base64');\n return new Blob([buffer]);\n }\n return body;\n};\n\nconst buildRequestBody = (method: string, body: BodyInit | null): BodyInit | null => {\n return method !== 'GET' && method !== 'HEAD' ? body : null;\n};\n\nconst buildRequestFromEventV2 = (event: APIGatewayProxyEventV2): Request => {\n const headers = buildHeadersFromRecord(event.headers);\n\n const protocol = headers.get('x-forwarded-proto') ?? 'https';\n const host = event.requestContext.domainName;\n const path = event.rawPath;\n const queryString = event.rawQueryString ? `?${event.rawQueryString}` : '';\n const url = `${protocol}://${host}${path}${queryString}`;\n\n const method = event.requestContext.http.method;\n const body = buildBodyFromEvent(event.body, event.isBase64Encoded);\n const requestBody = buildRequestBody(method, body);\n\n return new Request(url, {\n method,\n headers,\n body: requestBody,\n });\n};\n\nconst buildQueryStringFromParams = (\n queryParams: Record<string, string | undefined> | null | undefined,\n): string => {\n if (!queryParams) return '';\n const params: Record<string, string> = {};\n for (const [key, value] of Object.entries(queryParams)) {\n if (value !== undefined) {\n params[key] = value;\n }\n }\n return `?${new URLSearchParams(params).toString()}`;\n};\n\nconst buildRequestFromEventV1 = (event: APIGatewayProxyEvent): Request => {\n const headers = buildHeadersFromRecord(event.headers);\n\n const protocol = headers.get('x-forwarded-proto') ?? 'https';\n const host = headers.get('host') ?? 'localhost';\n const path = event.path;\n\n const queryString = buildQueryStringFromParams(event.queryStringParameters);\n const url = `${protocol}://${host}${path}${queryString}`;\n\n const method = event.httpMethod;\n const body = buildBodyFromEvent(event.body, event.isBase64Encoded);\n const requestBody = buildRequestBody(method, body);\n\n return new Request(url, {\n method,\n headers,\n body: requestBody,\n });\n};\n\nconst buildResultFromResponseV2 = async (response: Response): Promise<APIGatewayProxyResultV2> => {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n\n const contentType = response.headers.get('content-type') ?? '';\n const isBinary =\n contentType.startsWith('image/') ||\n contentType.startsWith('audio/') ||\n contentType.startsWith('video/') ||\n contentType === 'application/octet-stream';\n\n const body = isBinary\n ? Buffer.from(await response.arrayBuffer()).toString('base64')\n : await response.text();\n\n return {\n statusCode: response.status,\n headers,\n body,\n isBase64Encoded: isBinary,\n };\n};\n\nconst buildResultFromResponseV1 = async (response: Response): Promise<APIGatewayProxyResult> => {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n\n const contentType = response.headers.get('content-type') ?? '';\n const isBinary =\n contentType.startsWith('image/') ||\n contentType.startsWith('audio/') ||\n contentType.startsWith('video/') ||\n contentType === 'application/octet-stream';\n\n const body = isBinary\n ? Buffer.from(await response.arrayBuffer()).toString('base64')\n : await response.text();\n\n return {\n statusCode: response.status,\n headers,\n body,\n isBase64Encoded: isBinary,\n };\n};\n\nconst createHandlerV2 = (appFetch: (request: Request) => Promise<Response>): LambdaHandlerV2 => {\n return async (\n event: APIGatewayProxyEventV2,\n _context: Context,\n ): Promise<APIGatewayProxyResultV2> => {\n const request = buildRequestFromEventV2(event);\n const response = await appFetch(request);\n return buildResultFromResponseV2(response);\n };\n};\n\nconst createHandlerV1 = (appFetch: (request: Request) => Promise<Response>): LambdaHandlerV1 => {\n return async (event: APIGatewayProxyEvent, _context: Context): Promise<APIGatewayProxyResult> => {\n const request = buildRequestFromEventV1(event);\n const response = await appFetch(request);\n return buildResultFromResponseV1(response);\n };\n};\n\ntype HttpRuntimeApp = RuntimeApp<readonly ConfiguredFeature[]> & {\n readonly http: HttpCapabilities;\n};\n\ntype HttpApp = {\n readonly createRuntime: (options?: CreateRuntimeOptions) => Promise<HttpRuntimeApp>;\n};\n\nexport const onLambda = async (\n app: HttpApp,\n options: LambdaAppOptions = {},\n): Promise<LambdaApp> => {\n const readyApp = await app.createRuntime({\n fallbackConfigs: [LambdaEnvAdaptor],\n warmup: options.warmup ?? false,\n });\n\n const handler = createHandlerV2(readyApp.http.fetch);\n const handlerV1 = createHandlerV1(readyApp.http.fetch);\n\n return {\n get: readyApp.get,\n handler,\n handlerV1,\n shutdown: readyApp.shutdown,\n };\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeltjs/adapter-lambda",
3
- "version": "0.8.0",
3
+ "version": "0.8.2-canary.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -21,7 +21,7 @@
21
21
  "dist"
22
22
  ],
23
23
  "dependencies": {
24
- "@zeltjs/core": "0.8.0"
24
+ "@zeltjs/core": "0.8.2-canary.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/aws-lambda": "8.10.150",