UNPKG

autumn-js

Version:
67 lines (64 loc) 1.57 kB
import { sanitizeBody } from "./chunk-I7CD6EB6.mjs"; import { resolveIdentity } from "./chunk-TBQ27LIK.mjs"; import { transformSdkError } from "./chunk-J44WR3QZ.mjs"; import { backendSuccess, isBackendResult } from "./chunk-N7NFYY54.mjs"; // src/backend/core/handlers/executeRoute.ts var buildSdkArgs = ({ body, identity, route }) => { const args = sanitizeBody(body, route.protectedBodyFields); if (identity.customerId) { args.customerId = identity.customerId; } return args; }; var executeRoute = async ({ autumn, route, body, getCustomer }) => { const requireCustomer = route.requireCustomer !== false; const identityResult = await resolveIdentity({ getCustomer, requireCustomer }); if (identityResult.success === false) { return identityResult.error; } const { identity } = identityResult; if (route.customHandler) { try { const result = await route.customHandler({ autumn, identity, body }); if (isBackendResult(result)) { return result; } return backendSuccess({ body: result }); } catch (error) { console.error(`[Autumn] Custom handler failed: ${route.route}`, error); return transformSdkError(error); } } const sdkArgs = buildSdkArgs({ body, identity, route }); try { const result = await route.sdkMethod(autumn, sdkArgs); return backendSuccess({ body: result }); } catch (error) { console.error(`[Autumn] SDK call failed: ${route.route}`, error); return transformSdkError(error); } }; export { executeRoute };