fix(payment): expose provider type for named gateways
This commit is contained in:
1 parent
2e770f7e3e
commit
1b470402c7
5 files changed
+8
-1
No files matched your search
@@ -50,6 +50,8 @@ export function validatePaymentConfig(config: PaymentConfig) {
|
||||
});
|
||||
if (value.provider === "razorpay")
|
||||
required(name, { keyId: value.keyId, keySecret: value.keySecret });
|
||||
if (value.provider === "razorpay" && config.environment === "production")
|
||||
required(name, { webhookSecret: value.webhookSecret });
|
||||
if (value.provider === "paypal")
|
||||
required(name, {
|
||||
clientId: value.clientId,
|
||||
@@ -64,7 +66,7 @@ export function validatePaymentConfig(config: PaymentConfig) {
|
||||
}
|
||||
|
||||
function namedGateway(name: string, gateway: PaymentGateway): PaymentGateway {
|
||||
return Object.freeze({ ...gateway, id: name });
|
||||
return Object.freeze({ ...gateway, id: name, provider: gateway.provider ?? gateway.id });
|
||||
}
|
||||
|
||||
export function paymentOptionsFromConfig(
|
||||
|
||||
@@ -419,6 +419,7 @@ export function definePayment(options: PaymentOptions) {
|
||||
providers: () =>
|
||||
[...adapters.values()].map((adapter) => ({
|
||||
id: adapter.id,
|
||||
provider: adapter.provider ?? adapter.id,
|
||||
capabilities: adapter.capabilities,
|
||||
supports: adapter.supports,
|
||||
})),
|
||||
|
||||
@@ -82,6 +82,8 @@ export interface WebhookEvent {
|
||||
|
||||
export interface PaymentGateway<TConfig = unknown> {
|
||||
readonly id: string;
|
||||
/** Built-in provider type when the id is an application-defined gateway alias. */
|
||||
readonly provider?: string;
|
||||
readonly config?: TConfig;
|
||||
readonly capabilities: GatewayCapabilities;
|
||||
readonly supports: GatewaySupport;
|
||||
|
||||
Reference in new issue
Block a user