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.
81 lines (79 loc) • 2.92 kB
text/typescript
import { InngestEndpointAdapter } from "./components/InngestEndpointAdapter.cjs";
import { SupportedFrameworkName } from "./types.cjs";
import { ServeHandlerOptions, SyncHandlerOptions } from "./components/InngestCommHandler.cjs";
import { NextRequest } from "next/server";
//#region src/next.d.ts
/**
* The name of the framework, used to identify the framework in Inngest
* dashboards and during testing.
*/
declare const frameworkName: SupportedFrameworkName;
/**
* The shape of a request handler, supporting Next.js 12+.
*
* We are intentionally abstract with the arguments here, as Next.js's type
* checking when building varies wildly between major versions; specifying
* different types (even optional types) here can cause issues with the build.
*
* This change was initially made for Next.js 15, which specifies the second
* argument as `RouteContext`, whereas Next.js 13 and 14 omit it and Next.js 12
* provides a `NextApiResponse`, which is varies based on the execution
* environment used (edge vs serverless).
*/
type RequestHandler = (expectedReq: NextRequest, res: unknown) => Promise<Response>;
/**
* In Next.js, serve and register any declared functions with Inngest, making
* them available to be triggered by events.
*
* Supports Next.js 12+, both serverless and edge.
*
* @example Next.js <=12 or the pages router can export the handler directly
* ```ts
* export default serve({ client: inngest, functions: [fn1, fn2] });
* ```
*
* @example Next.js >=13 with the `app` dir must export individual methods
* ```ts
* export const { GET, POST, PUT } = serve({
* client: inngest,
* functions: [fn1, fn2],
* });
* ```
*
* @public
*/
declare const serve: (options: ServeHandlerOptions) => RequestHandler & {
GET: RequestHandler;
POST: RequestHandler;
PUT: RequestHandler;
};
/**
* In Next.js, create a function that can wrap any endpoint to be able to use
* steps seamlessly within that API.
*
* Supports Next.js 12+, both serverless and edge.
*
* @example Next.js >=13 with the `app` dir
* ```ts
* // app/api/my-endpoint/route.ts
* import { Inngest, step } from "inngest";
* import { endpointAdapter } from "inngest/next";
*
* const inngest = new Inngest({
* id: "my-app",
* endpointAdapter,
* });
*
* export const GET = inngest.endpoint(async (req) => {
* const foo = await step.run("my-step", () => ({ foo: "bar" }));
*
* return new Response(`Result: ${JSON.stringify(foo)}`);
* });
* ```
*/
declare const endpointAdapter: ((options: SyncHandlerOptions) => (handler: (expectedReq: NextRequest, res: unknown) => Promise<Response>) => (expectedReq: NextRequest, res: unknown) => Promise<Response>) & (InngestEndpointAdapter.Like & (object | {
createProxyHandler: InngestEndpointAdapter.ProxyFn;
}));
//#endregion
export { RequestHandler, endpointAdapter, frameworkName, serve };
//# sourceMappingURL=next.d.cts.map