getPlanChangeType() — supabase Function Reference
Architecture documentation for the getPlanChangeType() function in Subscription.utils.ts from the supabase codebase.
Entity Profile
Relationship Graph
Source Code
apps/studio/components/interfaces/Billing/Subscription/Subscription.utils.ts lines 38–85
export const getPlanChangeType = (
fromPlan: PlanId | undefined,
toPlan: PlanId | undefined
): PlanChangeType => {
const planChangeTypes: Record<PlanId, Record<PlanId, PlanChangeType>> = {
free: {
free: 'none',
pro: 'upgrade',
team: 'upgrade',
enterprise: 'upgrade',
platform: 'upgrade',
},
pro: {
free: 'downgrade',
pro: 'none',
team: 'upgrade',
enterprise: 'upgrade',
platform: 'upgrade',
},
team: {
free: 'downgrade',
pro: 'downgrade',
team: 'none',
enterprise: 'upgrade',
platform: 'upgrade',
},
enterprise: {
free: 'downgrade',
pro: 'downgrade',
team: 'downgrade',
enterprise: 'none',
platform: 'upgrade',
},
platform: {
free: 'downgrade',
pro: 'downgrade',
team: 'downgrade',
enterprise: 'downgrade',
platform: 'none',
},
}
if (!fromPlan || !toPlan) {
return 'none'
}
return planChangeTypes[fromPlan]?.[toPlan] ?? 'none'
}
Domain
Subdomains
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free