@paykit-sdk/core
Version:
The Payment Toolkit for Typescript
63 lines (59 loc) • 2.11 kB
JavaScript
// src/webhook-provider.ts
var Webhook = class {
constructor(config) {
this.config = config;
this.handleWebhook = async (payload, signature) => {
const { provider, webhookSecret, ...handlers } = this.config;
const event = await provider.handleWebhook({ payload, signature, secret: webhookSecret });
switch (event.type) {
case "customer.created":
return handlers.onCustomerCreated?.(event);
case "customer.updated":
return handlers.onCustomerUpdated?.(event);
case "customer.deleted":
return handlers.onCustomerDeleted?.(event);
case "subscription.created":
return handlers.onSubscriptionCreated?.(event);
case "subscription.updated":
return handlers.onSubscriptionUpdated?.(event);
case "subscription.canceled":
return handlers.onSubscriptionCanceled?.(event);
}
};
}
};
// src/resources/subscription.ts
var toPaykitSubscriptionStatus = (status) => {
if (["active", "trialing"].includes(status)) return "active";
if (["incomplete_expired", "incomplete", "past_due"].includes(status)) return "past_due";
if (["canceled"].includes(status)) return "canceled";
if (["expired"].includes(status)) return "expired";
throw new Error(`Unknown status: ${status}`);
};
// src/resources/webhook.ts
var toPaykitEvent = (event) => event;
// src/index.ts
var PayKit = class {
constructor(provider) {
this.provider = provider;
this.checkouts = {
create: (params) => this.provider.createCheckout(params),
retrieve: (id) => this.provider.retrieveCheckout(id)
};
this.customers = {
create: (params) => this.provider.createCustomer(params),
update: (id, params) => this.provider.updateCustomer(id, params),
retrieve: (id) => this.provider.retrieveCustomer(id)
};
this.subscriptions = {
update: (id, params) => this.provider.updateSubscription(id, params),
cancel: (id) => this.provider.cancelSubscription(id)
};
}
};
export {
PayKit,
Webhook,
toPaykitEvent,
toPaykitSubscriptionStatus
};