@saleor/app-sdk
Version:
SDK for building great Saleor Apps
113 lines (105 loc) • 3.58 kB
JavaScript
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
};