UNPKG

@saleor/app-sdk

Version:

SDK for building great Saleor Apps

113 lines (105 loc) 3.58 kB
import { WebApiAdapter } from "../../chunk-VKMVS7KC.mjs"; import { GenericSaleorWebhook, ManifestActionHandler, ProtectedActionValidator, RegisterActionHandler } from "../../chunk-OXDAFSK7.mjs"; import "../../chunk-WR25JCBM.mjs"; import "../../chunk-NHGUNOYT.mjs"; import "../../chunk-FTAQRPFZ.mjs"; import "../../chunk-DMVVCVUO.mjs"; import "../../chunk-5KB46KET.mjs"; import "../../chunk-4FJHEINB.mjs"; import { createDebug } from "../../chunk-CPDLIPGD.mjs"; // src/handlers/platforms/next-app-router/platform-adapter.ts var NextAppRouterAdapter = class extends WebApiAdapter { constructor(request) { super(request, Response); this.request = request; } }; // src/handlers/platforms/next-app-router/create-app-register-handler.ts var createAppRegisterHandler = (config) => async (req) => { const adapter = new NextAppRouterAdapter(req); const useCase = new RegisterActionHandler(adapter); const result = await useCase.handleAction(config); return adapter.send(result); }; // src/handlers/platforms/next-app-router/create-manifest-handler.ts var createManifestHandler = (config) => async (request) => { const adapter = new NextAppRouterAdapter(request); const actionHandler = new ManifestActionHandler(adapter); const result = await actionHandler.handleAction(config); return adapter.send(result); }; // src/handlers/platforms/next-app-router/create-protected-handler.ts import { NextResponse } from "next/server.js"; var createProtectedHandler = (handlerFn, apl, requiredPermissions) => async (request) => { const adapter = new NextAppRouterAdapter(request); const actionValidator = new ProtectedActionValidator(adapter); const validationResult = await actionValidator.validateRequest({ apl, requiredPermissions }); if (validationResult.result === "failure") { return adapter.send(validationResult.value); } const context = validationResult.value; try { return await handlerFn(request, context); } catch (err) { return new NextResponse("Unexpected server error", { status: 500 }); } }; // src/handlers/platforms/next-app-router/saleor-webhooks/saleor-webhook.ts var debug = createDebug("SaleorWebhook"); var SaleorNextAppRouterWebhook = class extends GenericSaleorWebhook { createHandler(handlerFn) { return async (req) => { const adapter = new NextAppRouterAdapter(req); const prepareRequestResult = await super.prepareRequest(adapter); if (prepareRequestResult.result === "sendResponse") { return prepareRequestResult.response; } debug("Incoming request validated. Call handlerFn"); return handlerFn(req, { ...prepareRequestResult.context }); }; } }; // src/handlers/platforms/next-app-router/saleor-webhooks/saleor-async-webhook.ts var SaleorAsyncWebhook = class extends SaleorNextAppRouterWebhook { constructor(configuration) { super(configuration); this.eventType = "async"; this.event = configuration.event; } createHandler(handlerFn) { return super.createHandler(handlerFn); } }; // src/handlers/platforms/next-app-router/saleor-webhooks/saleor-sync-webhook.ts var SaleorSyncWebhook = class extends SaleorNextAppRouterWebhook { constructor(configuration) { super(configuration); this.eventType = "sync"; this.event = configuration.event; } createHandler(handlerFn) { return super.createHandler(handlerFn); } }; export { NextAppRouterAdapter, SaleorAsyncWebhook, SaleorSyncWebhook, createAppRegisterHandler, createManifestHandler, createProtectedHandler };