autumn-js
Version:
Autumn JS Library
67 lines (64 loc) • 1.57 kB
JavaScript
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
};