inngest
Version:
Official SDK for Inngest.com. Inngest is the reliability layer for modern applications. Inngest combines durable execution, events, and queues into a zero-infra platform with built-in observability.
1 lines • 2.98 kB
Source Map (JSON)
{"version":3,"file":"fresh.cjs","names":["frameworkName: SupportedFrameworkName","InngestCommHandler"],"sources":["../../src/deno/fresh.ts"],"sourcesContent":["/**\n * An adapter for Deno's Fresh 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 \"https://esm.sh/inngest/deno/fresh\";\n * import { inngest } from \"./src/inngest/client.ts\";\n * import fnA from \"./src/inngest/fnA\"; // Your own function\n *\n * export const handler = serve({\n * client: inngest,\n * functions: [fnA],\n * });\n * ```\n *\n * @module\n */\n\nimport {\n InngestCommHandler,\n type ServeHandlerOptions,\n} from \"../components/InngestCommHandler.ts\";\nimport type { SupportedFrameworkName } from \"../types.ts\";\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 = \"deno/fresh\";\n\n/**\n * With Deno's Fresh framework, 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 \"https://esm.sh/inngest/deno/fresh\";\n * import { inngest } from \"./src/inngest/client.ts\";\n * import fnA from \"./src/inngest/fnA\"; // Your own function\n *\n * export const handler = serve({\n * client: inngest,\n * functions: [fnA],\n * });\n * ```\n *\n * @public\n */\n// Has explicit return type to avoid JSR-defined \"slow types\"\nexport const serve = (\n options: ServeHandlerOptions,\n): ((req: Request) => Promise<Response>) => {\n const handler = new InngestCommHandler({\n frameworkName,\n ...options,\n handler: (req: Request, env: Record<string, string>) => {\n return {\n body: () => req.text(),\n headers: (key) => req.headers.get(key),\n method: () => req.method,\n env: () => env,\n url: () => new URL(req.url, `https://${req.headers.get(\"host\") || \"\"}`),\n transformResponse: ({ body, status, headers }) => {\n return new Response(body, { status, headers });\n },\n };\n },\n });\n\n const fn = handler.createHandler();\n\n return function handleRequest(req: Request, ...other) {\n return fn(req, Deno.env.toObject(), ...other);\n };\n};\n\ndeclare const Deno: { env: { toObject: () => { [index: string]: string } } };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAaA,gBAAwC;;;;;;;;;;;;;;;;;;;AAqBrD,MAAa,SACX,YAC0C;CAkB1C,MAAM,KAjBU,IAAIC,8CAAmB;EACrC;EACA,GAAG;EACH,UAAU,KAAc,QAAgC;AACtD,UAAO;IACL,YAAY,IAAI,MAAM;IACtB,UAAU,QAAQ,IAAI,QAAQ,IAAI,IAAI;IACtC,cAAc,IAAI;IAClB,WAAW;IACX,WAAW,IAAI,IAAI,IAAI,KAAK,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,KAAK;IACvE,oBAAoB,EAAE,MAAM,QAAQ,cAAc;AAChD,YAAO,IAAI,SAAS,MAAM;MAAE;MAAQ;MAAS,CAAC;;IAEjD;;EAEJ,CAAC,CAEiB,eAAe;AAElC,QAAO,SAAS,cAAc,KAAc,GAAG,OAAO;AACpD,SAAO,GAAG,KAAK,KAAK,IAAI,UAAU,EAAE,GAAG,MAAM"}