11import { GatewayError } from '../errors/GatewayError' ;
22import ProviderConfigs from '../providers' ;
33import { endpointStrings , ProviderConfig } from '../providers/types' ;
4- import { Params } from '../types/requestBody' ;
4+ import { Options , Params } from '../types/requestBody' ;
55
66/**
77 * Helper function to set a nested property in an object.
@@ -66,7 +66,8 @@ const getValue = (configParam: string, params: Params, paramConfig: any) => {
6666
6767export const transformUsingProviderConfig = (
6868 providerConfig : ProviderConfig ,
69- params : Params
69+ params : Params ,
70+ providerOptions ?: Options
7071) => {
7172 const transformedRequest : { [ key : string ] : any } = { } ;
7273
@@ -99,7 +100,7 @@ export const transformUsingProviderConfig = (
99100 ) {
100101 let value ;
101102 if ( typeof paramConfig . default === 'function' ) {
102- value = paramConfig . default ( params ) ;
103+ value = paramConfig . default ( params , providerOptions ) ;
103104 } else {
104105 value = paramConfig . default ;
105106 }
@@ -129,7 +130,8 @@ export const transformUsingProviderConfig = (
129130const transformToProviderRequestJSON = (
130131 provider : string ,
131132 params : Params ,
132- fn : string
133+ fn : string ,
134+ providerOptions : Options
133135) : { [ key : string ] : any } => {
134136 // Get the configuration for the specified provider
135137 let providerConfig = ProviderConfigs [ provider ] ;
@@ -143,7 +145,7 @@ const transformToProviderRequestJSON = (
143145 throw new GatewayError ( `${ fn } is not supported by ${ provider } ` ) ;
144146 }
145147
146- return transformUsingProviderConfig ( providerConfig , params ) ;
148+ return transformUsingProviderConfig ( providerConfig , params , providerOptions ) ;
147149} ;
148150
149151const transformToProviderRequestFormData = (
@@ -218,7 +220,8 @@ export const transformToProviderRequest = (
218220 params : Params ,
219221 requestBody : Params | FormData | ArrayBuffer | ReadableStream | ArrayBuffer ,
220222 fn : endpointStrings ,
221- requestHeaders : Record < string , string >
223+ requestHeaders : Record < string , string > ,
224+ providerOptions : Options
222225) => {
223226 // this returns a ReadableStream
224227 if ( fn === 'uploadFile' ) {
@@ -242,7 +245,12 @@ export const transformToProviderRequest = (
242245 providerAPIConfig . transformToFormData ( { gatewayRequestBody : params } )
243246 )
244247 return transformToProviderRequestFormData ( provider , params as Params , fn ) ;
245- return transformToProviderRequestJSON ( provider , params as Params , fn ) ;
248+ return transformToProviderRequestJSON (
249+ provider ,
250+ params as Params ,
251+ fn ,
252+ providerOptions
253+ ) ;
246254} ;
247255
248256export default transformToProviderRequest ;
0 commit comments