A TypeScript client for the RevenueCat REST API.
bun add @banksnussman/revenuecatYou can use RevenueCat's v1 API by importing from @banksnussman/revenuecat/v1.
import { subscribers } from "@banksnussman/revenuecat/v1";
const { data, error } = await subscribers({ path: { app_user_id: "123" }})
console.log(data, error)You can use RevenueCat's v2 API by importing from @banksnussman/revenuecat/v2.
import { listPurchases } from "@banksnussman/revenuecat/v2";
const { data, error } = await listPurchases({
path: {
customer_id: "1",
project_id: "1",
}
});
console.log(data, error)The package also provides some TypeScript types that represent the payload RevenueCat sends to your server.
import type { Webhook } from "@banksnussman/revenuecat/webhook";
export async function handlePaymentWebook(request: Request) {
const data: Webhook = await request.json();
try {
await syncUserPayments(data.event.app_user_id);
} catch (error) {
Sentry.captureException(error);
return new Response("Internal Server Error", { status: 500 });
}
return new Response("Success");
}
Bun.serve({
port: 3000,
routes: {
"/payments/webhook": handlePaymentWebook,
},
});