@paddle/paddle-js
Version:
Wrapper to load Paddle.js as a module and use TypeScript definitions when working with methods.
81 lines (74 loc) • 1.8 kB
TypeScript
import { AvailablePaymentMethod, Price, Product, Totals } from '../shared/shared';
import { CurrencyCode } from '../shared/currency-code';
export interface PricePreviewItem {
priceId: string;
quantity: number;
}
export interface PricePreviewParams {
items: PricePreviewItem[];
customerId?: string;
addressId?: string;
businessId?: string;
currencyCode?: CurrencyCode;
discountId?: string;
address?: {
countryCode: string;
postalCode?: string;
};
customerIpAddress?: string;
}
interface Discount {
id: string;
status: 'active' | 'archived' | 'expired' | 'used';
description: string;
enabledForCheckout: boolean;
code: string | null;
type: 'flat' | 'flat_per_seat' | 'percentage';
amount: string;
currencyCode: CurrencyCode | null;
recur: boolean;
maximumRecurringIntervals: number | null;
usageLimit: number | null;
restrictTo: string[] | null;
expiresAt: string | null;
timesUsed: number;
createdAt: string;
updatedAt: string;
}
interface DiscountLineItem {
discount: Discount;
total: string;
formattedTotal: string;
}
interface LineItem {
price: Price;
quantity: number;
taxRate: string;
unitTotals: Totals;
formattedUnitTotals: Totals;
totals: Totals;
formattedTotals: Totals;
product: Product;
discounts: DiscountLineItem[];
}
export interface PricePreviewResponse {
data: {
customerId: string | null;
addressId: string | null;
businessId: string | null;
currencyCode: CurrencyCode;
address: {
countryCode: string;
postalCode: string | null;
} | null;
customerIpAddress: string | null;
discountId: string | null;
details: {
lineItems: LineItem[];
};
availablePaymentMethods: AvailablePaymentMethod[];
};
meta: {
requestId: string;
};
}