autumn-js
Version:
Autumn JS Library
40 lines (36 loc) • 1.63 kB
TypeScript
import { createAuthEndpoint } from '@better-auth/core/api';
/** All supported route names as const for type safety */
declare const ROUTE_NAMES: {
readonly getOrCreateCustomer: "getOrCreateCustomer";
readonly getEntity: "getEntity";
readonly attach: "attach";
readonly previewAttach: "previewAttach";
readonly updateSubscription: "updateSubscription";
readonly previewUpdateSubscription: "previewUpdateSubscription";
readonly openCustomerPortal: "openCustomerPortal";
readonly createReferralCode: "createReferralCode";
readonly redeemReferralCode: "redeemReferralCode";
readonly listPlans: "listPlans";
readonly listEvents: "listEvents";
readonly aggregateEvents: "aggregateEvents";
readonly multiAttach: "multiAttach";
readonly previewMultiAttach: "previewMultiAttach";
readonly setupPayment: "setupPayment";
};
/** Union of all route names */
type RouteName = keyof typeof ROUTE_NAMES;
/** Type for the handleRoute function used by better-auth endpoints */
type HandleBetterAuthRouteFn = (args: {
ctx: unknown;
routeName: RouteName;
}) => Promise<{
status: number;
body: unknown;
}>;
type AutumnEndpoint = ReturnType<typeof createAuthEndpoint>;
/**
* Creates a better-auth endpoint for a given route name.
* Each route needs its own call to preserve TypeScript literal types for the path.
*/
declare const createAutumnEndpoint: <T extends RouteName>(routeName: T, handleRoute: HandleBetterAuthRouteFn) => AutumnEndpoint;
export { type AutumnEndpoint as A, type HandleBetterAuthRouteFn as H, type RouteName as R, createAutumnEndpoint as c };