@saleor/app-sdk
Version:
SDK for building great Saleor Apps
43 lines (38 loc) • 2.22 kB
text/typescript
import { G as GenericSaleorWebhook, a as GenericWebhookConfig } from './generic-saleor-webhook-Cp6qiwDu.mjs';
import { P as PlatformAdapterInterface, A as ActionHandlerResult, d as WebhookContext } from './saleor-webhook-DUUfTEi7.mjs';
import { AsyncWebhookEventType, SyncWebhookEventType } from './types.mjs';
type WebApiHandlerInput = Request;
type WebApiHandler = (req: Request) => Response | Promise<Response>;
/** PlatformAdapter for Web API (Fetch API: Request and Response)
*
* Platform adapters are used in Actions to handle generic request logic
* like getting body, headers, etc.
*
* Thanks to this Actions logic can be re-used for each platform
* @see {PlatformAdapterInterface}
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Response}
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Request}
*
* */
declare class WebApiAdapter<TRequest extends Request = Request, TResponse extends Response = Response> implements PlatformAdapterInterface<TRequest> {
request: TRequest;
ResponseConstructor: {
new (...args: any): TResponse;
};
constructor(request: TRequest, ResponseConstructor: {
new (...args: any): TResponse;
});
getHeader(name: string): string | null;
getBody(): Promise<any>;
getRawBody(): Promise<string>;
getBaseUrl(): string;
get method(): "POST" | "GET";
send(result: ActionHandlerResult): Promise<TResponse>;
}
type WebhookConfig<Event = AsyncWebhookEventType | SyncWebhookEventType> = GenericWebhookConfig<WebApiHandlerInput, Event>;
/** Function type provided by consumer in `SaleorWebApiWebhook.createHandler` */
type WebApiWebhookHandler<TPayload = unknown, TRequest extends Request = Request, TResponse extends Response = Response> = (req: TRequest, ctx: WebhookContext<TPayload>) => TResponse | Promise<TResponse>;
declare abstract class SaleorWebApiWebhook<TPayload = unknown> extends GenericSaleorWebhook<WebApiHandlerInput, TPayload> {
createHandler(handlerFn: WebApiWebhookHandler<TPayload>): WebApiHandler;
}
export { SaleorWebApiWebhook as S, type WebApiHandlerInput as W, type WebApiHandler as a, type WebhookConfig as b, type WebApiWebhookHandler as c, WebApiAdapter as d };