38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import type { BetterAuthClientPlugin } from "better-auth";
|
|
import type { stripe } from "./stripe";
|
|
|
|
export const stripeClient = <
|
|
O extends {
|
|
subscription: boolean;
|
|
},
|
|
>(
|
|
options?: O,
|
|
) => {
|
|
return {
|
|
id: "stripe-client",
|
|
$InferServerPlugin: {} as ReturnType<
|
|
typeof stripe<
|
|
O["subscription"] extends true
|
|
? {
|
|
stripeClient: any;
|
|
stripeWebhookSecret: string;
|
|
subscription: {
|
|
enabled: true;
|
|
plans: [];
|
|
};
|
|
}
|
|
: {
|
|
stripeClient: any;
|
|
stripeWebhookSecret: string;
|
|
}
|
|
>
|
|
>,
|
|
pathMethods: {
|
|
"/subscription/restore": "POST",
|
|
"/subscription/billing-portal": "POST",
|
|
"/alipay/app-pay": "POST",
|
|
"/alipay/auth-info": "POST",
|
|
},
|
|
} satisfies BetterAuthClientPlugin;
|
|
};
|