Files
whyrating/packages/billing/src/providers/lemon-squeezy/mappers/to-billing-status.ts
2026-02-04 01:55:00 +01:00

39 lines
1.0 KiB
TypeScript

import { BillingStatus } from "../../../types";
export const toBillingStatus = (status: string): BillingStatus => {
switch (status) {
case "active":
return BillingStatus.ACTIVE;
case "on_trial":
return BillingStatus.TRIALING;
case "past_due":
return BillingStatus.PAST_DUE;
case "cancelled":
return BillingStatus.CANCELED;
case "expired":
return BillingStatus.INCOMPLETE_EXPIRED;
case "unpaid":
return BillingStatus.UNPAID;
case "paused":
return BillingStatus.PAUSED;
default:
throw new Error(`Invalid billing status: ${status}`);
}
};
export const toCheckoutBillingStatus = (status: string): BillingStatus => {
switch (status) {
case "paid":
return BillingStatus.ACTIVE;
case "refunded":
return BillingStatus.CANCELED;
case "failed":
return BillingStatus.UNPAID;
case "pending":
return BillingStatus.INCOMPLETE;
default:
throw new Error(`Invalid checkout billing status: ${status}`);
}
};