{"version":3,"file":"redwood.cjs","names":["frameworkName: SupportedFrameworkName","InngestCommHandler","processEnv","envKeys"],"sources":["../src/redwood.ts"],"sourcesContent":["/**\n * An adapter for AWS Lambda to serve and register any declared functions with\n * Inngest, making them available to be triggered by events.\n *\n * @example\n * ```ts\n * import { serve } from \"inngest/redwood\";\n * import { inngest } from \"src/inngest/client\";\n * import fnA from \"src/inngest/fnA\"; // Your own function\n *\n * export const handler = serve({\n *   client: inngest,\n *   functions: [fnA],\n *   servePath: \"/api/inngest\",\n * });\n * ```\n *\n * @module\n */\n\nimport type {\n  APIGatewayProxyEvent,\n  Context as LambdaContext,\n} from \"aws-lambda\";\nimport {\n  InngestCommHandler,\n  type ServeHandlerOptions,\n} from \"./components/InngestCommHandler.ts\";\nimport { envKeys } from \"./helpers/consts.ts\";\nimport { processEnv } from \"./helpers/env.ts\";\nimport type { SupportedFrameworkName } from \"./types.ts\";\n\nexport interface RedwoodResponse {\n  statusCode: number;\n  body?: string | null;\n  headers?: Record<string, string>;\n}\n\n/**\n * The name of the framework, used to identify the framework in Inngest\n * dashboards and during testing.\n */\nexport const frameworkName: SupportedFrameworkName = \"redwoodjs\";\n\n/**\n * In Redwood.js, serve and register any declared functions with Inngest, making\n * them available to be triggered by events.\n *\n * @example\n * ```ts\n * import { serve } from \"inngest/redwood\";\n * import { inngest } from \"src/inngest/client\";\n * import fnA from \"src/inngest/fnA\"; // Your own function\n *\n * export const handler = serve({\n *   client: inngest,\n *   functions: [fnA],\n *   servePath: \"/api/inngest\",\n * });\n * ```\n *\n * @public\n */\n// Has explicit return type to avoid JSR-defined \"slow types\"\nexport const serve = (\n  options: ServeHandlerOptions,\n): ((\n  event: APIGatewayProxyEvent,\n  _context: LambdaContext,\n) => Promise<RedwoodResponse>) => {\n  const handler = new InngestCommHandler({\n    frameworkName,\n    ...options,\n    handler: (event: APIGatewayProxyEvent, _context: LambdaContext) => {\n      return {\n        body: () => {\n          return JSON.parse(\n            event.body\n              ? event.isBase64Encoded\n                ? Buffer.from(event.body, \"base64\").toString()\n                : event.body\n              : \"{}\",\n          );\n        },\n        headers: (key) => event.headers[key],\n        method: () => event.httpMethod,\n        url: () => {\n          const scheme =\n            processEnv(envKeys.NodeEnv) === \"development\" ? \"http\" : \"https\";\n          const url = new URL(\n            event.path,\n            `${scheme}://${event.headers.host || \"\"}`,\n          );\n\n          return url;\n        },\n        queryString: (key) => event.queryStringParameters?.[key],\n        transformResponse: ({\n          body,\n          status: statusCode,\n          headers,\n        }): RedwoodResponse => {\n          return { body, statusCode, headers };\n        },\n      };\n    },\n  });\n\n  return handler.createHandler();\n};\n"],"mappings":";;;;;;;;;AA0CA,MAAaA,gBAAwC;;;;;;;;;;;;;;;;;;;;AAsBrD,MAAa,SACX,YAIgC;AAuChC,QAtCgB,IAAIC,8CAAmB;EACrC;EACA,GAAG;EACH,UAAU,OAA6B,aAA4B;AACjE,UAAO;IACL,YAAY;AACV,YAAO,KAAK,MACV,MAAM,OACF,MAAM,kBACJ,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC,UAAU,GAC5C,MAAM,OACR,KACL;;IAEH,UAAU,QAAQ,MAAM,QAAQ;IAChC,cAAc,MAAM;IACpB,WAAW;KACT,MAAM,SACJC,uBAAWC,uBAAQ,QAAQ,KAAK,gBAAgB,SAAS;AAM3D,YALY,IAAI,IACd,MAAM,MACN,GAAG,OAAO,KAAK,MAAM,QAAQ,QAAQ,KACtC;;IAIH,cAAc,QAAQ,MAAM,wBAAwB;IACpD,oBAAoB,EAClB,MACA,QAAQ,YACR,cACqB;AACrB,YAAO;MAAE;MAAM;MAAY;MAAS;;IAEvC;;EAEJ,CAAC,CAEa,eAAe"}