@@ -351,7 +351,7 @@ let make = (~setModalData) => {
routingNumber,
accountNumber: accountNum,
accountHolderName,
- accountType: accountType->Js.String2.toLowerCase,
+ accountType: accountType->String.toLowerCase,
iban,
sortCode,
}))
diff --git a/src/Payments/BankTransfersPopup.res b/src/Payments/BankTransfersPopup.res
index 1fdcad11..d3476975 100644
--- a/src/Payments/BankTransfersPopup.res
+++ b/src/Payments/BankTransfersPopup.res
@@ -1,17 +1,17 @@
open Utils
let getKeyValue = (json, str) => {
json
- ->Js.Dict.get(str)
- ->Belt.Option.getWithDefault(Js.Dict.empty()->Js.Json.object_)
- ->Js.Json.decodeString
- ->Belt.Option.getWithDefault("")
+ ->Dict.get(str)
+ ->Option.getOr(Dict.make()->JSON.Encode.object)
+ ->JSON.Decode.string
+ ->Option.getOr("")
}
@react.component
let make = (~transferType) => {
let (keys, setKeys) = React.useState(_ => [])
- let (json, setJson) = React.useState(_ => Js.Dict.empty())
- let (postData, setPostData) = React.useState(_ => Js.Dict.empty()->Js.Json.object_)
+ let (json, setJson) = React.useState(_ => Dict.make())
+ let (postData, setPostData) = React.useState(_ => Dict.make()->JSON.Encode.object)
let (return_url, setReturnUrl) = React.useState(_ => "")
let (responseType, title) = switch transferType {
| "achBankTransfer" => ("ach_credit_transfer", "ACH")
@@ -24,35 +24,44 @@ let make = (~transferType) => {
let (openModal, setOpenModal) = React.useState(_ => false)
let (buttonElement, text) = React.useMemo1(() => {
!isCopied
- ? (<>
{React.string("Copy")} >, "text-[#006DF9]")
+ ? (
+ <>
+
+ {React.string("Copy")}
+ >,
+ "text-[#006DF9]",
+ )
: (
- <>
{React.string("Copied")} >,
+ <>
+
+ {React.string("Copied")}
+ >,
"text-[#c0c0c0] font-medium ",
)
}, [isCopied])
let handleClick = keys => {
let text =
keys
- ->Js.Array2.map(item => `${item->snakeToTitleCase} : ${getKeyValue(json, item)}`)
- ->Js.Array2.joinWith(`\n`)
- handlePostMessage([("copy", true->Js.Json.boolean), ("copyDetails", text->Js.Json.string)])
+ ->Array.map(item => `${item->snakeToTitleCase} : ${getKeyValue(json, item)}`)
+ ->Array.joinWith(`\n`)
+ handlePostMessage([("copy", true->JSON.Encode.bool), ("copyDetails", text->JSON.Encode.string)])
setIsCopied(_ => true)
}
React.useEffect0(() => {
- handlePostMessage([("iframeMountedCallback", true->Js.Json.boolean)])
+ handlePostMessage([("iframeMountedCallback", true->JSON.Encode.bool)])
let handle = (ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let dict = json->Utils.getDictFromJson
- if dict->Js.Dict.get("fullScreenIframeMounted")->Belt.Option.isSome {
+ if dict->Dict.get("fullScreenIframeMounted")->Option.isSome {
let metadata = dict->getJsonObjectFromDict("metadata")
let dictMetadata =
dict
->getJsonObjectFromDict("metadata")
->getDictFromJson
- ->Js.Dict.get(responseType)
- ->Belt.Option.getWithDefault(Js.Dict.empty()->Js.Json.object_)
+ ->Dict.get(responseType)
+ ->Option.getOr(Dict.make()->JSON.Encode.object)
->getDictFromJson
- setKeys(_ => dictMetadata->Js.Dict.keys)
+ setKeys(_ => dictMetadata->Dict.keysToArray)
setJson(_ => dictMetadata)
setPostData(_ => metadata->getDictFromJson->getJsonObjectFromDict("data"))
setReturnUrl(_ => metadata->getDictFromJson->getString("url", ""))
@@ -64,7 +73,9 @@ let make = (~transferType) => {
-
+
+
+
{React.string(`${title} bank transfer`)}
@@ -92,7 +103,7 @@ let make = (~transferType) => {
{keys
- ->Js.Array2.map(item =>
+ ->Array.map(item =>
diff --git a/src/Payments/BecsBankDebit.res b/src/Payments/BecsBankDebit.res
index a1c73e2f..2dadb55b 100644
--- a/src/Payments/BecsBankDebit.res
+++ b/src/Payments/BecsBankDebit.res
@@ -4,7 +4,7 @@ open Utils
@react.component
let make = (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list) => {
- let cleanBSB = str => str->Js.String2.replaceByRe(%re("/-/g"), "")
+ let cleanBSB = str => str->String.replaceRegExp(%re("/-/g"), "")
let loggerState = Recoil.useRecoilValueFromAtom(loggerAtom)
let setComplete = Recoil.useSetRecoilState(fieldsComplete)
@@ -24,15 +24,14 @@ let make = (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list)
let complete =
email.value != "" &&
fullName.value != "" &&
- email.isValid->Belt.Option.getWithDefault(false) &&
+ email.isValid->Option.getOr(false) &&
switch modalData {
| Some(data: ACHTypes.data) =>
- Js.log2(
- data.accountNumber->Js.String2.length == 9 &&
- data.sortCode->cleanBSB->Js.String2.length == 6,
+ Console.log2(
+ data.accountNumber->String.length == 9 && data.sortCode->cleanBSB->String.length == 6,
"complete",
)
- data.accountNumber->Js.String2.length == 9 && data.sortCode->cleanBSB->Js.String2.length == 6
+ data.accountNumber->String.length == 9 && data.sortCode->cleanBSB->String.length == 6
| None => false
}
@@ -55,7 +54,7 @@ let make = (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list)
}, [complete])
let submitCallback = React.useCallback3((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->Utils.getDictFromJson->ConfirmType.itemToObjMapper
if confirm.doSubmit {
if complete {
diff --git a/src/Payments/Boleto.res b/src/Payments/Boleto.res
index a7614761..4204a805 100644
--- a/src/Payments/Boleto.res
+++ b/src/Payments/Boleto.res
@@ -2,7 +2,7 @@ open RecoilAtoms
open Utils
let cleanSocialSecurityNumber = socialSecurityNumber =>
- socialSecurityNumber->Js.String2.replaceByRe(%re("/\D+/g"), "")
+ socialSecurityNumber->String.replaceRegExp(%re("/\D+/g"), "")
let formatSocialSecurityNumber = socialSecurityNumber => {
let formatted = socialSecurityNumber->cleanSocialSecurityNumber
@@ -11,11 +11,11 @@ let formatSocialSecurityNumber = socialSecurityNumber => {
let thirdPart = formatted->CardUtils.slice(6, 9)
let fourthPart = formatted->CardUtils.slice(9, 11)
- if formatted->Js.String2.length <= 3 {
+ if formatted->String.length <= 3 {
firstPart
- } else if formatted->Js.String2.length > 3 && formatted->Js.String2.length <= 6 {
+ } else if formatted->String.length > 3 && formatted->String.length <= 6 {
`${firstPart}.${secondPart}`
- } else if formatted->Js.String2.length > 6 && formatted->Js.String2.length <= 9 {
+ } else if formatted->String.length > 6 && formatted->String.length <= 9 {
`${firstPart}.${secondPart}.${thirdPart}`
} else {
`${firstPart}.${secondPart}.${thirdPart}-${fourthPart}`
@@ -35,12 +35,12 @@ let make = (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list)
let (socialSecurityNumberError, setSocialSecurityNumberError) = React.useState(_ => "")
- let socialSecurityNumberRef = React.useRef(Js.Nullable.null)
+ let socialSecurityNumberRef = React.useRef(Nullable.null)
let (complete, empty) = React.useMemo1(() => {
(
- socialSecurityNumber->cleanSocialSecurityNumber->Js.String2.length == 11,
- socialSecurityNumber->Js.String2.length == 0,
+ socialSecurityNumber->cleanSocialSecurityNumber->String.length == 11,
+ socialSecurityNumber->String.length == 0,
)
}, [socialSecurityNumber])
@@ -55,13 +55,13 @@ let make = (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list)
}, [complete])
let submitCallback = React.useCallback1((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->Utils.getDictFromJson->ConfirmType.itemToObjMapper
if confirm.doSubmit {
if complete {
let body = PaymentBody.boletoBody(
- ~socialSecurityNumber=socialSecurityNumber->Js.String2.replaceByRe(%re("/\D+/g"), ""),
+ ~socialSecurityNumber=socialSecurityNumber->String.replaceRegExp(%re("/\D+/g"), ""),
)
intent(
~bodyArr=body,
@@ -85,7 +85,7 @@ let make = (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list)
}
let socialSecurityNumberBlur = ev => {
let val = ReactEvent.Focus.target(ev)["value"]->cleanSocialSecurityNumber
- if val->Js.String2.length != 11 && val->Js.String2.length > 0 {
+ if val->String.length != 11 && val->String.length > 0 {
setSocialSecurityNumberError(_ => "The social security number entered is invalid.")
}
}
diff --git a/src/Payments/Boleto.resi b/src/Payments/Boleto.resi
index f7493b29..4c48424c 100644
--- a/src/Payments/Boleto.resi
+++ b/src/Payments/Boleto.resi
@@ -1,5 +1,5 @@
-let cleanSocialSecurityNumber: Js.String2.t => Js.String2.t
-let formatSocialSecurityNumber: Js.String2.t => Js.String2.t
+let cleanSocialSecurityNumber: string => string
+let formatSocialSecurityNumber: string => string
@react.component
let make: (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list) => React.element
let default: props => React.element
diff --git a/src/Payments/CardPayment.res b/src/Payments/CardPayment.res
index b0ace40a..61bb4e10 100644
--- a/src/Payments/CardPayment.res
+++ b/src/Payments/CardPayment.res
@@ -72,7 +72,7 @@ let make = (
postFailedSubmitResponse(~errortype="validation_error", ~message)
}
- let (requiredFieldsBody, setRequiredFieldsBody) = React.useState(_ => Js.Dict.empty())
+ let (requiredFieldsBody, setRequiredFieldsBody) = React.useState(_ => Dict.make())
let areRequiredFieldsValid = Recoil.useRecoilValueFromAtom(RecoilAtoms.areRequiredFieldsValid)
@@ -112,14 +112,14 @@ let make = (
}, (isSaveCardsChecked, list.payment_type))
let submitCallback = React.useCallback6((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->getDictFromJson->ConfirmType.itemToObjMapper
let (month, year) = CardUtils.getExpiryDates(cardExpiry)
let onSessionBody = [("customer_acceptance", PaymentBody.customerAcceptanceBody)]
let cardNetwork = {
if cardBrand != "" {
- [("card_network", cardBrand->Js.Json.string)]
+ [("card_network", cardBrand->JSON.Encode.string)]
} else {
[]
}
@@ -136,22 +136,22 @@ let make = (
)
let banContactBody = PaymentBody.bancontactBody()
let cardBody = if isCustomerAcceptanceRequired {
- defaultCardBody->Js.Array2.concat(onSessionBody)
+ defaultCardBody->Array.concat(onSessionBody)
} else {
defaultCardBody
}
if confirm.doSubmit {
let validFormat =
(isBancontact ||
- (isCVCValid->Belt.Option.getWithDefault(false) &&
- isCardValid->Belt.Option.getWithDefault(false) &&
- isExpiryValid->Belt.Option.getWithDefault(false))) && areRequiredFieldsValid
+ (isCVCValid->Option.getOr(false) &&
+ isCardValid->Option.getOr(false) &&
+ isExpiryValid->Option.getOr(false))) && areRequiredFieldsValid
if validFormat && (showFields || isBancontact) {
intent(
~bodyArr={
(isBancontact ? banContactBody : cardBody)
- ->Js.Dict.fromArray
- ->Js.Json.object_
+ ->Dict.fromArray
+ ->JSON.Encode.object
->OrcaUtils.flattenObject(true)
->OrcaUtils.mergeTwoFlattenedJsonDicts(requiredFieldsBody)
->OrcaUtils.getArrayOfTupleFromDict
diff --git a/src/Payments/GPay.res b/src/Payments/GPay.res
index 15ff2319..42e8b6cf 100644
--- a/src/Payments/GPay.res
+++ b/src/Payments/GPay.res
@@ -7,11 +7,11 @@ open GooglePayType
let make = (
~sessionObj: option,
~list: PaymentMethodsRecord.list,
- ~thirdPartySessionObj: option,
+ ~thirdPartySessionObj: option,
~paymentType: option,
~walletOptions: array,
) => {
- let (requiredFieldsBody, setRequiredFieldsBody) = React.useState(_ => Js.Dict.empty())
+ let (requiredFieldsBody, setRequiredFieldsBody) = React.useState(_ => Dict.make())
let (loggerState, _setLoggerState) = Recoil.useRecoilState(loggerAtom)
let {iframeId} = Recoil.useRecoilValueFromAtom(keys)
let {publishableKey, sdkHandleOneClickConfirmPayment} = Recoil.useRecoilValueFromAtom(keys)
@@ -25,10 +25,10 @@ let make = (
let areRequiredFieldsEmpty = Recoil.useRecoilValueFromAtom(RecoilAtoms.areRequiredFieldsEmpty)
let status = CommonHooks.useScript("https://pay.google.com/gp/p/js/pay.js")
let isGooglePaySDKFlow = React.useMemo1(() => {
- sessionObj->Belt.Option.isSome
+ sessionObj->Option.isSome
}, [sessionObj])
let isGooglePayThirdPartyFlow = React.useMemo1(() => {
- thirdPartySessionObj->Belt.Option.isSome
+ thirdPartySessionObj->Option.isSome
}, [sessionObj])
let areOneClickWalletsRendered = Recoil.useSetRecoilState(RecoilAtoms.areOneClickWalletsRendered)
@@ -44,7 +44,7 @@ let make = (
| None => PaymentMethodsRecord.defaultPaymentMethodType
}
- let isWallet = walletOptions->Js.Array2.includes("google_pay")
+ let isWallet = walletOptions->Array.includes("google_pay")
let paymentExperience = switch googlePayPaymentMethodType.payment_experience[0] {
| Some(paymentExperience) => paymentExperience.payment_experience_type
| None => PaymentMethodsRecord.RedirectToURL
@@ -60,13 +60,13 @@ let make = (
let isDelayedSessionToken = React.useMemo1(() => {
thirdPartySessionObj
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.flatMap(x => x->Js.Dict.get("delayed_session_token"))
- ->Belt.Option.flatMap(Js.Json.decodeBoolean)
- ->Belt.Option.getWithDefault(false)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.flatMap(x => x->Dict.get("delayed_session_token"))
+ ->Option.flatMap(JSON.Decode.bool)
+ ->Option.getOr(false)
}, [thirdPartySessionObj])
- let processPayment = (body: array<(string, Js.Json.t)>) => {
+ let processPayment = (body: array<(string, JSON.t)>) => {
intent(
~bodyArr=body,
~confirmParam={
@@ -81,12 +81,12 @@ let make = (
React.useEffect1(() => {
let handle = (ev: Window.event) => {
let json = try {
- ev.data->Js.Json.parseExn
+ ev.data->JSON.parseExn
} catch {
- | _ => Js.Dict.empty()->Js.Json.object_
+ | _ => Dict.make()->JSON.Encode.object
}
let dict = json->Utils.getDictFromJson
- if dict->Js.Dict.get("gpayResponse")->Belt.Option.isSome {
+ if dict->Dict.get("gpayResponse")->Option.isSome {
let metadata = dict->getJsonObjectFromDict("gpayResponse")
let obj = metadata->getDictFromJson->itemToObjMapper
let gPayBody = PaymentUtils.appendedCustomerAcceptance(
@@ -97,16 +97,16 @@ let make = (
let body = {
gPayBody
- ->Js.Dict.fromArray
- ->Js.Json.object_
+ ->Dict.fromArray
+ ->JSON.Encode.object
->OrcaUtils.flattenObject(true)
->OrcaUtils.mergeTwoFlattenedJsonDicts(requiredFieldsBody)
->OrcaUtils.getArrayOfTupleFromDict
}
processPayment(body)
}
- if dict->Js.Dict.get("gpayError")->Belt.Option.isSome {
- Utils.handlePostMessage([("fullscreen", false->Js.Json.boolean)])
+ if dict->Dict.get("gpayError")->Option.isSome {
+ Utils.handlePostMessage([("fullscreen", false->JSON.Encode.bool)])
if !isWallet {
postFailedSubmitResponse(~errortype="server_error", ~message="Something went wrong")
}
@@ -147,7 +147,7 @@ let make = (
)
open Promise
OrcaUtils.makeOneClickHandlerPromise(sdkHandleOneClickConfirmPayment)->then(result => {
- let result = result->Js.Json.decodeBoolean->Belt.Option.getWithDefault(false)
+ let result = result->JSON.Decode.bool->Option.getOr(false)
if result {
if isInvokeSDKFlow {
if isDelayedSessionToken {
@@ -155,11 +155,11 @@ let make = (
processPayment(bodyDict)
} else {
handlePostMessage([
- ("fullscreen", true->Js.Json.boolean),
- ("param", "paymentloader"->Js.Json.string),
- ("iframeId", iframeId->Js.Json.string),
+ ("fullscreen", true->JSON.Encode.bool),
+ ("param", "paymentloader"->JSON.Encode.string),
+ ("iframeId", iframeId->JSON.Encode.string),
])
- options.readOnly ? () : handlePostMessage([("GpayClicked", true->Js.Json.boolean)])
+ options.readOnly ? () : handlePostMessage([("GpayClicked", true->JSON.Encode.bool)])
}
} else {
let bodyDict = PaymentBody.gpayRedirectBody(~connectors)
@@ -213,17 +213,17 @@ let make = (
React.useEffect0(() => {
let handleGooglePayMessages = (ev: Window.event) => {
let json = try {
- ev.data->Js.Json.parseExn
+ ev.data->JSON.parseExn
} catch {
- | _ => Js.Dict.empty()->Js.Json.object_
+ | _ => Dict.make()->JSON.Encode.object
}
let dict = json->Utils.getDictFromJson
try {
- if dict->Js.Dict.get("googlePaySyncPayment")->Belt.Option.isSome {
+ if dict->Dict.get("googlePaySyncPayment")->Option.isSome {
syncPayment()
}
} catch {
- | _ => Utils.logInfo(Js.log("Error in syncing GooglePay Payment"))
+ | _ => Utils.logInfo(Console.log("Error in syncing GooglePay Payment"))
}
}
Window.addEventListener("message", handleGooglePayMessages)
@@ -249,15 +249,15 @@ let make = (
let submitCallback = React.useCallback((ev: Window.event) => {
if !isWallet {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->getDictFromJson->ConfirmType.itemToObjMapper
if confirm.doSubmit && areRequiredFieldsValid && !areRequiredFieldsEmpty {
handlePostMessage([
- ("fullscreen", true->Js.Json.boolean),
- ("param", "paymentloader"->Js.Json.string),
- ("iframeId", iframeId->Js.Json.string),
+ ("fullscreen", true->JSON.Encode.bool),
+ ("param", "paymentloader"->JSON.Encode.string),
+ ("iframeId", iframeId->JSON.Encode.string),
])
- options.readOnly ? () : handlePostMessage([("GpayClicked", true->Js.Json.boolean)])
+ options.readOnly ? () : handlePostMessage([("GpayClicked", true->JSON.Encode.bool)])
} else if areRequiredFieldsEmpty {
postFailedSubmitResponse(
~errortype="validation_error",
diff --git a/src/Payments/GPay.resi b/src/Payments/GPay.resi
index a7a58658..304c446b 100644
--- a/src/Payments/GPay.resi
+++ b/src/Payments/GPay.resi
@@ -2,7 +2,7 @@
let default: (
~sessionObj: option,
~list: PaymentMethodsRecord.list,
- ~thirdPartySessionObj: option,
+ ~thirdPartySessionObj: option,
~paymentType: option,
~walletOptions: array,
) => React.element
diff --git a/src/Payments/GPayLazy.res b/src/Payments/GPayLazy.res
index 28dc601f..6c0fe3d2 100644
--- a/src/Payments/GPayLazy.res
+++ b/src/Payments/GPayLazy.res
@@ -3,7 +3,7 @@ open LazyUtils
type props = {
sessionObj: option,
list: PaymentMethodsRecord.list,
- thirdPartySessionObj: option,
+ thirdPartySessionObj: option,
paymentType: CardThemeType.mode,
walletOptions: array,
}
diff --git a/src/Payments/KlarnaPayment.res b/src/Payments/KlarnaPayment.res
index 1dad635a..1ba7429e 100644
--- a/src/Payments/KlarnaPayment.res
+++ b/src/Payments/KlarnaPayment.res
@@ -25,11 +25,10 @@ let make = (~paymentType, ~countryProps, ~list: PaymentMethodsRecord.list) => {
open Utils
let clientCountryCode =
Country.country
- ->Js.Array2.find(item => item.countryName == country)
- ->Belt.Option.getWithDefault(Country.defaultTimeZone)
+ ->Array.find(item => item.countryName == country)
+ ->Option.getOr(Country.defaultTimeZone)
- let complete =
- email.value != "" && fullName.value != "" && email.isValid->Belt.Option.getWithDefault(false)
+ let complete = email.value != "" && fullName.value != "" && email.isValid->Option.getOr(false)
let empty = email.value == "" || fullName.value == ""
React.useEffect2(() => {
handlePostMessageEvents(~complete, ~empty, ~paymentType="klarna", ~loggerState)
@@ -41,7 +40,7 @@ let make = (~paymentType, ~countryProps, ~list: PaymentMethodsRecord.list) => {
}, [complete])
let submitCallback = React.useCallback3((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->Utils.getDictFromJson->ConfirmType.itemToObjMapper
let (connectors, _) = list->PaymentUtils.getConnectors(PayLater(Klarna(Redirect)))
let body = PaymentBody.klarnaRedirectionBody(
diff --git a/src/Payments/KlarnaPaymentLazy.res b/src/Payments/KlarnaPaymentLazy.res
index 36ee2f6a..ec0f2db4 100644
--- a/src/Payments/KlarnaPaymentLazy.res
+++ b/src/Payments/KlarnaPaymentLazy.res
@@ -3,7 +3,7 @@ open LazyUtils
type props = {
paymentType: CardThemeType.mode,
list: PaymentMethodsRecord.list,
- countryProps: (string, Js.Array2.t),
+ countryProps: (string, array),
}
let make: props => React.element = reactLazy(.() => import_("./KlarnaPayment.bs.js"))
diff --git a/src/Payments/KlarnaSDK.res b/src/Payments/KlarnaSDK.res
index 263eeffb..88f98cfd 100644
--- a/src/Payments/KlarnaSDK.res
+++ b/src/Payments/KlarnaSDK.res
@@ -15,7 +15,7 @@ type res = {
type some = {
init: (. token) => unit,
load: (. loadType, res => unit) => unit,
- authorize: (. loadType, Js.Json.t, res => unit) => unit,
+ authorize: (. loadType, JSON.t, res => unit) => unit,
loadPaymentReview: (. loadType, res => unit) => unit,
}
@@ -30,7 +30,7 @@ let make = (~sessionObj: SessionsType.token, ~list: PaymentMethodsRecord.list) =
let status = CommonHooks.useScript("https://x.klarnacdn.net/kp/lib/v1/api.js") // Klarna SDK script
let handleCloseLoader = () => {
- Utils.handlePostMessage([("fullscreen", false->Js.Json.boolean)])
+ Utils.handlePostMessage([("fullscreen", false->JSON.Encode.bool)])
Utils.postFailedSubmitResponse(
~errortype="confirm_payment_failed",
~message="An unknown error has occurred",
@@ -38,14 +38,14 @@ let make = (~sessionObj: SessionsType.token, ~list: PaymentMethodsRecord.list) =
}
let submitCallback = React.useCallback((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->Utils.getDictFromJson->ConfirmType.itemToObjMapper
if confirm.doSubmit {
Utils.handlePostMessage([
- ("fullscreen", true->Js.Json.boolean),
- ("param", "paymentloader"->Js.Json.string),
- ("iframeId", iframeId->Js.Json.string),
+ ("fullscreen", true->JSON.Encode.bool),
+ ("param", "paymentloader"->JSON.Encode.string),
+ ("iframeId", iframeId->JSON.Encode.string),
])
klarnaInit.authorize(.
{
@@ -53,7 +53,7 @@ let make = (~sessionObj: SessionsType.token, ~list: PaymentMethodsRecord.list) =
color_text: None,
payment_method_category: Some("klarna"),
},
- Js.Dict.empty()->Js.Json.object_,
+ Dict.make()->JSON.Encode.object,
(res: res) => {
let (connectors, _) = list->PaymentUtils.getConnectors(PayLater(Klarna(SDK)))
let body = PaymentBody.klarnaSDKbody(~token=res.authorization_token, ~connectors)
diff --git a/src/Payments/PayPal.res b/src/Payments/PayPal.res
index 9ed96166..901b736e 100644
--- a/src/Payments/PayPal.res
+++ b/src/Payments/PayPal.res
@@ -43,7 +43,7 @@ let make = (~list: PaymentMethodsRecord.list) => {
open Promise
OrcaUtils.makeOneClickHandlerPromise(sdkHandleOneClickConfirmPayment)
->then(result => {
- let result = result->Js.Json.decodeBoolean->Belt.Option.getWithDefault(false)
+ let result = result->JSON.Decode.bool->Option.getOr(false)
if result {
let (connectors, _) = list->PaymentUtils.getConnectors(Wallets(Paypal(Redirect)))
let body = PaymentBody.paypalRedirectionBody(~connectors)
diff --git a/src/Payments/PaymentMethodsRecord.res b/src/Payments/PaymentMethodsRecord.res
index e5c387f6..143e0413 100644
--- a/src/Payments/PaymentMethodsRecord.res
+++ b/src/Payments/PaymentMethodsRecord.res
@@ -524,8 +524,8 @@ let getPaymentMethodsFieldTypeFromString = (str, isBancontact) => {
}
let getPaymentMethodsFieldTypeFromDict = dict => {
- let keysArr = dict->Js.Dict.keys
- let key = keysArr->Belt.Array.get(0)->Belt.Option.getWithDefault("")
+ let keysArr = dict->Dict.keysToArray
+ let key = keysArr->Array.get(0)->Option.getOr("")
switch key {
| "user_currency" => {
let options = dict->Utils.getArrayValFromJsonDict("user_currency", "options")
@@ -533,14 +533,14 @@ let getPaymentMethodsFieldTypeFromDict = dict => {
}
| "user_address_country" => {
let options = dict->Utils.getArrayValFromJsonDict("user_address_country", "options")
- switch options->Belt.Array.get(0)->Belt.Option.getWithDefault("") {
+ switch options->Array.get(0)->Option.getOr("") {
| "" => None
- | "ALL" => AddressCountry(Country.country->Js.Array2.map(item => item.countryName))
+ | "ALL" => AddressCountry(Country.country->Array.map(item => item.countryName))
| _ =>
AddressCountry(
Country.country
- ->Js.Array2.filter(item => options->Js.Array2.includes(item.isoAlpha2))
- ->Js.Array2.map(item => item.countryName),
+ ->Array.filter(item => options->Array.includes(item.isoAlpha2))
+ ->Array.map(item => item.countryName),
)
}
}
@@ -551,19 +551,17 @@ let getPaymentMethodsFieldTypeFromDict = dict => {
let getFieldType = (dict, isBancontact) => {
let fieldClass =
dict
- ->Js.Dict.get("field_type")
- ->Belt.Option.getWithDefault(Js.Dict.empty()->Js.Json.object_)
- ->Js.Json.classify
+ ->Dict.get("field_type")
+ ->Option.getOr(Dict.make()->JSON.Encode.object)
+ ->JSON.Classify.classify
switch fieldClass {
- | JSONFalse
- | JSONTrue
- | JSONNull =>
+ | Bool(_)
+ | Null =>
None
- | JSONNumber(_val) => None
- | JSONArray(_arr) => None
- | JSONString(val) => val->getPaymentMethodsFieldTypeFromString(isBancontact)
-
- | JSONObject(dict) => dict->getPaymentMethodsFieldTypeFromDict
+ | Number(_val) => None
+ | Array(_arr) => None
+ | String(val) => val->getPaymentMethodsFieldTypeFromString(isBancontact)
+ | Object(dict) => dict->getPaymentMethodsFieldTypeFromDict
}
}
@@ -595,13 +593,13 @@ let getIsBillingField = requiredFieldType => {
}
let getIsAnyBillingDetailEmpty = (requiredFields: array) => {
- requiredFields->Js.Array2.reduce((acc, requiredField) => {
+ requiredFields->Array.reduce(false, (acc, requiredField) => {
if getIsBillingField(requiredField.field_type) {
requiredField.value === "" || acc
} else {
acc
}
- }, false)
+ })
}
let getPaymentMethodFields = (
@@ -612,7 +610,7 @@ let getPaymentMethodFields = (
(),
) => {
let isAnyBillingDetailEmpty = requiredFields->getIsAnyBillingDetailEmpty
- let requiredFieldsArr = requiredFields->Js.Array2.map(requiredField => {
+ let requiredFieldsArr = requiredFields->Array.map(requiredField => {
let isShowBillingField = getIsBillingField(requiredField.field_type) && isAnyBillingDetailEmpty
if requiredField.value === "" || isShowBillingField {
if (
@@ -628,11 +626,11 @@ let getPaymentMethodFields = (
None
}
})
- requiredFieldsArr->Js.Array2.concat(
+ requiredFieldsArr->Array.concat(
(
paymentMethodsFields
- ->Js.Array2.find(x => x.paymentMethodName === paymentMethod)
- ->Belt.Option.getWithDefault({
+ ->Array.find(x => x.paymentMethodName === paymentMethod)
+ ->Option.getOr({
paymentMethodName: "",
fields: [],
icon: Some(icon("", ~size=19, ~width=25)),
@@ -646,10 +644,10 @@ let getPaymentMethodFields = (
let getPaymentDetails = (arr: array) => {
let finalArr = []
arr
- ->Js.Array2.map(item => {
- let optionalVal = paymentMethodsFields->Js.Array2.find(i => i.paymentMethodName == item)
+ ->Array.map(item => {
+ let optionalVal = paymentMethodsFields->Array.find(i => i.paymentMethodName == item)
switch optionalVal {
- | Some(val) => finalArr->Js.Array2.push(val)->ignore
+ | Some(val) => finalArr->Array.push(val)->ignore
| None => ()
}
})
@@ -774,11 +772,11 @@ let getPaymentExperienceType = str => {
let getPaymentExperience = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.keepMap(Js.Json.decodeObject)
- ->Js.Array2.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->Belt.Array.keepMap(JSON.Decode.object)
+ ->Array.map(json => {
{
payment_experience_type: getString(
json,
@@ -793,15 +791,15 @@ let getPaymentExperience = (dict, str) => {
let getSurchargeDetails = dict => {
let surchargDetails =
dict
- ->Js.Dict.get("surcharge_details")
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
+ ->Dict.get("surcharge_details")
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
let displayTotalSurchargeAmount =
surchargDetails
- ->Js.Dict.get("display_total_surcharge_amount")
- ->Belt.Option.flatMap(Js.Json.decodeNumber)
- ->Belt.Option.getWithDefault(0.0)
+ ->Dict.get("display_total_surcharge_amount")
+ ->Option.flatMap(JSON.Decode.float)
+ ->Option.getOr(0.0)
if displayTotalSurchargeAmount !== 0.0 {
Some({
@@ -814,11 +812,11 @@ let getSurchargeDetails = dict => {
let getCardNetworks = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.keepMap(Js.Json.decodeObject)
- ->Js.Array2.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->Belt.Array.keepMap(JSON.Decode.object)
+ ->Array.map(json => {
{
card_network: getString(json, "card_network", "")->CardUtils.cardType,
eligible_connectors: getStrArray(json, "eligible_connectors"),
@@ -829,34 +827,34 @@ let getCardNetworks = (dict, str) => {
let getBankNames = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.keepMap(Js.Json.decodeObject)
- ->Js.Array2.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->Belt.Array.keepMap(JSON.Decode.object)
+ ->Array.map(json => {
getStrArray(json, "bank_name")
})
- ->Js.Array2.reduce((acc, item) => {
- item->Js.Array2.forEach(obj => acc->Js.Array2.push(obj)->ignore)
+ ->Array.reduce([], (acc, item) => {
+ item->Array.forEach(obj => acc->Array.push(obj)->ignore)
acc
- }, [])
+ })
}
let getAchConnectors = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
->getStrArray("elligible_connectors")
}
let getDynamicFieldsFromJsonDict = (dict, isBancontact) => {
let requiredFields =
- Utils.getJsonFromDict(dict, "required_fields", Js.Json.null)
+ Utils.getJsonFromDict(dict, "required_fields", JSON.Encode.null)
->Utils.getDictFromJson
- ->Js.Dict.values
+ ->Dict.valuesToArray
- requiredFields->Js.Array2.map(requiredField => {
+ requiredFields->Array.map(requiredField => {
let requiredFieldsDict = requiredField->Utils.getDictFromJson
{
required_field: requiredFieldsDict->Utils.getString("required_field", ""),
@@ -869,11 +867,11 @@ let getDynamicFieldsFromJsonDict = (dict, isBancontact) => {
let getPaymentMethodTypes = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.keepMap(Js.Json.decodeObject)
- ->Js.Array2.map(jsonDict => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->Belt.Array.keepMap(JSON.Decode.object)
+ ->Array.map(jsonDict => {
let paymentMethodType = getString(jsonDict, "payment_method_type", "")
{
payment_method_type: paymentMethodType,
@@ -892,11 +890,11 @@ let getPaymentMethodTypes = (dict, str) => {
let getMethodsArr = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.keepMap(Js.Json.decodeObject)
- ->Js.Array2.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->Belt.Array.keepMap(JSON.Decode.object)
+ ->Array.map(json => {
{
payment_method: getString(json, "payment_method", ""),
payment_method_types: getPaymentMethodTypes(json, "payment_method_types"),
@@ -906,9 +904,9 @@ let getMethodsArr = (dict, str) => {
let getOptionalMandateType = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
amount: getInt(json, "amount", 0),
currency: getString(json, "currency", ""),
@@ -918,9 +916,9 @@ let getOptionalMandateType = (dict, str) => {
let getMandate = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
single_use: getOptionalMandateType(json, "single_use"),
multi_use: getOptionalMandateType(json, "multi_use"),
@@ -958,61 +956,59 @@ let itemToObjMapper = dict => {
let buildFromPaymentList = (plist: list) => {
let paymentMethodArr = plist.payment_methods
- let x =
- paymentMethodArr
- ->Js.Array2.map(paymentMethodObject => {
- let methodType = paymentMethodObject.payment_method
- let handleUserError = methodType === "wallet"
- paymentMethodObject.payment_method_types->Js.Array2.map(individualPaymentMethod => {
- let paymentMethodName = individualPaymentMethod.payment_method_type
- let bankNames = individualPaymentMethod.bank_names
- let paymentExperience = individualPaymentMethod.payment_experience->Js.Array2.map(
- experience => {
- (experience.payment_experience_type, experience.eligible_connectors)
- },
- )
- {
+
+ paymentMethodArr
+ ->Array.map(paymentMethodObject => {
+ let methodType = paymentMethodObject.payment_method
+ let handleUserError = methodType === "wallet"
+ paymentMethodObject.payment_method_types->Array.map(individualPaymentMethod => {
+ let paymentMethodName = individualPaymentMethod.payment_method_type
+ let bankNames = individualPaymentMethod.bank_names
+ let paymentExperience = individualPaymentMethod.payment_experience->Array.map(
+ experience => {
+ (experience.payment_experience_type, experience.eligible_connectors)
+ },
+ )
+ {
+ paymentMethodName,
+ fields: getPaymentMethodFields(
paymentMethodName,
- fields: getPaymentMethodFields(
- paymentMethodName,
- individualPaymentMethod.required_fields,
- (),
- ),
- paymentFlow: paymentExperience,
- handleUserError,
- methodType,
- bankNames,
- }
- })
+ individualPaymentMethod.required_fields,
+ (),
+ ),
+ paymentFlow: paymentExperience,
+ handleUserError,
+ methodType,
+ bankNames,
+ }
})
- ->Js.Array2.reduce((acc, item) => {
- item->Js.Array2.forEach(obj => acc->Js.Array2.push(obj)->ignore)
- acc
- }, [])
-
- x
+ })
+ ->Array.reduce([], (acc, item) => {
+ item->Array.forEach(obj => acc->Array.push(obj)->ignore)
+ acc
+ })
}
let getPaymentMethodTypeFromList = (~list: list, ~paymentMethod, ~paymentMethodType) => {
(
list.payment_methods
- ->Js.Array2.find(item => {
+ ->Array.find(item => {
item.payment_method == paymentMethod
})
- ->Belt.Option.getWithDefault({
+ ->Option.getOr({
payment_method: "card",
payment_method_types: [],
})
- ).payment_method_types->Js.Array2.find(item => {
+ ).payment_method_types->Array.find(item => {
item.payment_method_type == paymentMethodType
})
}
let getCardNetwork = (~paymentMethodType, ~cardBrand) => {
paymentMethodType.card_networks
- ->Js.Array2.filter(cardNetwork => cardNetwork.card_network === cardBrand)
- ->Belt.Array.get(0)
- ->Belt.Option.getWithDefault(defaultCardNetworks)
+ ->Array.filter(cardNetwork => cardNetwork.card_network === cardBrand)
+ ->Array.get(0)
+ ->Option.getOr(defaultCardNetworks)
}
let paymentMethodFieldToStrMapper = (field: paymentMethodsFields) => {
diff --git a/src/Payments/PaymentMethodsWrapper.res b/src/Payments/PaymentMethodsWrapper.res
index 551a3d29..71a6027a 100644
--- a/src/Payments/PaymentMethodsWrapper.res
+++ b/src/Payments/PaymentMethodsWrapper.res
@@ -17,31 +17,29 @@ let make = (
let optionPaymentMethodDetails =
list
->PaymentMethodsRecord.buildFromPaymentList
- ->Js.Array2.find(x =>
+ ->Array.find(x =>
x.paymentMethodName ===
PaymentUtils.getPaymentMethodName(~paymentMethodType=x.methodType, ~paymentMethodName)
)
let paymentMethodDetails =
- optionPaymentMethodDetails->Belt.Option.getWithDefault(
- PaymentMethodsRecord.defaultPaymentMethodContent,
- )
+ optionPaymentMethodDetails->Option.getOr(PaymentMethodsRecord.defaultPaymentMethodContent)
let paymentFlow =
paymentMethodDetails.paymentFlow
- ->Belt.Array.get(0)
- ->Belt.Option.flatMap(((flow, _connector)) => {
+ ->Array.get(0)
+ ->Option.flatMap(((flow, _connector)) => {
Some(flow)
})
- ->Belt.Option.getWithDefault(RedirectToURL)
+ ->Option.getOr(RedirectToURL)
let (fullName, _) = Recoil.useLoggedRecoilState(userFullName, "fullName", loggerState)
let (email, _) = Recoil.useLoggedRecoilState(userEmailAddress, "email", loggerState)
let (currency, _) = Recoil.useLoggedRecoilState(userCurrency, "currency", loggerState)
let (country, _) = Recoil.useRecoilState(userCountry)
let (selectedBank, _) = Recoil.useRecoilState(userBank)
let setFieldComplete = Recoil.useSetRecoilState(fieldsComplete)
- let cleanBlik = str => str->Js.String2.replaceByRe(%re("/-/g"), "")
- let cleanPhoneNumber = str => str->Js.String2.replaceByRe(%re("/\s/g"), "")
+ let cleanBlik = str => str->String.replaceRegExp(%re("/-/g"), "")
+ let cleanPhoneNumber = str => str->String.replaceRegExp(%re("/\s/g"), "")
- let (requiredFieldsBody, setRequiredFieldsBody) = React.useState(_ => Js.Dict.empty())
+ let (requiredFieldsBody, setRequiredFieldsBody) = React.useState(_ => Dict.make())
let areRequiredFieldsValid = Recoil.useRecoilValueFromAtom(RecoilAtoms.areRequiredFieldsValid)
let areRequiredFieldsEmpty = Recoil.useRecoilValueFromAtom(RecoilAtoms.areRequiredFieldsEmpty)
@@ -65,21 +63,21 @@ let make = (
}, (empty, complete))
let submitCallback = React.useCallback7((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->getDictFromJson->ConfirmType.itemToObjMapper
if confirm.doSubmit {
if complete {
let countryCode =
Country.getCountry(paymentMethodName)
- ->Js.Array2.filter(item => item.countryName == country)
- ->Belt.Array.get(0)
- ->Belt.Option.getWithDefault(Country.defaultTimeZone)
+ ->Array.filter(item => item.countryName == country)
+ ->Array.get(0)
+ ->Option.getOr(Country.defaultTimeZone)
let bank =
Bank.getBanks(paymentMethodName)
- ->Js.Array2.filter(item => item.displayName == selectedBank)
- ->Belt.Array.get(0)
- ->Belt.Option.getWithDefault(Bank.defaultBank)
+ ->Array.filter(item => item.displayName == selectedBank)
+ ->Array.get(0)
+ ->Option.getOr(Bank.defaultBank)
intent(
~bodyArr=PaymentBody.getPaymentBody(
~paymentMethod=paymentMethodName,
@@ -92,8 +90,8 @@ let make = (
~paymentExperience=paymentFlow,
~currency,
)
- ->Js.Dict.fromArray
- ->Js.Json.object_
+ ->Dict.fromArray
+ ->JSON.Encode.object
->OrcaUtils.flattenObject(true)
->OrcaUtils.mergeTwoFlattenedJsonDicts(requiredFieldsBody)
->OrcaUtils.getArrayOfTupleFromDict,
diff --git a/src/Payments/PaymentRequestButtonElement.res b/src/Payments/PaymentRequestButtonElement.res
index 798d6bdb..e1f034b2 100644
--- a/src/Payments/PaymentRequestButtonElement.res
+++ b/src/Payments/PaymentRequestButtonElement.res
@@ -59,7 +59,7 @@ let make = (~sessions, ~walletOptions, ~list: PaymentMethodsRecord.list) => {
{walletOptions
- ->Js.Array2.mapi((item, i) => {
+ ->Array.mapWithIndex((item, i) => {
Belt.Int.toString}-request-button`}>
} key={i->Belt.Int.toString}>
diff --git a/src/Payments/PaypalSDK.res b/src/Payments/PaypalSDK.res
index 42601cb4..8c29274c 100644
--- a/src/Payments/PaypalSDK.res
+++ b/src/Payments/PaypalSDK.res
@@ -9,11 +9,9 @@ let make = (~sessionObj: SessionsType.token, ~list: PaymentMethodsRecord.list) =
let token = sessionObj.token
let intent = PaymentHelpers.usePaymentIntent(Some(loggerState), Paypal)
let checkoutScript =
- Window.document(Window.window)
- ->Window.getElementById("braintree-checkout")
- ->Js.Nullable.toOption
+ Window.document(Window.window)->Window.getElementById("braintree-checkout")->Nullable.toOption
let clientScript =
- Window.document(Window.window)->Window.getElementById("braintree-client")->Js.Nullable.toOption
+ Window.document(Window.window)->Window.getElementById("braintree-client")->Nullable.toOption
let options = Recoil.useRecoilValueFromAtom(RecoilAtoms.optionAtom)
let (_, _, buttonType) = options.wallets.style.type_
@@ -36,7 +34,7 @@ let make = (~sessionObj: SessionsType.token, ~list: PaymentMethodsRecord.list) =
| _ => 48
},
}
- let handleCloseLoader = () => Utils.handlePostMessage([("fullscreen", false->Js.Json.boolean)])
+ let handleCloseLoader = () => Utils.handlePostMessage([("fullscreen", false->JSON.Encode.bool)])
let isGuestCustomer = UtilityHooks.useIsGuestCustomer()
let loadPaypalSdk = () => {
loggerState.setLogInfo(
@@ -48,17 +46,17 @@ let make = (~sessionObj: SessionsType.token, ~list: PaymentMethodsRecord.list) =
open Promise
OrcaUtils.makeOneClickHandlerPromise(sdkHandleOneClickConfirmPayment)
->then(result => {
- let result = result->Js.Json.decodeBoolean->Belt.Option.getWithDefault(false)
+ let result = result->JSON.Decode.bool->Option.getOr(false)
if result {
braintree.client.create(.{authorization: token}, (clientErr, clientInstance) => {
if clientErr {
- Js.Console.error2("Error creating client", clientErr)
+ Console.error2("Error creating client", clientErr)
}
braintree.paypalCheckout.create(.
{client: clientInstance},
(paypalCheckoutErr, paypalCheckoutInstance) => {
- switch paypalCheckoutErr->Js.Nullable.toOption {
- | Some(val) => Js.Console.warn(`INTEGRATION ERROR: ${val.message}`)
+ switch paypalCheckoutErr->Nullable.toOption {
+ | Some(val) => Console.warn(`INTEGRATION ERROR: ${val.message}`)
| None => ()
}
paypalCheckoutInstance.loadPayPalSDK(.
@@ -72,9 +70,9 @@ let make = (~sessionObj: SessionsType.token, ~list: PaymentMethodsRecord.list) =
createBillingAgreement: () => {
//Paypal Clicked
Utils.handlePostMessage([
- ("fullscreen", true->Js.Json.boolean),
- ("param", "paymentloader"->Js.Json.string),
- ("iframeId", iframeId->Js.Json.string),
+ ("fullscreen", true->JSON.Encode.bool),
+ ("param", "paymentloader"->JSON.Encode.string),
+ ("iframeId", iframeId->JSON.Encode.string),
])
options.readOnly
? ()
@@ -141,10 +139,10 @@ let make = (~sessionObj: SessionsType.token, ~list: PaymentMethodsRecord.list) =
try {
switch (checkoutScript, clientScript) {
| (Some(_), Some(_)) => loadPaypalSdk()
- | (_, _) => Utils.logInfo(Js.log("Error loading Paypal"))
+ | (_, _) => Utils.logInfo(Console.log("Error loading Paypal"))
}
} catch {
- | _err => Utils.logInfo(Js.log("Error loading Paypal"))
+ | _err => Utils.logInfo(Console.log("Error loading Paypal"))
}
}
None
diff --git a/src/Payments/PreMountLoader.res b/src/Payments/PreMountLoader.res
index b1545717..214e2ecd 100644
--- a/src/Payments/PreMountLoader.res
+++ b/src/Payments/PreMountLoader.res
@@ -44,11 +44,11 @@ let make = (~sessionId as _, ~publishableKey as _, ~clientSecret as _, ~endpoint
// // open Promise
// // promise
// // ->then(res => {
- // // handlePostMessage([("response", res), ("data", key->Js.Json.string)])
+ // // handlePostMessage([("response", res), ("data", key->JSON.Encode.string)])
// // resolve()
// // })
// // ->catch(_err => {
- // // handlePostMessage([("response", Js.Json.null), ("data", key->Js.Json.string)])
+ // // handlePostMessage([("response", JSON.Encode.null), ("data", key->JSON.Encode.string)])
// // resolve()
// // })
// // ->ignore
@@ -57,21 +57,21 @@ let make = (~sessionId as _, ~publishableKey as _, ~clientSecret as _, ~endpoint
// // React.useEffect0(() => {
// // let handle = (ev: Window.event) => {
// // let json = try {
- // // ev.data->Js.Json.parseExn
+ // // ev.data->JSON.parseExn
// // } catch {
- // // | _ => Js.Json.null
+ // // | _ => JSON.Encode.null
// // }
// // let dict = json->Utils.getDictFromJson
- // // if dict->Js.Dict.get("sendPaymentMethodsResponse")->Belt.Option.isSome {
+ // // if dict->Dict.get("sendPaymentMethodsResponse")->Option.isSome {
// // paymentMethodsResponse->sendPromiseData("payment_methods")
- // // } else if dict->Js.Dict.get("sendCustomerPaymentMethodsResponse")->Belt.Option.isSome {
+ // // } else if dict->Dict.get("sendCustomerPaymentMethodsResponse")->Option.isSome {
// // customerPaymentMethodsResponse->sendPromiseData("customer_payment_methods")
- // // } else if dict->Js.Dict.get("sendSessionTokensResponse")->Belt.Option.isSome {
+ // // } else if dict->Dict.get("sendSessionTokensResponse")->Option.isSome {
// // sessionTokensResponse->sendPromiseData("session_tokens")
// // }
// // }
// // Window.addEventListener("message", handle)
- // // handlePostMessage([("preMountLoaderInitCallback", true->Js.Json.boolean)])
+ // // handlePostMessage([("preMountLoaderInitCallback", true->JSON.Encode.bool)])
// // Some(
// // () => {
// // Window.removeEventListener("message", handle)
diff --git a/src/Payments/QRCodeDisplay.res b/src/Payments/QRCodeDisplay.res
index bee54fac..fcf48878 100644
--- a/src/Payments/QRCodeDisplay.res
+++ b/src/Payments/QRCodeDisplay.res
@@ -1,10 +1,10 @@
open Utils
let getKeyValue = (json, str) => {
json
- ->Js.Dict.get(str)
- ->Belt.Option.getWithDefault(Js.Dict.empty()->Js.Json.object_)
- ->Js.Json.decodeString
- ->Belt.Option.getWithDefault("")
+ ->Dict.get(str)
+ ->Option.getOr(Dict.make()->JSON.Encode.object)
+ ->JSON.Decode.string
+ ->Option.getOr("")
}
@react.component
@@ -19,14 +19,13 @@ let make = () => {
let switchToCustomPod = Recoil.useRecoilValueFromAtom(RecoilAtoms.switchToCustomPod)
React.useEffect0(() => {
- handlePostMessage([("iframeMountedCallback", true->Js.Json.boolean)])
+ handlePostMessage([("iframeMountedCallback", true->JSON.Encode.bool)])
let handle = (ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let dict = json->Utils.getDictFromJson
- if dict->Js.Dict.get("fullScreenIframeMounted")->Belt.Option.isSome {
+ if dict->Dict.get("fullScreenIframeMounted")->Option.isSome {
let metadata = dict->getJsonObjectFromDict("metadata")
- let metaDataDict =
- metadata->Js.Json.decodeObject->Belt.Option.getWithDefault(Js.Dict.empty())
+ let metaDataDict = metadata->JSON.Decode.object->Option.getOr(Dict.make())
let qrData = metaDataDict->getString("qrData", "")
setQrCode(_ => qrData)
let paymentIntentId = metaDataDict->getString("paymentIntentId", "")
@@ -34,30 +33,27 @@ let make = () => {
let headersDict =
metaDataDict
->getJsonObjectFromDict("headers")
- ->Js.Json.decodeObject
- ->Belt.Option.getWithDefault(Js.Dict.empty())
- let headers = Js.Dict.empty()
+ ->JSON.Decode.object
+ ->Option.getOr(Dict.make())
+ let headers = Dict.make()
setReturnUrl(_ => metadata->getDictFromJson->getString("url", ""))
headersDict
- ->Js.Dict.entries
- ->Js.Array2.forEach(entries => {
+ ->Dict.toArray
+ ->Array.forEach(entries => {
let (x, val) = entries
- Js.Dict.set(headers, x, val->Js.Json.decodeString->Belt.Option.getWithDefault(""))
+ Dict.set(headers, x, val->JSON.Decode.string->Option.getOr(""))
})
let expiryTime =
- metaDataDict
- ->getString("expiryTime", "")
- ->Belt.Float.fromString
- ->Belt.Option.getWithDefault(0.0)
- let timeExpiry = expiryTime -. Js.Date.now()
+ metaDataDict->getString("expiryTime", "")->Belt.Float.fromString->Option.getOr(0.0)
+ let timeExpiry = expiryTime -. Date.now()
if timeExpiry > 0.0 && timeExpiry < 900000.0 {
setExpiryTime(_ => timeExpiry)
}
open Promise
- setHeaders(_ => headers->Js.Dict.entries)
+ setHeaders(_ => headers->Dict.toArray)
PaymentHelpers.pollRetrievePaymentIntent(
paymentIntentId,
- headers->Js.Dict.entries,
+ headers->Dict.toArray,
~optLogger=Some(logger),
~switchToCustomPod,
)
@@ -76,12 +72,12 @@ let make = () => {
if expiryTime < 1000.0 {
Modal.close(setOpenModal)
}
- let intervalID = Js.Global.setInterval(() => {
+ let intervalID = setInterval(() => {
setExpiryTime(prev => prev -. 1000.0)
}, 1000)
Some(
() => {
- Js.Global.clearInterval(intervalID)
+ clearInterval(intervalID)
},
)
}, [expiryTime])
@@ -95,7 +91,7 @@ let make = () => {
~switchToCustomPod,
)
->then(json => {
- let dict = json->Js.Json.decodeObject->Belt.Option.getWithDefault(Js.Dict.empty())
+ let dict = json->JSON.Decode.object->Option.getOr(Dict.make())
let status = dict->getString("status", "")
if status === "succeeded" {
@@ -115,11 +111,11 @@ let make = () => {
})
->then(_json => {
Modal.close(setOpenModal)
- resolve(Js.Nullable.null)
+ resolve(Nullable.null)
})
->catch(e => {
- Js.log2("Retrieve Failed", e)
- resolve(Js.Nullable.null)
+ Console.log2("Retrieve Failed", e)
+ resolve(Nullable.null)
})
->ignore
}
@@ -127,8 +123,8 @@ let make = () => {
let expiryString = React.useMemo1(() => {
let minutes = (expiryTime /. 60000.0)->Belt.Float.toInt->Belt.Int.toString
let seconds =
- mod(expiryTime->Belt.Float.toInt, 60000)->Belt.Int.toString->Js.String2.slice(~from=0, ~to_=2)
- let seconds = seconds->Js.String2.length == 1 ? `${seconds}0` : seconds
+ mod(expiryTime->Belt.Float.toInt, 60000)->Belt.Int.toString->String.slice(~start=0, ~end=2)
+ let seconds = seconds->String.length == 1 ? `${seconds}0` : seconds
`${minutes}:${seconds}`
}, [expiryTime])
diff --git a/src/Payments/SepaBankDebit.res b/src/Payments/SepaBankDebit.res
index e8fd16e8..341a056b 100644
--- a/src/Payments/SepaBankDebit.res
+++ b/src/Payments/SepaBankDebit.res
@@ -24,7 +24,7 @@ let make = (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list)
let complete =
email.value != "" &&
fullName.value != "" &&
- email.isValid->Belt.Option.getWithDefault(false) &&
+ email.isValid->Option.getOr(false) &&
switch modalData {
| Some(val: ACHTypes.data) => val.iban !== "" || val.accountHolderName !== ""
| None => false
@@ -48,7 +48,7 @@ let make = (~paymentType: CardThemeType.mode, ~list: PaymentMethodsRecord.list)
}, [complete])
let submitCallback = React.useCallback3((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->Utils.getDictFromJson->ConfirmType.itemToObjMapper
if confirm.doSubmit {
diff --git a/src/Payments/SepaBankTransfer.res b/src/Payments/SepaBankTransfer.res
index 4563e189..fb7f1cc7 100644
--- a/src/Payments/SepaBankTransfer.res
+++ b/src/Payments/SepaBankTransfer.res
@@ -23,10 +23,9 @@ let make = (
let setComplete = Recoil.useSetRecoilState(fieldsComplete)
let clientCountryCode =
Country.country
- ->Js.Array2.find(item => item.countryName == country)
- ->Belt.Option.getWithDefault(Country.defaultTimeZone)
- let complete =
- email.value != "" && fullName.value != "" && email.isValid->Belt.Option.getWithDefault(false)
+ ->Array.find(item => item.countryName == country)
+ ->Option.getOr(Country.defaultTimeZone)
+ let complete = email.value != "" && fullName.value != "" && email.isValid->Option.getOr(false)
let empty = email.value == "" || fullName.value == ""
React.useEffect2(() => {
@@ -39,7 +38,7 @@ let make = (
}, [complete])
let submitCallback = React.useCallback3((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->getDictFromJson->ConfirmType.itemToObjMapper
if confirm.doSubmit {
if complete {
diff --git a/src/Payments/VoucherDisplay.res b/src/Payments/VoucherDisplay.res
index 2a3d6b43..295bda8b 100644
--- a/src/Payments/VoucherDisplay.res
+++ b/src/Payments/VoucherDisplay.res
@@ -8,12 +8,12 @@ let make = () => {
let logger = Recoil.useRecoilValueFromAtom(RecoilAtoms.loggerAtom)
let (downloadCounter, setDownloadCounter) = React.useState(_ => 0)
let (paymentMethod, setPaymentMethod) = React.useState(_ => "")
- let (paymentIntent, setPaymentIntent) = React.useState(_ => Js.Json.null)
+ let (paymentIntent, setPaymentIntent) = React.useState(_ => JSON.Encode.null)
let (loader, setLoader) = React.useState(_ => true)
- let linkRef = React.useRef(Js.Nullable.null)
+ let linkRef = React.useRef(Nullable.null)
React.useEffect1(() => {
- switch linkRef.current->Js.Nullable.toOption {
+ switch linkRef.current->Nullable.toOption {
| Some(link) => link->Window.click
| None => ()
}
@@ -21,14 +21,13 @@ let make = () => {
}, [loader])
React.useEffect0(() => {
- handlePostMessage([("iframeMountedCallback", true->Js.Json.boolean)])
+ handlePostMessage([("iframeMountedCallback", true->JSON.Encode.bool)])
let handle = (ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let dict = json->Utils.getDictFromJson
- if dict->Js.Dict.get("fullScreenIframeMounted")->Belt.Option.isSome {
+ if dict->Dict.get("fullScreenIframeMounted")->Option.isSome {
let metadata = dict->getJsonObjectFromDict("metadata")
- let metaDataDict =
- metadata->Js.Json.decodeObject->Belt.Option.getWithDefault(Js.Dict.empty())
+ let metaDataDict = metadata->JSON.Decode.object->Option.getOr(Dict.make())
setReturnUrl(_ => metaDataDict->getString("returnUrl", ""))
setDownloadUrl(_ => metaDataDict->getString("voucherUrl", ""))
setReference(_ => metaDataDict->getString("reference", ""))
@@ -62,7 +61,7 @@ let make = () => {
setDownloadCounter(c => c + 1)
LoggerUtils.handleLogging(
~optLogger=Some(logger),
- ~value=downloadCounter->Js.Int.toString,
+ ~value=downloadCounter->Int.toString,
~eventName=DISPLAY_VOUCHER,
~paymentMethod,
(),
diff --git a/src/RenderPaymentMethods.res b/src/RenderPaymentMethods.res
index cee83903..4e207cb3 100644
--- a/src/RenderPaymentMethods.res
+++ b/src/RenderPaymentMethods.res
@@ -52,7 +52,7 @@ let make = (
) = cvcProps
let blur = blurState ? "blur(2px)" : ""
- let frameRef = React.useRef(Js.Nullable.null)
+ let frameRef = React.useRef(Nullable.null)
}>
+ fallback={
+
+ }>
| Payment =>
}>
+ fallback={
+
+ }>
| CardNumberElement =>
diff --git a/src/ResizeObserver.res b/src/ResizeObserver.res
index e147d4f8..e823f848 100644
--- a/src/ResizeObserver.res
+++ b/src/ResizeObserver.res
@@ -4,4 +4,4 @@ type dimensions = {
width: float,
}
type ele = {contentRect: dimensions}
-@new external newResizerObserver: (Js.Array2.t
=> unit) => observer = "ResizeObserver"
+@new external newResizerObserver: (array => unit) => observer = "ResizeObserver"
diff --git a/src/SingleLineCardPayment.res b/src/SingleLineCardPayment.res
index 434dad6f..8de6123c 100644
--- a/src/SingleLineCardPayment.res
+++ b/src/SingleLineCardPayment.res
@@ -70,26 +70,26 @@ let make = (
() => displayPincode ? ("block", "animate-slideLeft") : ("none", "animate-slideRight "),
[displayPincode],
)
- let checkLengthIsZero = item => Js.String2.length(item) == 0
+ let checkLengthIsZero = item => String.length(item) == 0
let checkValueIsValid = item => item == "valid"
let checkValueIsInvalid = item => item == "invalid"
let (cardEmpty, cardComplete, cardInvalid, cardFocused) = React.useMemo4(() => {
- let isCardDetailsEmpty = Js.Array2.every(
+ let isCardDetailsEmpty = Array.every(
[cardNumber, cardExpiry, cvcNumber, zipCode],
checkLengthIsZero,
)
? `${options.classes.base} ${options.classes.empty} `
: options.classes.base
- let isCardDetailsValid = Js.Array2.every(
+ let isCardDetailsValid = Array.every(
[isCardValidValue, isExpiryValidValue, isCVCValidValue, isZipValidValue],
checkValueIsValid,
)
? ` ${options.classes.complete} `
: ``
- let isCardDetailsInvalid = Js.Array2.some(
+ let isCardDetailsInvalid = Array.some(
[isCardValidValue, isExpiryValidValue, isCVCValidValue, isZipValidValue],
checkValueIsInvalid,
)
@@ -101,12 +101,12 @@ let make = (
(isCardDetailsEmpty, isCardDetailsValid, isCardDetailsInvalid, isCardDetailsFocused)
}, (cardProps, expiryProps, cvcProps, zipProps))
- let concatString = Js.Array.joinWith("", [cardEmpty, cardComplete, cardInvalid, cardFocused])
+ let concatString = Array.joinWith([cardEmpty, cardComplete, cardInvalid, cardFocused], "")
React.useEffect1(() => {
Utils.handlePostMessage([
- ("id", iframeId->Js.Json.string),
- ("concatedString", concatString->Js.Json.string),
+ ("id", iframeId->JSON.Encode.string),
+ ("concatedString", concatString->JSON.Encode.string),
])
None
}, [concatString])
diff --git a/src/Types/ApplePayTypes.res b/src/Types/ApplePayTypes.res
index 21979354..b32628a1 100644
--- a/src/Types/ApplePayTypes.res
+++ b/src/Types/ApplePayTypes.res
@@ -1,5 +1,5 @@
-type token = {paymentData: Js.Json.t}
-type paymentResult = {token: Js.Json.t}
+type token = {paymentData: JSON.t}
+type paymentResult = {token: JSON.t}
type event = {validationURL: string, payment: paymentResult}
type innerSession
type session = {
@@ -8,9 +8,9 @@ type session = {
mutable oncancel: unit => unit,
canMakePayments: (. unit) => bool,
mutable onvalidatemerchant: event => unit,
- completeMerchantValidation: (. Js.Json.t) => unit,
+ completeMerchantValidation: (. JSON.t) => unit,
mutable onpaymentauthorized: event => unit,
- completePayment: (. Js.Json.t) => unit,
+ completePayment: (. JSON.t) => unit,
\"STATUS_SUCCESS": string,
\"STATUS_FAILURE": string,
}
@@ -19,9 +19,9 @@ type window = {\"ApplePaySession": applePaySession}
@val external window: window = "window"
-@scope("window") @val external sessionForApplePay: Js.Nullable.t = "ApplePaySession"
+@scope("window") @val external sessionForApplePay: Nullable.t = "ApplePaySession"
-@new external applePaySession: (int, Js.Json.t) => session = "ApplePaySession"
+@new external applePaySession: (int, JSON.t) => session = "ApplePaySession"
@deriving(abstract)
type total = {
@@ -41,7 +41,7 @@ type paymentRequestData = {
@optional merchantIdentifier: string,
}
-let jsonToPaymentRequestDataType: Js.Dict.t => paymentRequestData = jsonDict => {
+let jsonToPaymentRequestDataType: Dict.t => paymentRequestData = jsonDict => {
let clientTimeZone = CardUtils.dateTimeFormat(.).resolvedOptions(.).timeZone
let clientCountry = Utils.getClientCountry(clientTimeZone)
let defaultCountryCode = clientCountry.isoAlpha2
diff --git a/src/Types/CardThemeType.res b/src/Types/CardThemeType.res
index ccaa1c05..40d7b052 100644
--- a/src/Types/CardThemeType.res
+++ b/src/Types/CardThemeType.res
@@ -1,5 +1,5 @@
type theme = Default | Brutal | Midnight | Soft | Charcoal | NONE
-external toJson: 'a => Js.Json.t = "%identity"
+external toJson: 'a => JSON.t = "%identity"
@val external navigator: 'a = "navigator"
type showLoader = Auto | Always | Never
@@ -64,7 +64,7 @@ type appearance = {
theme: theme,
componentType: string,
variables: themeClass,
- rules: Js.Json.t,
+ rules: JSON.t,
labels: label,
}
type fonts = {
diff --git a/src/Types/ConfirmType.res b/src/Types/ConfirmType.res
index 6b53f786..6c16e6bc 100644
--- a/src/Types/ConfirmType.res
+++ b/src/Types/ConfirmType.res
@@ -15,15 +15,15 @@ let defaultConfirm = {
}
let getConfirmParams = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
return_url: getString(json, "return_url", ""),
publishableKey: getString(json, "publishableKey", ""),
}
})
- ->Belt.Option.getWithDefault(defaultConfirm)
+ ->Option.getOr(defaultConfirm)
}
let itemToObjMapper = dict => {
diff --git a/src/Types/ElementType.res b/src/Types/ElementType.res
index cd9f84c5..d287bf79 100644
--- a/src/Types/ElementType.res
+++ b/src/Types/ElementType.res
@@ -40,10 +40,10 @@ type paymentRequestButtonStyle = {
height: string,
}
type style = {
- base: Js.Json.t,
- complete: Js.Json.t,
- empty: Js.Json.t,
- invalid: Js.Json.t,
+ base: JSON.t,
+ complete: JSON.t,
+ empty: JSON.t,
+ invalid: JSON.t,
paymentRequestButton: paymentRequestButtonStyle,
}
type options = {
@@ -106,10 +106,10 @@ let defaultPaymentRequestButton = {
height: "",
}
let defaultStyle = {
- base: Js.Dict.empty()->Js.Json.object_,
- complete: Js.Dict.empty()->Js.Json.object_,
- empty: Js.Dict.empty()->Js.Json.object_,
- invalid: Js.Dict.empty()->Js.Json.object_,
+ base: Dict.make()->JSON.Encode.object,
+ complete: Dict.make()->JSON.Encode.object,
+ empty: Dict.make()->JSON.Encode.object,
+ invalid: Dict.make()->JSON.Encode.object,
paymentRequestButton: defaultPaymentRequestButton,
}
let defaultOptions = {
@@ -124,9 +124,9 @@ let defaultOptions = {
}
let getClasses = (str, dict, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
base: getWarningString(json, "base", "OrcaElement", ~logger),
complete: getWarningString(json, "complete", "OrcaElement--complete", ~logger),
@@ -141,14 +141,14 @@ let getClasses = (str, dict, logger) => {
),
}
})
- ->Belt.Option.getWithDefault(defaultClasses)
+ ->Option.getOr(defaultClasses)
}
let rec getStyleObj = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
backgroundColor: getWarningString(json, "backgroundColor", "", ~logger),
color: getWarningString(json, "color", "", ~logger),
@@ -175,7 +175,7 @@ let rec getStyleObj = (dict, str, logger) => {
msClear: Some(getStyleObj(json, "::-ms-clear", logger)),
}
})
- ->Belt.Option.getWithDefault(defaultStyleClass)
+ ->Option.getOr(defaultStyleClass)
}
let getTheme = (str, key, logger) => {
switch str {
@@ -190,9 +190,9 @@ let getTheme = (str, key, logger) => {
}
let getPaymentRequestButton = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
type_: getWarningString(json, "type", "", ~logger),
theme: getWarningString(json, "theme", "dark", ~logger)->getTheme(
@@ -202,14 +202,14 @@ let getPaymentRequestButton = (dict, str, logger) => {
height: getWarningString(json, "height", "", ~logger),
}
})
- ->Belt.Option.getWithDefault(defaultPaymentRequestButton)
+ ->Option.getOr(defaultPaymentRequestButton)
}
let getStyle = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
base: getJsonObjectFromDict(json, "base"),
complete: getJsonObjectFromDict(json, "complete"),
@@ -218,7 +218,7 @@ let getStyle = (dict, str, logger) => {
paymentRequestButton: getPaymentRequestButton(json, "paymentRequestButton", logger),
}
})
- ->Belt.Option.getWithDefault(defaultStyle)
+ ->Option.getOr(defaultStyle)
}
let itemToObjMapper = (dict, logger) => {
unknownKeysWarning(
diff --git a/src/Types/GooglePayType.res b/src/Types/GooglePayType.res
index 6620ef8f..2df75884 100644
--- a/src/Types/GooglePayType.res
+++ b/src/Types/GooglePayType.res
@@ -1,6 +1,6 @@
open Utils
-@val @scope("Object") external assign: (Js.Json.t, Js.Json.t, Js.Json.t) => Js.Json.t = "assign"
-external toSome: Js.Json.t => 'a = "%identity"
+@val @scope("Object") external assign: (JSON.t, JSON.t, JSON.t) => JSON.t = "assign"
+external toSome: JSON.t => 'a = "%identity"
type transactionInfo = {
countryCode: string,
currencyCode: string,
@@ -9,11 +9,11 @@ type transactionInfo = {
}
type merchantInfo = {merchantName: string}
type paymentDataRequest = {
- mutable allowedPaymentMethods: array,
- mutable transactionInfo: Js.Json.t,
- mutable merchantInfo: Js.Json.t,
+ mutable allowedPaymentMethods: array,
+ mutable transactionInfo: JSON.t,
+ mutable merchantInfo: JSON.t,
}
-@val @scope("Object") external assign2: (Js.Json.t, Js.Json.t) => paymentDataRequest = "assign"
+@val @scope("Object") external assign2: (JSON.t, JSON.t) => paymentDataRequest = "assign"
type element = {
mutable innerHTML: string,
appendChild: (. Dom.element) => unit,
@@ -24,11 +24,11 @@ type document
@val external document: document = "document"
@send external getElementById: (document, string) => element = "getElementById"
type client = {
- isReadyToPay: (. Js.Json.t) => Js.Promise.t,
- createButton: (. Js.Json.t) => Dom.element,
- loadPaymentData: (. Js.Json.t) => Js.Promise.t,
+ isReadyToPay: (. JSON.t) => Promise.t,
+ createButton: (. JSON.t) => Dom.element,
+ loadPaymentData: (. JSON.t) => Promise.t,
}
-@new external google: Js.Json.t => client = "google.payments.api.PaymentsClient"
+@new external google: JSON.t => client = "google.payments.api.PaymentsClient"
let getLabel = (var: PaymentType.googlePayStyleType) => {
switch var {
| Default => "plain"
@@ -60,8 +60,8 @@ type tokenizationSpecification = {
type tokenizationData = {token: string}
type paymentMethodData = {
description: string,
- info: Js.Json.t,
- tokenizationData: Js.Json.t,
+ info: JSON.t,
+ tokenizationData: JSON.t,
\"type": string,
}
@@ -71,35 +71,35 @@ let defaultTokenizationData = {
}
let defaultPaymentMethodData = {
description: "",
- info: Js.Dict.empty()->Js.Json.object_,
- tokenizationData: Js.Dict.empty()->Js.Json.object_,
+ info: Dict.make()->JSON.Encode.object,
+ tokenizationData: Dict.make()->JSON.Encode.object,
\"type": "",
}
let getTokenizationData = (str, dict) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
token: getString(json, "token", ""),
}
})
- ->Belt.Option.getWithDefault(defaultTokenizationData)
+ ->Option.getOr(defaultTokenizationData)
}
let getPaymentMethodData = (str, dict) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
description: getString(json, "description", ""),
- tokenizationData: getJsonFromDict(json, "tokenizationData", Js.Dict.empty()->Js.Json.object_),
- info: getJsonFromDict(json, "info", Js.Dict.empty()->Js.Json.object_),
+ tokenizationData: getJsonFromDict(json, "tokenizationData", Dict.make()->JSON.Encode.object),
+ info: getJsonFromDict(json, "info", Dict.make()->JSON.Encode.object),
\"type": getString(json, "type", ""),
}
})
- ->Belt.Option.getWithDefault(defaultPaymentMethodData)
+ ->Option.getOr(defaultPaymentMethodData)
}
let itemToObjMapper = dict => {
{
@@ -107,21 +107,21 @@ let itemToObjMapper = dict => {
}
}
-let jsonToPaymentRequestDataType: (
- paymentDataRequest,
- Js.Dict.t,
-) => paymentDataRequest = (paymentRequest, jsonDict) => {
+let jsonToPaymentRequestDataType: (paymentDataRequest, Dict.t) => paymentDataRequest = (
+ paymentRequest,
+ jsonDict,
+) => {
paymentRequest.allowedPaymentMethods =
jsonDict
->Utils.getArray("allowed_payment_methods")
- ->Js.Array2.map(json => Utils.transformKeys(json, Utils.CamelCase))
+ ->Array.map(json => Utils.transformKeys(json, Utils.CamelCase))
paymentRequest.transactionInfo =
jsonDict
- ->Utils.getJsonFromDict("transaction_info", Js.Json.null)
+ ->Utils.getJsonFromDict("transaction_info", JSON.Encode.null)
->Utils.transformKeys(Utils.CamelCase)
paymentRequest.merchantInfo =
jsonDict
- ->Utils.getJsonFromDict("merchant_info", Js.Json.null)
+ ->Utils.getJsonFromDict("merchant_info", JSON.Encode.null)
->Utils.transformKeys(Utils.CamelCase)
paymentRequest
diff --git a/src/Types/PaymentConfirmTypes.res b/src/Types/PaymentConfirmTypes.res
index e1c7831e..59202a67 100644
--- a/src/Types/PaymentConfirmTypes.res
+++ b/src/Types/PaymentConfirmTypes.res
@@ -36,8 +36,8 @@ type voucherDetails = {
type nextAction = {
redirectToUrl: string,
type_: string,
- bank_transfer_steps_and_charges_details: option,
- session_token: option,
+ bank_transfer_steps_and_charges_details: option,
+ session_token: option,
image_data_url: option,
voucher_details: option,
display_to_timestamp: option,
@@ -78,9 +78,9 @@ let defaultIntent = {
let getAchCreditTransfer = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
account_number: getString(json, "account_number", ""),
bank_name: getString(json, "bank_name", ""),
@@ -88,26 +88,26 @@ let getAchCreditTransfer = (dict, str) => {
swift_code: getString(json, "swift_code", ""),
}
})
- ->Belt.Option.getWithDefault(defaultACHCreditTransfer)
+ ->Option.getOr(defaultACHCreditTransfer)
}
let getBacsBankInstructions = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
account_holder_name: getString(json, "account_holder_name", ""),
account_number: getString(json, "account_number", ""),
sort_code: getString(json, "sort_code", ""),
}
})
- ->Belt.Option.getWithDefault(defaultBacsBankInstruction)
+ ->Option.getOr(defaultBacsBankInstruction)
}
let getBankTransferDetails = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
ach_credit_transfer: getAchCreditTransfer(json, "ach_credit_transfer"),
}
@@ -123,9 +123,9 @@ let getVoucherDetails = json => {
let getNextAction = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
redirectToUrl: getString(json, "redirect_to_url", ""),
type_: getString(json, "type", ""),
@@ -133,28 +133,28 @@ let getNextAction = (dict, str) => {
getJsonObjFromDict(
json,
"bank_transfer_steps_and_charges_details",
- Js.Dict.empty(),
- )->Js.Json.object_,
+ Dict.make(),
+ )->JSON.Encode.object,
),
session_token: Some(
- getJsonObjFromDict(json, "session_token", Js.Dict.empty())->Js.Json.object_,
+ getJsonObjFromDict(json, "session_token", Dict.make())->JSON.Encode.object,
),
image_data_url: Some(json->getString("image_data_url", "")),
display_to_timestamp: Some(
json
- ->Js.Dict.get("display_to_timestamp")
- ->Belt.Option.flatMap(Js.Json.decodeNumber)
- ->Belt.Option.getWithDefault(0.0),
+ ->Dict.get("display_to_timestamp")
+ ->Option.flatMap(JSON.Decode.float)
+ ->Option.getOr(0.0),
),
voucher_details: {
json
- ->Js.Dict.get("voucher_details")
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => json->getVoucherDetails)
+ ->Dict.get("voucher_details")
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => json->getVoucherDetails)
},
}
})
- ->Belt.Option.getWithDefault(defaultNextAction)
+ ->Option.getOr(defaultNextAction)
}
let itemToObjMapper = dict => {
{
diff --git a/src/Types/PaymentError.res b/src/Types/PaymentError.res
index b8fab79f..c955ea0d 100644
--- a/src/Types/PaymentError.res
+++ b/src/Types/PaymentError.res
@@ -12,16 +12,16 @@ let defaultError = {
}
let getError = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
type_: getString(json, "type", ""),
code: getString(json, "code", ""),
message: getString(json, "message", ""),
}
})
- ->Belt.Option.getWithDefault(defaultError)
+ ->Option.getOr(defaultError)
}
let itemToObjMapper = dict => {
{error: getError(dict, "error")}
diff --git a/src/Types/PaymentType.res b/src/Types/PaymentType.res
index 97d41f92..7b031ebf 100644
--- a/src/Types/PaymentType.res
+++ b/src/Types/PaymentType.res
@@ -300,11 +300,11 @@ let getLayout = (str, logger) => {
}
let getAddress = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
let countryNames = []
- Country.country->Js.Array2.map(item => countryNames->Js.Array2.push(item.countryName))->ignore
+ Country.country->Array.map(item => countryNames->Array.push(item.countryName))->ignore
unknownKeysWarning(
["line1", "line2", "city", "state", "country", "postal_code"],
json,
@@ -329,13 +329,13 @@ let getAddress = (dict, str, logger) => {
postal_code: getWarningString(json, "postal_code", "", ~logger),
}
})
- ->Belt.Option.getWithDefault(defaultAddress)
+ ->Option.getOr(defaultAddress)
}
let getBillingDetails = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
unknownKeysWarning(
["name", "email", "phone", "address"],
json,
@@ -349,33 +349,33 @@ let getBillingDetails = (dict, str, logger) => {
address: getAddress(json, "address", logger),
}
})
- ->Belt.Option.getWithDefault(defaultBillingDetails)
+ ->Option.getOr(defaultBillingDetails)
}
let getDefaultValues = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
unknownKeysWarning(["billingDetails"], json, "options.defaultValues", ~logger)
let defaultValues: defaultValues = {
billingDetails: getBillingDetails(json, "billingDetails", logger),
}
defaultValues
})
- ->Belt.Option.getWithDefault(defaultDefaultValues)
+ ->Option.getOr(defaultDefaultValues)
}
let getBusiness = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
unknownKeysWarning(["name"], json, "options.business", ~logger)
{
name: getWarningString(json, "name", "", ~logger),
}
})
- ->Belt.Option.getWithDefault(defaultBusiness)
+ ->Option.getOr(defaultBusiness)
}
let getShowType = (str, key, logger) => {
switch str {
@@ -468,7 +468,7 @@ let getTypeArray = (str, logger) => {
"tip",
"contribute",
]
- if !Js.Array2.includes(goodVals, str) {
+ if !Array.includes(goodVals, str) {
str->unknownPropValueWarning(goodVals, "options.wallets.style.type", ~logger)
}
(str->getApplePayType, str->getGooglePayType, str->getPayPalType)
@@ -514,9 +514,9 @@ let getShowTerms: (string, string, 'a) => showTerms = (str, key, logger) => {
let getShowAddress = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
let x: showAddress = {
line1: getWarningString(json, "line1", "auto", ~logger)->getShowType(
"options.fields.address.line1",
@@ -545,12 +545,12 @@ let getShowAddress = (dict, str, logger) => {
}
x
})
- ->Belt.Option.getWithDefault(defaultshowAddress)
+ ->Option.getOr(defaultshowAddress)
}
let getDeatils = (val, logger) => {
- switch val->Js.Json.classify {
- | JSONString(str) => JSONString(str)
- | JSONObject(json) =>
+ switch val->JSON.Classify.classify {
+ | String(str) => JSONString(str)
+ | Object(json) =>
JSONObject({
name: getWarningString(json, "name", "auto", ~logger)->getShowType(
"options.fields.name",
@@ -571,26 +571,26 @@ let getDeatils = (val, logger) => {
}
let getBilling = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.map(json => json->getDeatils(logger))
- ->Belt.Option.getWithDefault(defaultFields.billingDetails)
+ ->Dict.get(str)
+ ->Option.map(json => json->getDeatils(logger))
+ ->Option.getOr(defaultFields.billingDetails)
}
-let getFields: (Js.Dict.t, string, 'a) => fields = (dict, str, logger) => {
+let getFields: (Dict.t, string, 'a) => fields = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
let defaultFields: fields = {
billingDetails: getBilling(json, "billingDetails", logger),
}
defaultFields
})
- ->Belt.Option.getWithDefault(defaultFields)
+ ->Option.getOr(defaultFields)
}
let getLayoutValues = (val, logger) => {
- switch val->Js.Json.classify {
- | JSONString(str) => StringLayout(str->getLayout(logger))
- | JSONObject(json) =>
+ switch val->JSON.Classify.classify {
+ | String(str) => StringLayout(str->getLayout(logger))
+ | Object(json) =>
ObjectLayout({
let layoutType = getWarningString(json, "type", "tabs", ~logger)
unknownKeysWarning(
@@ -612,9 +612,9 @@ let getLayoutValues = (val, logger) => {
}
let getTerms = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
unknownKeysWarning(
["auBecsDebit", "bancontact", "card", "ideal", "sepaDebit", "sofort", "usBankAccount"],
json,
@@ -652,7 +652,7 @@ let getTerms = (dict, str, logger) => {
),
}
})
- ->Belt.Option.getWithDefault(defaultTerms)
+ ->Option.getOr(defaultTerms)
}
let getApplePayHeight = (val, logger) => {
let val: heightType =
@@ -724,9 +724,9 @@ let getHeightArray = (val, logger) => {
}
let getStyle = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
unknownKeysWarning(["type", "theme", "height"], json, "options.wallets.style", ~logger)
let style = {
type_: getWarningString(json, "type", "", ~logger)->getTypeArray(logger),
@@ -735,13 +735,13 @@ let getStyle = (dict, str, logger) => {
}
style
})
- ->Belt.Option.getWithDefault(defaultStyle)
+ ->Option.getOr(defaultStyle)
}
let getWallets = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
unknownKeysWarning(
["applePay", "googlePay", "style", "walletReturnUrl"],
json,
@@ -762,23 +762,23 @@ let getWallets = (dict, str, logger) => {
style: getStyle(json, "style", logger),
}
})
- ->Belt.Option.getWithDefault(defaultWallets)
+ ->Option.getOr(defaultWallets)
}
let getLayout = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.map(json => {
json->getLayoutValues(logger)
})
- ->Belt.Option.getWithDefault(ObjectLayout(defaultLayout))
+ ->Option.getOr(ObjectLayout(defaultLayout))
}
let getCardDetails = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
{
scheme: Some(getString(json, "scheme", "")),
last4Digits: getString(json, "last4_digits", ""),
@@ -789,36 +789,36 @@ let getCardDetails = (dict, str) => {
nickname: getString(json, "nick_name", ""),
}
})
- ->Belt.Option.getWithDefault(defaultCardDetails)
+ ->Option.getOr(defaultCardDetails)
}
let getPaymentMethodType = dict => {
- dict->Js.Dict.get("payment_method_type")->Belt.Option.flatMap(Js.Json.decodeString)
+ dict->Dict.get("payment_method_type")->Option.flatMap(JSON.Decode.string)
}
let createCustomerObjArr = dict => {
let customerDict =
dict
- ->Js.Dict.get("customerPaymentMethods")
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
+ ->Dict.get("customerPaymentMethods")
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
let customerArr =
customerDict
- ->Js.Dict.get("customer_payment_methods")
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
+ ->Dict.get("customer_payment_methods")
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
let isGuestCustomer =
customerDict
- ->Js.Dict.get("is_guest_customer")
- ->Belt.Option.flatMap(Js.Json.decodeBoolean)
- ->Belt.Option.getWithDefault(false)
+ ->Dict.get("is_guest_customer")
+ ->Option.flatMap(JSON.Decode.bool)
+ ->Option.getOr(false)
let customerPaymentMethods =
customerArr
- ->Belt.Array.keepMap(Js.Json.decodeObject)
- ->Js.Array2.map(dict => {
+ ->Belt.Array.keepMap(JSON.Decode.object)
+ ->Array.map(dict => {
{
paymentToken: getString(dict, "payment_token", ""),
customerId: getString(dict, "customer_id", ""),
@@ -834,14 +834,13 @@ let createCustomerObjArr = dict => {
}
let getCustomerMethods = (dict, str) => {
- let customerArr =
- dict->Js.Dict.get(str)->Belt.Option.flatMap(Js.Json.decodeArray)->Belt.Option.getWithDefault([])
+ let customerArr = dict->Dict.get(str)->Option.flatMap(JSON.Decode.array)->Option.getOr([])
- if customerArr->Js.Array2.length !== 0 {
+ if customerArr->Array.length !== 0 {
let customerPaymentMethods =
customerArr
- ->Belt.Array.keepMap(Js.Json.decodeObject)
- ->Js.Array2.map(json => {
+ ->Belt.Array.keepMap(JSON.Decode.object)
+ ->Array.map(json => {
{
paymentToken: getString(json, "payment_token", ""),
customerId: getString(json, "customer_id", ""),
@@ -861,11 +860,11 @@ let getCustomerMethods = (dict, str) => {
let getCustomMethodNames = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.keepMap(Js.Json.decodeObject)
- ->Js.Array2.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->Belt.Array.keepMap(JSON.Decode.object)
+ ->Array.map(json => {
paymentMethodName: getString(json, "paymentMethodName", ""),
aliasName: getString(json, "aliasName", ""),
})
@@ -873,9 +872,9 @@ let getCustomMethodNames = (dict, str) => {
let getBillingAddress = (dict, str, logger) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => {
unknownKeysWarning(
["isUseBillingAddress", "usePrefilledValues"],
json,
@@ -893,7 +892,7 @@ let getBillingAddress = (dict, str, logger) => {
)->getShowType("options.billingAddress.usePrefilledValues", logger),
}
})
- ->Belt.Option.getWithDefault(defaultBillingAddress)
+ ->Option.getOr(defaultBillingAddress)
}
let getConfirmParams = dict => {
@@ -973,16 +972,16 @@ let itemToObjMapper = (dict, logger) => {
}
}
-type loadType = Loading | Loaded(Js.Json.t) | SemiLoaded | LoadError(Js.Json.t)
+type loadType = Loading | Loaded(JSON.t) | SemiLoaded | LoadError(JSON.t)
let getIsAllStoredCardsHaveName = (savedCards: array) => {
savedCards
- ->Js.Array2.filter(savedCard => {
+ ->Array.filter(savedCard => {
switch savedCard.card.cardHolderName {
| None
| Some("") => false
| _ => true
}
})
- ->Belt.Array.length === savedCards->Belt.Array.length
+ ->Array.length === savedCards->Array.length
}
diff --git a/src/Types/PaypalSDKTypes.res b/src/Types/PaypalSDKTypes.res
index 1a0c6674..a9cbd8b2 100644
--- a/src/Types/PaypalSDKTypes.res
+++ b/src/Types/PaypalSDKTypes.res
@@ -53,7 +53,7 @@ type client = {create: (. authType, (clientErr, clientInstance) => unit) => unit
type paypalCheckout = {
create: (
. checkoutClient,
- (Js.Nullable.t, paypalCheckoutInstance) => unit,
+ (Nullable.t, paypalCheckoutInstance) => unit,
) => unit,
}
type braintree = {
diff --git a/src/Types/SessionsType.res b/src/Types/SessionsType.res
index 858307e4..e47d51cc 100644
--- a/src/Types/SessionsType.res
+++ b/src/Types/SessionsType.res
@@ -7,18 +7,18 @@ type token = {
walletName: wallet,
token: string,
sessionId: string,
- allowed_payment_methods: array,
- transaction_info: Js.Json.t,
- merchant_info: Js.Json.t,
+ allowed_payment_methods: array,
+ transaction_info: JSON.t,
+ merchant_info: JSON.t,
}
type tokenType =
- | ApplePayToken(array)
- | GooglePayThirdPartyToken(array)
+ | ApplePayToken(array)
+ | GooglePayThirdPartyToken(array)
| OtherToken(array)
type optionalTokenType =
- | ApplePayTokenOptional(option)
- | GooglePayThirdPartyTokenOptional(option)
+ | ApplePayTokenOptional(option)
+ | GooglePayThirdPartyTokenOptional(option)
| OtherTokenOptional(option)
type sessions = {
@@ -31,8 +31,8 @@ let defaultToken = {
token: "",
sessionId: "",
allowed_payment_methods: [],
- transaction_info: Js.Dict.empty()->Js.Json.object_,
- merchant_info: Js.Dict.empty()->Js.Json.object_,
+ transaction_info: Dict.make()->JSON.Encode.object,
+ merchant_info: Dict.make()->JSON.Encode.object,
}
let getWallet = str => {
switch str {
@@ -47,10 +47,10 @@ open Utils
let getSessionsToken = (dict, str) => {
dict
- ->Js.Dict.get(str)
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.map(arr => {
- arr->Js.Array2.map(json => {
+ ->Dict.get(str)
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.map(arr => {
+ arr->Array.map(json => {
let dict = json->getDictFromJson
{
walletName: getString(dict, "wallet_name", "")->getWallet,
@@ -62,10 +62,10 @@ let getSessionsToken = (dict, str) => {
}
})
})
- ->Belt.Option.getWithDefault([defaultToken])
+ ->Option.getOr([defaultToken])
}
let getSessionsTokenJson = (dict, str) => {
- dict->Js.Dict.get(str)->Belt.Option.flatMap(Js.Json.decodeArray)->Belt.Option.getWithDefault([])
+ dict->Dict.get(str)->Option.flatMap(JSON.Decode.array)->Option.getOr([])
}
let itemToObjMapper = (dict, returnType) => {
@@ -91,14 +91,14 @@ let itemToObjMapper = (dict, returnType) => {
}
let getWalletFromTokenType = (arr, val: wallet) => {
- let x = arr->Js.Array2.find(item =>
+ let x = arr->Array.find(item =>
item
- ->Js.Json.decodeObject
- ->Belt.Option.flatMap(x => {
- x->Js.Dict.get("wallet_name")
+ ->JSON.Decode.object
+ ->Option.flatMap(x => {
+ x->Dict.get("wallet_name")
})
- ->Belt.Option.flatMap(Js.Json.decodeString)
- ->Belt.Option.getWithDefault("")
+ ->Option.flatMap(JSON.Decode.string)
+ ->Option.getOr("")
->getWallet === val
)
x
@@ -111,6 +111,6 @@ let getPaymentSessionObj = (tokenType: tokenType, val: wallet) => {
| GooglePayThirdPartyToken(arr) =>
GooglePayThirdPartyTokenOptional(getWalletFromTokenType(arr, val))
- | OtherToken(arr) => OtherTokenOptional(arr->Js.Array2.find(item => item.walletName == val))
+ | OtherToken(arr) => OtherTokenOptional(arr->Array.find(item => item.walletName == val))
}
}
diff --git a/src/Types/ThemeImporter.res b/src/Types/ThemeImporter.res
index 10572cff..f9f1becc 100644
--- a/src/Types/ThemeImporter.res
+++ b/src/Types/ThemeImporter.res
@@ -1,6 +1,6 @@
type themeDataModule = {
default: CardThemeType.themeClass,
- defaultRules: CardThemeType.themeClass => Js.Json.t,
+ defaultRules: CardThemeType.themeClass => JSON.t,
}
@val
diff --git a/src/Utilities/ApiEndpoint.res b/src/Utilities/ApiEndpoint.res
index 31382395..effeb52e 100644
--- a/src/Utilities/ApiEndpoint.res
+++ b/src/Utilities/ApiEndpoint.res
@@ -9,7 +9,7 @@ let setApiEndPoint = str => {
}
let getApiEndPoint = (~publishableKey="", ~isConfirmCall=false, ()) => {
- let testMode = publishableKey->Js.String2.startsWith("pk_snd_")
+ let testMode = publishableKey->String.startsWith("pk_snd_")
switch apiEndPoint.contents {
| Some(str) => str
| None =>
@@ -28,8 +28,8 @@ let addCustomPodHeader = (arr: array<(string, string)>, ~switchToCustomPod=?, ()
| None => false
}
if customPod {
- arr->Js.Array2.concat([("x-feature", "router-custom-dbd")])->Js.Dict.fromArray
+ arr->Array.concat([("x-feature", "router-custom-dbd")])->Dict.fromArray
} else {
- arr->Js.Dict.fromArray
+ arr->Dict.fromArray
}
}
diff --git a/src/Utilities/DynamicFieldsUtils.res b/src/Utilities/DynamicFieldsUtils.res
index c683cb61..13584d8e 100644
--- a/src/Utilities/DynamicFieldsUtils.res
+++ b/src/Utilities/DynamicFieldsUtils.res
@@ -1,13 +1,14 @@
let getName = (item: PaymentMethodsRecord.required_fields, field: RecoilAtomTypes.field) => {
- let fieldNameArr = field.value->Js.String2.split(" ")
- let requiredFieldsArr = item.required_field->Js.String2.split(".")
- switch requiredFieldsArr
- ->Belt.Array.get(requiredFieldsArr->Belt.Array.length - 1)
- ->Belt.Option.getWithDefault("") {
- | "first_name" => fieldNameArr->Belt.Array.get(0)->Belt.Option.getWithDefault(field.value)
- | "last_name" => fieldNameArr->Belt.Array.sliceToEnd(1)->Js.Array2.reduce((acc, item) => {
+ let fieldNameArr = field.value->String.split(" ")
+ let requiredFieldsArr = item.required_field->String.split(".")
+ switch requiredFieldsArr->Array.get(requiredFieldsArr->Array.length - 1)->Option.getOr("") {
+ | "first_name" => fieldNameArr->Array.get(0)->Option.getOr(field.value)
+ | "last_name" =>
+ fieldNameArr
+ ->Array.sliceToEnd(~start=1)
+ ->Array.reduce("", (acc, item) => {
acc ++ item
- }, "")
+ })
| _ => field.value
}
}
@@ -50,11 +51,11 @@ let getBillingAddressPathFromFieldType = (fieldType: PaymentMethodsRecord.paymen
}
let removeBillingDetailsIfUseBillingAddress = (
- requiredFields: Js.Array2.t,
+ requiredFields: array,
billingAddress: PaymentType.billingAddress,
) => {
if billingAddress.isUseBillingAddress {
- requiredFields->Js.Array2.filter(requiredField => {
+ requiredFields->Array.filter(requiredField => {
!(requiredField.field_type->isBillingAddressFieldType)
})
} else {
@@ -67,7 +68,7 @@ let addBillingAddressIfUseBillingAddress = (
billingAddress: PaymentType.billingAddress,
) => {
if billingAddress.isUseBillingAddress {
- fieldsArr->Js.Array2.concat(billingAddressFields)
+ fieldsArr->Array.concat(billingAddressFields)
} else {
fieldsArr
}
@@ -79,24 +80,24 @@ let checkIfNameIsValid = (
field: RecoilAtomTypes.field,
) => {
requiredFieldsType
- ->Js.Array2.filter(required_field => required_field.field_type === paymentMethodFields)
- ->Js.Array2.reduce((acc, item) => {
- let fieldNameArr = field.value->Js.String2.split(" ")
- let requiredFieldsArr = item.required_field->Js.String2.split(".")
+ ->Array.filter(required_field => required_field.field_type === paymentMethodFields)
+ ->Array.reduce(true, (acc, item) => {
+ let fieldNameArr = field.value->String.split(" ")
+ let requiredFieldsArr = item.required_field->String.split(".")
let fieldValue = switch requiredFieldsArr
- ->Belt.Array.get(requiredFieldsArr->Belt.Array.length - 1)
- ->Belt.Option.getWithDefault("") {
- | "first_name" => fieldNameArr->Belt.Array.get(0)->Belt.Option.getWithDefault("")
- | "last_name" => fieldNameArr->Belt.Array.get(1)->Belt.Option.getWithDefault("")
+ ->Array.get(requiredFieldsArr->Array.length - 1)
+ ->Option.getOr("") {
+ | "first_name" => fieldNameArr->Array.get(0)->Option.getOr("")
+ | "last_name" => fieldNameArr->Array.get(1)->Option.getOr("")
| _ => field.value
}
acc && fieldValue !== ""
- }, true)
+ })
}
let useRequiredFieldsEmptyAndValid = (
~requiredFields,
- ~fieldsArr: Js.Array2.t,
+ ~fieldsArr: array,
~countryNames,
~bankNames,
~isCardValid,
@@ -126,80 +127,80 @@ let useRequiredFieldsEmptyAndValid = (
let fieldsArrWithBillingAddress = fieldsArr->addBillingAddressIfUseBillingAddress(billingAddress)
React.useEffect7(() => {
- let areRequiredFieldsValid = fieldsArr->Js.Array2.reduce((acc, paymentMethodFields) => {
+ let areRequiredFieldsValid = fieldsArr->Array.reduce(true, (acc, paymentMethodFields) => {
acc &&
switch paymentMethodFields {
- | Email => email.isValid->Belt.Option.getWithDefault(false)
+ | Email => email.isValid->Option.getOr(false)
| FullName => checkIfNameIsValid(requiredFields, paymentMethodFields, fullName)
- | Country => country !== "" || countryNames->Belt.Array.length === 0
- | AddressCountry(countryArr) => country !== "" || countryArr->Belt.Array.length === 0
+ | Country => country !== "" || countryNames->Array.length === 0
+ | AddressCountry(countryArr) => country !== "" || countryArr->Array.length === 0
| BillingName => checkIfNameIsValid(requiredFields, paymentMethodFields, billingName)
| AddressLine1 => line1.value !== ""
| AddressLine2 => billingAddress.isUseBillingAddress ? true : line2.value !== ""
- | Bank => selectedBank !== "" || bankNames->Belt.Array.length === 0
+ | Bank => selectedBank !== "" || bankNames->Array.length === 0
| PhoneNumber => phone.value !== ""
| StateAndCity => state.value !== "" && city.value !== ""
| CountryAndPincode(countryArr) =>
- (country !== "" || countryArr->Belt.Array.length === 0) &&
- postalCode.isValid->Belt.Option.getWithDefault(false)
+ (country !== "" || countryArr->Array.length === 0) &&
+ postalCode.isValid->Option.getOr(false)
| AddressCity => city.value !== ""
- | AddressPincode => postalCode.isValid->Belt.Option.getWithDefault(false)
+ | AddressPincode => postalCode.isValid->Option.getOr(false)
| AddressState => state.value !== ""
| BlikCode => blikCode.value !== ""
- | Currency(currencyArr) => currency !== "" || currencyArr->Belt.Array.length === 0
- | CardNumber => isCardValid->Belt.Option.getWithDefault(false)
+ | Currency(currencyArr) => currency !== "" || currencyArr->Array.length === 0
+ | CardNumber => isCardValid->Option.getOr(false)
| CardExpiryMonth
| CardExpiryYear
| CardExpiryMonthAndYear =>
- isExpiryValid->Belt.Option.getWithDefault(false)
- | CardCvc => isCVCValid->Belt.Option.getWithDefault(false)
- | CardExpiryAndCvc =>
- isExpiryValid->Belt.Option.getWithDefault(false) &&
- isCVCValid->Belt.Option.getWithDefault(false)
+ isExpiryValid->Option.getOr(false)
+ | CardCvc => isCVCValid->Option.getOr(false)
+ | CardExpiryAndCvc => isExpiryValid->Option.getOr(false) && isCVCValid->Option.getOr(false)
| _ => true
}
- }, true)
+ })
setAreRequiredFieldsValid(._ => areRequiredFieldsValid)
- let areRequiredFieldsEmpty =
- fieldsArrWithBillingAddress->Js.Array2.reduce((acc, paymentMethodFields) => {
- acc ||
- switch paymentMethodFields {
- | Email => email.value === ""
- | FullName => fullName.value === ""
- | Country => country === "" && countryNames->Belt.Array.length > 0
- | AddressCountry(countryArr) => country === "" && countryArr->Belt.Array.length > 0
- | BillingName => billingName.value === ""
- | AddressLine1 => line1.value === ""
- | AddressLine2 => billingAddress.isUseBillingAddress ? false : line2.value === ""
- | Bank => selectedBank === "" && bankNames->Belt.Array.length > 0
- | StateAndCity => city.value === "" || state.value === ""
- | CountryAndPincode(countryArr) =>
- (country === "" && countryArr->Belt.Array.length > 0) || postalCode.value === ""
- | PhoneNumber => phone.value === ""
- | AddressCity => city.value === ""
- | AddressPincode => postalCode.value === ""
- | AddressState => state.value === ""
- | BlikCode => blikCode.value === ""
- | Currency(currencyArr) => currency === "" && currencyArr->Belt.Array.length > 0
- | CardNumber => cardNumber === ""
- | CardExpiryMonth =>
- let (month, _) = CardUtils.getExpiryDates(cardExpiry)
- month === ""
- | CardExpiryYear =>
- let (_, year) = CardUtils.getExpiryDates(cardExpiry)
- year === ""
- | CardExpiryMonthAndYear =>
- let (month, year) = CardUtils.getExpiryDates(cardExpiry)
- month === "" || year === ""
- | CardCvc => cvcNumber === ""
- | CardExpiryAndCvc =>
- let (month, year) = CardUtils.getExpiryDates(cardExpiry)
- month === "" || year === "" || cvcNumber === ""
- | _ => false
- }
- }, false)
+ let areRequiredFieldsEmpty = fieldsArrWithBillingAddress->Array.reduce(false, (
+ acc,
+ paymentMethodFields,
+ ) => {
+ acc ||
+ switch paymentMethodFields {
+ | Email => email.value === ""
+ | FullName => fullName.value === ""
+ | Country => country === "" && countryNames->Array.length > 0
+ | AddressCountry(countryArr) => country === "" && countryArr->Array.length > 0
+ | BillingName => billingName.value === ""
+ | AddressLine1 => line1.value === ""
+ | AddressLine2 => billingAddress.isUseBillingAddress ? false : line2.value === ""
+ | Bank => selectedBank === "" && bankNames->Array.length > 0
+ | StateAndCity => city.value === "" || state.value === ""
+ | CountryAndPincode(countryArr) =>
+ (country === "" && countryArr->Array.length > 0) || postalCode.value === ""
+ | PhoneNumber => phone.value === ""
+ | AddressCity => city.value === ""
+ | AddressPincode => postalCode.value === ""
+ | AddressState => state.value === ""
+ | BlikCode => blikCode.value === ""
+ | Currency(currencyArr) => currency === "" && currencyArr->Array.length > 0
+ | CardNumber => cardNumber === ""
+ | CardExpiryMonth =>
+ let (month, _) = CardUtils.getExpiryDates(cardExpiry)
+ month === ""
+ | CardExpiryYear =>
+ let (_, year) = CardUtils.getExpiryDates(cardExpiry)
+ year === ""
+ | CardExpiryMonthAndYear =>
+ let (month, year) = CardUtils.getExpiryDates(cardExpiry)
+ month === "" || year === ""
+ | CardCvc => cvcNumber === ""
+ | CardExpiryAndCvc =>
+ let (month, year) = CardUtils.getExpiryDates(cardExpiry)
+ month === "" || year === "" || cvcNumber === ""
+ | _ => false
+ }
+ })
setAreRequiredFieldsEmpty(._ => areRequiredFieldsEmpty)
None
}, (
@@ -229,7 +230,7 @@ let useRequiredFieldsEmptyAndValid = (
}
let useSetInitialRequiredFields = (
- ~requiredFields: Js.Array2.t,
+ ~requiredFields: array,
~paymentMethodType,
) => {
let logger = Recoil.useRecoilValueFromAtom(RecoilAtoms.loggerAtom)
@@ -278,18 +279,16 @@ let useSetInitialRequiredFields = (
React.useEffect1(() => {
let getNameValue = (item: PaymentMethodsRecord.required_fields) => {
requiredFields
- ->Js.Array2.filter(requiredFields => requiredFields.field_type === item.field_type)
- ->Js.Array2.reduce((acc, item) => {
- let requiredFieldsArr = item.required_field->Js.String2.split(".")
- switch requiredFieldsArr
- ->Belt.Array.get(requiredFieldsArr->Belt.Array.length - 1)
- ->Belt.Option.getWithDefault("") {
- | "first_name" => item.value->Js.String2.concat(acc)
- | "last_name" => acc->Js.String2.concatMany([" ", item.value])
+ ->Array.filter(requiredFields => requiredFields.field_type === item.field_type)
+ ->Array.reduce("", (acc, item) => {
+ let requiredFieldsArr = item.required_field->String.split(".")
+ switch requiredFieldsArr->Array.get(requiredFieldsArr->Array.length - 1)->Option.getOr("") {
+ | "first_name" => item.value->String.concat(acc)
+ | "last_name" => acc->String.concatMany([" ", item.value])
| _ => acc
}
- }, "")
- ->Js.String2.trim
+ })
+ ->String.trim
}
let setFields = (
@@ -311,7 +310,7 @@ let useSetInitialRequiredFields = (
}
}
- requiredFields->Js.Array2.forEach(requiredField => {
+ requiredFields->Array.forEach(requiredField => {
let value = requiredField.value
switch requiredField.field_type {
| Email => {
@@ -338,9 +337,9 @@ let useSetInitialRequiredFields = (
if value !== "" && country === "" {
let countryCode =
Country.getCountry(paymentMethodType)
- ->Js.Array2.filter(item => item.isoAlpha2 === value)
- ->Belt.Array.get(0)
- ->Belt.Option.getWithDefault(Country.defaultTimeZone)
+ ->Array.filter(item => item.isoAlpha2 === value)
+ ->Array.get(0)
+ ->Option.getOr(Country.defaultTimeZone)
setCountry(. _ => countryCode.countryName)
}
}
@@ -355,9 +354,9 @@ let useSetInitialRequiredFields = (
if value !== "" {
let defaultCountry =
Country.getCountry(paymentMethodType)
- ->Js.Array2.filter(item => item.isoAlpha2 === value)
- ->Belt.Array.get(0)
- ->Belt.Option.getWithDefault(Country.defaultTimeZone)
+ ->Array.filter(item => item.isoAlpha2 === value)
+ ->Array.get(0)
+ ->Option.getOr(Country.defaultTimeZone)
setCountry(. _ => defaultCountry.countryName)
}
| Currency(_) =>
@@ -384,7 +383,7 @@ let useSetInitialRequiredFields = (
}
let useRequiredFieldsBody = (
- ~requiredFields: Js.Array2.t,
+ ~requiredFields: array,
~paymentMethodType,
~cardNumber,
~cardExpiry,
@@ -423,15 +422,15 @@ let useRequiredFieldsBody = (
| Bank =>
(
Bank.getBanks(paymentMethodType)
- ->Js.Array2.find(item => item.displayName == selectedBank)
- ->Belt.Option.getWithDefault(Bank.defaultBank)
+ ->Array.find(item => item.displayName == selectedBank)
+ ->Option.getOr(Bank.defaultBank)
).hyperSwitch
| AddressCountry(_) => {
let countryCode =
Country.getCountry(paymentMethodType)
- ->Js.Array2.filter(item => item.countryName === country)
- ->Belt.Array.get(0)
- ->Belt.Option.getWithDefault(Country.defaultTimeZone)
+ ->Array.filter(item => item.countryName === country)
+ ->Array.get(0)
+ ->Option.getOr(Country.defaultTimeZone)
countryCode.isoAlpha2
}
| BillingName => billingName.value
@@ -456,24 +455,24 @@ let useRequiredFieldsBody = (
let addBillingDetailsIfUseBillingAddress = requiredFieldsBody => {
if billingAddress.isUseBillingAddress {
- billingAddressFields->Js.Array2.reduce((acc, item) => {
+ billingAddressFields->Array.reduce(requiredFieldsBody, (acc, item) => {
let value = item->getFieldValueFromFieldType
if item === BillingName {
- let arr = value->Js.String2.split(" ")
- acc->Js.Dict.set(
+ let arr = value->String.split(" ")
+ acc->Dict.set(
"billing.address.first_name",
- arr->Belt.Array.get(0)->Belt.Option.getWithDefault("")->Js.Json.string,
+ arr->Array.get(0)->Option.getOr("")->JSON.Encode.string,
)
- acc->Js.Dict.set(
+ acc->Dict.set(
"billing.address.last_name",
- arr->Belt.Array.get(1)->Belt.Option.getWithDefault("")->Js.Json.string,
+ arr->Array.get(1)->Option.getOr("")->JSON.Encode.string,
)
} else {
let path = item->getBillingAddressPathFromFieldType
- acc->Js.Dict.set(path, value->Js.Json.string)
+ acc->Dict.set(path, value->JSON.Encode.string)
}
acc
- }, requiredFieldsBody)
+ })
} else {
requiredFieldsBody
}
@@ -482,8 +481,8 @@ let useRequiredFieldsBody = (
React.useEffect1(() => {
let requiredFieldsBody =
requiredFields
- ->Js.Array2.filter(item => item.field_type !== None)
- ->Js.Array2.reduce((acc, item) => {
+ ->Array.filter(item => item.field_type !== None)
+ ->Array.reduce(Dict.make(), (acc, item) => {
let value = switch item.field_type {
| BillingName => getName(item, billingName)
| FullName => getName(item, fullName)
@@ -496,16 +495,16 @@ let useRequiredFieldsBody = (
item.required_field === "payment_method_data.card.card_holder_name"
) {
if !isAllStoredCardsHaveName {
- acc->Js.Dict.set(
+ acc->Dict.set(
"payment_method_data.card_token.card_holder_name",
- value->Js.Json.string,
+ value->JSON.Encode.string,
)
}
} else {
- acc->Js.Dict.set(item.required_field, value->Js.Json.string)
+ acc->Dict.set(item.required_field, value->JSON.Encode.string)
}
acc
- }, Js.Dict.empty())
+ })
->addBillingDetailsIfUseBillingAddress
setRequiredFieldsBody(_ => requiredFieldsBody)
@@ -546,11 +545,10 @@ let isFieldTypeToRenderOutsideBilling = (fieldType: PaymentMethodsRecord.payment
let combineStateAndCity = arr => {
open PaymentMethodsRecord
- let hasStateAndCity =
- arr->Js.Array2.includes(AddressState) && arr->Js.Array2.includes(AddressCity)
+ let hasStateAndCity = arr->Array.includes(AddressState) && arr->Array.includes(AddressCity)
if hasStateAndCity {
- arr->Js.Array2.push(StateAndCity)->ignore
- arr->Js.Array2.filter(item =>
+ arr->Array.push(StateAndCity)->ignore
+ arr->Array.filter(item =>
switch item {
| AddressCity
| AddressState => false
@@ -566,27 +564,27 @@ let combineCountryAndPostal = arr => {
open PaymentMethodsRecord
let hasCountryAndPostal =
arr
- ->Js.Array2.filter(item =>
+ ->Array.filter(item =>
switch item {
| AddressCountry(_) => true
| AddressPincode => true
| _ => false
}
)
- ->Js.Array2.length == 2
+ ->Array.length == 2
- let options = arr->Js.Array2.reduce((acc, item) => {
- acc->Js.Array2.concat(
+ let options = arr->Array.reduce([], (acc, item) => {
+ acc->Array.concat(
switch item {
| AddressCountry(val) => val
| _ => []
},
)
- }, [])
+ })
if hasCountryAndPostal {
- arr->Js.Array2.push(CountryAndPincode(options))->ignore
- arr->Js.Array2.filter(item =>
+ arr->Array.push(CountryAndPincode(options))->ignore
+ arr->Array.filter(item =>
switch item {
| AddressPincode
| AddressCountry(_) => false
@@ -601,10 +599,10 @@ let combineCountryAndPostal = arr => {
let combineCardExpiryMonthAndYear = arr => {
open PaymentMethodsRecord
let hasCardExpiryMonthAndYear =
- arr->Js.Array2.includes(CardExpiryMonth) && arr->Js.Array2.includes(CardExpiryYear)
+ arr->Array.includes(CardExpiryMonth) && arr->Array.includes(CardExpiryYear)
if hasCardExpiryMonthAndYear {
- arr->Js.Array2.push(CardExpiryMonthAndYear)->ignore
- arr->Js.Array2.filter(item =>
+ arr->Array.push(CardExpiryMonthAndYear)->ignore
+ arr->Array.filter(item =>
switch item {
| CardExpiryMonth
| CardExpiryYear => false
@@ -619,10 +617,10 @@ let combineCardExpiryMonthAndYear = arr => {
let combineCardExpiryAndCvc = arr => {
open PaymentMethodsRecord
let hasCardExpiryAndCvc =
- arr->Js.Array2.includes(CardExpiryMonthAndYear) && arr->Js.Array2.includes(CardCvc)
+ arr->Array.includes(CardExpiryMonthAndYear) && arr->Array.includes(CardCvc)
if hasCardExpiryAndCvc {
- arr->Js.Array2.push(CardExpiryAndCvc)->ignore
- arr->Js.Array2.filter(item =>
+ arr->Array.push(CardExpiryAndCvc)->ignore
+ arr->Array.filter(item =>
switch item {
| CardExpiryMonthAndYear
| CardCvc => false
@@ -635,13 +633,13 @@ let combineCardExpiryAndCvc = arr => {
}
let updateDynamicFields = (
- arr: Js.Array2.t,
+ arr: array,
billingAddress,
(),
) => {
arr
->Utils.removeDuplicate
- ->Js.Array2.filter(item => item !== None)
+ ->Array.filter(item => item !== None)
->addBillingAddressIfUseBillingAddress(billingAddress)
->combineStateAndCity
->combineCountryAndPostal
@@ -665,7 +663,7 @@ let useSubmitCallback = () => {
let {localeString} = Recoil.useRecoilValueFromAtom(RecoilAtoms.configAtom)
React.useCallback5((ev: Window.event) => {
- let json = ev.data->Js.Json.parseExn
+ let json = ev.data->JSON.parseExn
let confirm = json->Utils.getDictFromJson->ConfirmType.itemToObjMapper
if confirm.doSubmit {
if line1.value == "" {
@@ -711,14 +709,14 @@ let usePaymentMethodTypeFromList = (~list, ~paymentMethod, ~paymentMethodType) =
~paymentMethodType=paymentMethod,
~paymentMethodName=paymentMethodType,
),
- )->Belt.Option.getWithDefault(PaymentMethodsRecord.defaultPaymentMethodType)
+ )->Option.getOr(PaymentMethodsRecord.defaultPaymentMethodType)
}, (list, paymentMethod, paymentMethodType))
}
let useAreAllRequiredFieldsPrefilled = (~list, ~paymentMethod, ~paymentMethodType) => {
let paymentMethodTypes = usePaymentMethodTypeFromList(~list, ~paymentMethod, ~paymentMethodType)
- paymentMethodTypes.required_fields->Js.Array2.reduce((acc, requiredField) => {
+ paymentMethodTypes.required_fields->Array.reduce(true, (acc, requiredField) => {
acc && requiredField.value != ""
- }, true)
+ })
}
diff --git a/src/Utilities/ErrorUtils.res b/src/Utilities/ErrorUtils.res
index 64425432..ede0b97f 100644
--- a/src/Utilities/ErrorUtils.res
+++ b/src/Utilities/ErrorUtils.res
@@ -112,7 +112,7 @@ let manageErrorWarning = (
~logger: OrcaLogger.loggerMake,
(),
) => {
- let entry = errorWarning->Js.Array2.find(((value, _, _)) => {
+ let entry = errorWarning->Array.find(((value, _, _)) => {
value == key
})
switch entry {
@@ -127,8 +127,8 @@ let manageErrorWarning = (
~logCategory=USER_ERROR,
(),
)
- Js.Console.error(string)
- Js.Exn.raiseError(string)
+ Console.error(string)
+ Exn.raiseError(string)
| (Warning, Static(string)) =>
logger.setLogError(
~value=string,
@@ -137,7 +137,7 @@ let manageErrorWarning = (
~logCategory=USER_ERROR,
(),
)
- Js.Console.warn(string)
+ Console.warn(string)
| (Error, Dynamic(fn)) =>
logger.setLogError(
~value=fn(dynamicStr),
@@ -146,8 +146,8 @@ let manageErrorWarning = (
~logCategory=USER_ERROR,
(),
)
- Js.Console.error(fn(dynamicStr))
- Js.Exn.raiseError(fn(dynamicStr))
+ Console.error(fn(dynamicStr))
+ Exn.raiseError(fn(dynamicStr))
| (Warning, Dynamic(fn)) =>
logger.setLogError(
~value=fn(dynamicStr),
@@ -156,18 +156,18 @@ let manageErrorWarning = (
~logCategory=USER_ERROR,
(),
)
- Js.Console.warn(fn(dynamicStr))
+ Console.warn(fn(dynamicStr))
}
}
| None => ()
}
}
-let unknownKeysWarning = (validKeysArr, dict: Js.Dict.t, dictType: string, ~logger) => {
+let unknownKeysWarning = (validKeysArr, dict: Dict.t, dictType: string, ~logger) => {
dict
- ->Js.Dict.entries
- ->Js.Array2.forEach(((key, _)) => {
- if validKeysArr->Js.Array2.includes(key) {
+ ->Dict.toArray
+ ->Array.forEach(((key, _)) => {
+ if validKeysArr->Array.includes(key) {
()
} else {
manageErrorWarning(UNKNOWN_KEY, ~dynamicStr=`'${key}' key in ${dictType}`, ~logger, ())
@@ -178,10 +178,10 @@ let unknownKeysWarning = (validKeysArr, dict: Js.Dict.t, dictType: st
let unknownPropValueWarning = (inValidValue, validValueArr, dictType) => {
let expectedValues =
validValueArr
- ->Js.Array2.map(item => {
+ ->Array.map(item => {
`'${item}'`
})
- ->Js.Array2.joinWith(", ")
+ ->Array.joinWith(", ")
manageErrorWarning(
UNKNOWN_VALUE,
~dynamicStr=`'${inValidValue}' value in ${dictType}, Expected ${expectedValues}`,
diff --git a/src/Utilities/EventListenerManager.res b/src/Utilities/EventListenerManager.res
index b3555cde..880259c7 100644
--- a/src/Utilities/EventListenerManager.res
+++ b/src/Utilities/EventListenerManager.res
@@ -3,13 +3,13 @@ type sessionStorage
@send external setItem: (sessionStorage, string, 'a => unit) => unit = "setItem"
-let eventListenerMap: Js.Dict.t unit> = Js.Dict.empty()
+let eventListenerMap: Dict.t unit> = Dict.make()
let addSmartEventListener = (type_, handlerMethod: Types.event => unit, activity) => {
- switch eventListenerMap->Js.Dict.get(activity) {
+ switch eventListenerMap->Dict.get(activity) {
| Some(value) => Window.removeEventListener(type_, value)
| None => ()
}
- eventListenerMap->Js.Dict.set(activity, handlerMethod)
+ eventListenerMap->Dict.set(activity, handlerMethod)
Window.addEventListener(type_, handlerMethod)
}
diff --git a/src/Utilities/LazyUtils.res b/src/Utilities/LazyUtils.res
index 9a234df8..c9eb8f4e 100644
--- a/src/Utilities/LazyUtils.res
+++ b/src/Utilities/LazyUtils.res
@@ -1,9 +1,9 @@
type lazyScreen
-type lazyScreenLoader = unit => Js.Promise.t
+type lazyScreenLoader = unit => Promise.t
@val
-external import_: string => Js.Promise.t = "import"
+external import_: string => Promise.t = "import"
type reactLazy<'component> = (. lazyScreenLoader) => 'component
diff --git a/src/Utilities/LoggerUtils.res b/src/Utilities/LoggerUtils.res
index 1a955cf2..36511b54 100644
--- a/src/Utilities/LoggerUtils.res
+++ b/src/Utilities/LoggerUtils.res
@@ -12,11 +12,11 @@ let getLogtype = val => {
let logApi = (
~eventName,
~statusCode="",
- ~data: Js.Json.t=Js.Dict.empty()->Js.Json.object_,
+ ~data: JSON.t=Dict.make()->JSON.Encode.object,
~type_,
~url="",
~paymentMethod="",
- ~result: Js.Json.t=Js.Dict.empty()->Js.Json.object_,
+ ~result: JSON.t=Dict.make()->JSON.Encode.object,
~optLogger: option,
~logType: OrcaLogger.logType=INFO,
~logCategory: OrcaLogger.logCategory=API,
@@ -24,24 +24,28 @@ let logApi = (
) => {
let logtype = getLogtype(type_)
let (value, internalMetadata) = switch logtype {
- | Request => ([("url", url->Js.Json.string)], [])
+ | Request => ([("url", url->JSON.Encode.string)], [])
| Response => (
- [("url", url->Js.Json.string), ("statusCode", statusCode->Js.Json.string)],
+ [("url", url->JSON.Encode.string), ("statusCode", statusCode->JSON.Encode.string)],
[("response", data)],
)
| NoResponse => (
- [("url", url->Js.Json.string), ("statusCode", "504"->Js.Json.string), ("response", data)],
+ [
+ ("url", url->JSON.Encode.string),
+ ("statusCode", "504"->JSON.Encode.string),
+ ("response", data),
+ ],
[("response", data)],
)
| Err => (
[
- ("url", url->Js.Json.string),
- ("statusCode", statusCode->Js.Json.string),
+ ("url", url->JSON.Encode.string),
+ ("statusCode", statusCode->JSON.Encode.string),
("response", data),
],
[("response", data)],
)
- | Method => ([("method", paymentMethod->Js.Json.string)], [("result", result)])
+ | Method => ([("method", paymentMethod->JSON.Encode.string)], [("result", result)])
}
switch optLogger {
| Some(logger) =>
@@ -60,10 +64,10 @@ let logApi = (
let logInputChangeInfo = (text, logger: OrcaLogger.loggerMake) => {
logger.setLogInfo(
- ~value=[("inputChange", text->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_
- ->Js.Json.stringify,
+ ~value=[("inputChange", text->JSON.Encode.string)]
+ ->Dict.fromArray
+ ->JSON.Encode.object
+ ->JSON.stringify,
~eventName=INPUT_FIELD_CHANGED,
(),
)
diff --git a/src/Utilities/PaymentBody.res b/src/Utilities/PaymentBody.res
index f366efcb..bb83b64c 100644
--- a/src/Utilities/PaymentBody.res
+++ b/src/Utilities/PaymentBody.res
@@ -11,37 +11,37 @@ let cardPaymentBody = (
(),
) => {
let cardBody = [
- ("card_number", cardNumber->CardUtils.clearSpaces->Js.Json.string),
- ("card_exp_month", month->Js.Json.string),
- ("card_exp_year", year->Js.Json.string),
- ("card_holder_name", cardHolderName->Js.Json.string),
- ("card_cvc", cvcNumber->Js.Json.string),
- ("card_issuer", ""->Js.Json.string),
+ ("card_number", cardNumber->CardUtils.clearSpaces->JSON.Encode.string),
+ ("card_exp_month", month->JSON.Encode.string),
+ ("card_exp_year", year->JSON.Encode.string),
+ ("card_holder_name", cardHolderName->JSON.Encode.string),
+ ("card_cvc", cvcNumber->JSON.Encode.string),
+ ("card_issuer", ""->JSON.Encode.string),
]
if nickname != "" {
- cardBody->Js.Array2.push(("nick_name", nickname->Js.Json.string))->ignore
+ cardBody->Array.push(("nick_name", nickname->JSON.Encode.string))->ignore
}
[
- ("payment_method", "card"->Js.Json.string),
+ ("payment_method", "card"->JSON.Encode.string),
(
"payment_method_data",
- [("card", cardBody->Js.Array2.concat(cardBrand)->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("card", cardBody->Array.concat(cardBrand)->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
}
let bancontactBody = () => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "bancontact_card"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "bancontact_card"->JSON.Encode.string),
]
let boletoBody = (~socialSecurityNumber) => [
- ("payment_method", "voucher"->Js.Json.string),
- ("payment_method_type", "boleto"->Js.Json.string),
+ ("payment_method", "voucher"->JSON.Encode.string),
+ ("payment_method_type", "boleto"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -50,29 +50,29 @@ let boletoBody = (~socialSecurityNumber) => [
[
(
"boleto",
- [("social_security_number", socialSecurityNumber->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("social_security_number", socialSecurityNumber->JSON.Encode.string)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let savedCardBody = (~paymentToken, ~customerId, ~cvcNumber, ~requiresCvv) => {
let savedCardBody = [
- ("payment_method", "card"->Js.Json.string),
- ("payment_token", paymentToken->Js.Json.string),
- ("customer_id", customerId->Js.Json.string),
+ ("payment_method", "card"->JSON.Encode.string),
+ ("payment_token", paymentToken->JSON.Encode.string),
+ ("customer_id", customerId->JSON.Encode.string),
]
if requiresCvv {
- savedCardBody->Js.Array2.push(("card_cvc", cvcNumber->Js.Json.string))->ignore
+ savedCardBody->Array.push(("card_cvc", cvcNumber->JSON.Encode.string))->ignore
}
savedCardBody
@@ -80,22 +80,22 @@ let savedCardBody = (~paymentToken, ~customerId, ~cvcNumber, ~requiresCvv) => {
let customerAcceptanceBody =
[
- ("acceptance_type", "online"->Js.Json.string),
- ("accepted_at", Js.Date.now()->Js.Date.fromFloat->Js.Date.toISOString->Js.Json.string),
+ ("acceptance_type", "online"->JSON.Encode.string),
+ ("accepted_at", Date.now()->Js.Date.fromFloat->Date.toISOString->JSON.Encode.string),
(
"online",
- [("user_agent", BrowserSpec.navigator.userAgent->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("user_agent", BrowserSpec.navigator.userAgent->JSON.Encode.string)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_
+ ->Dict.fromArray
+ ->JSON.Encode.object
let savedPaymentMethodBody = (~paymentToken, ~customerId, ~paymentMethod, ~paymentMethodType) => [
- ("payment_method", paymentMethod->Js.Json.string),
- ("payment_token", paymentToken->Js.Json.string),
- ("customer_id", customerId->Js.Json.string),
+ ("payment_method", paymentMethod->JSON.Encode.string),
+ ("payment_token", paymentToken->JSON.Encode.string),
+ ("customer_id", customerId->JSON.Encode.string),
("payment_method_type", paymentMethodType),
]
@@ -103,17 +103,17 @@ let mandateBody = paymentType => {
[
(
"mandate_data",
- [("customer_acceptance", customerAcceptanceBody)]->Js.Dict.fromArray->Js.Json.object_,
+ [("customer_acceptance", customerAcceptanceBody)]->Dict.fromArray->JSON.Encode.object,
),
("customer_acceptance", customerAcceptanceBody),
- ("setup_future_usage", "off_session"->Js.Json.string),
- ("payment_type", {paymentType === "" ? Js.Json.null : paymentType->Js.Json.string}),
+ ("setup_future_usage", "off_session"->JSON.Encode.string),
+ ("payment_type", {paymentType === "" ? JSON.Encode.null : paymentType->JSON.Encode.string}),
]
}
let paymentTypeBody = paymentType => {
if paymentType != "" {
- [("payment_type", paymentType->Js.Json.string)]
+ [("payment_type", paymentType->JSON.Encode.string)]
} else {
[]
}
@@ -145,9 +145,9 @@ let achBankDebitBody = (
~paymentType,
) =>
[
- ("payment_method", "bank_debit"->Js.Json.string),
- ("setup_future_usage", "off_session"->Js.Json.string),
- ("payment_method_type", "ach"->Js.Json.string),
+ ("payment_method", "bank_debit"->JSON.Encode.string),
+ ("setup_future_usage", "off_session"->JSON.Encode.string),
+ ("payment_method_type", "ach"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -160,40 +160,40 @@ let achBankDebitBody = (
(
"billing_details",
[
- ("name", cardHolderName->Js.Json.string),
- ("email", email->Js.Json.string),
+ ("name", cardHolderName->JSON.Encode.string),
+ ("email", email->JSON.Encode.string),
(
"address",
[
- ("line1", line1->Js.Json.string),
- ("line2", line2->Js.Json.string),
- ("city", city->Js.Json.string),
- ("state", state->Js.Json.string),
- ("zip", postalCode->Js.Json.string),
- ("country", country->Js.Json.string),
+ ("line1", line1->JSON.Encode.string),
+ ("line2", line2->JSON.Encode.string),
+ ("city", city->JSON.Encode.string),
+ ("state", state->JSON.Encode.string),
+ ("zip", postalCode->JSON.Encode.string),
+ ("country", country->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
- ("account_number", bank.accountNumber->Js.Json.string),
- ("bank_account_holder_name", bank.accountHolderName->Js.Json.string),
- ("routing_number", bank.routingNumber->Js.Json.string),
- ("bank_type", bank.accountType->Js.Json.string),
+ ("account_number", bank.accountNumber->JSON.Encode.string),
+ ("bank_account_holder_name", bank.accountHolderName->JSON.Encode.string),
+ ("routing_number", bank.routingNumber->JSON.Encode.string),
+ ("bank_type", bank.accountType->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]->Array.concat(mandateBody(paymentType->PaymentMethodsRecord.paymentTypeToStringMapper))
@@ -208,8 +208,8 @@ let sepaBankDebitBody = (
~postalCode,
~state,
) => [
- ("payment_method", "bank_debit"->Js.Json.string),
- ("payment_method_type", "sepa"->Js.Json.string),
+ ("payment_method", "bank_debit"->JSON.Encode.string),
+ ("payment_method_type", "sepa"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -222,38 +222,38 @@ let sepaBankDebitBody = (
(
"billing_details",
[
- ("name", fullName->Js.Json.string),
- ("email", email->Js.Json.string),
+ ("name", fullName->JSON.Encode.string),
+ ("email", email->JSON.Encode.string),
(
"address",
[
- ("line1", line1->Js.Json.string),
- ("line2", line2->Js.Json.string),
- ("city", city->Js.Json.string),
- ("state", state->Js.Json.string),
- ("zip", postalCode->Js.Json.string),
- ("country", country->Js.Json.string),
+ ("line1", line1->JSON.Encode.string),
+ ("line2", line2->JSON.Encode.string),
+ ("city", city->JSON.Encode.string),
+ ("state", state->JSON.Encode.string),
+ ("zip", postalCode->JSON.Encode.string),
+ ("country", country->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
- ("iban", data.iban->Js.Json.string),
- ("bank_account_holder_name", data.accountHolderName->Js.Json.string),
+ ("iban", data.iban->JSON.Encode.string),
+ ("bank_account_holder_name", data.accountHolderName->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
@@ -269,8 +269,8 @@ let bacsBankDebitBody = (
~country,
~bankAccountHolderName,
) => [
- ("payment_method", "bank_debit"->Js.Json.string),
- ("payment_method_type", "bacs"->Js.Json.string),
+ ("payment_method", "bank_debit"->JSON.Encode.string),
+ ("payment_method_type", "bacs"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -283,39 +283,39 @@ let bacsBankDebitBody = (
(
"billing_details",
[
- ("name", bankAccountHolderName->Js.Json.string),
- ("email", email->Js.Json.string),
+ ("name", bankAccountHolderName->JSON.Encode.string),
+ ("email", email->JSON.Encode.string),
(
"address",
[
- ("line1", line1->Js.Json.string),
- ("line2", line2->Js.Json.string),
- ("city", city->Js.Json.string),
- ("zip", zip->Js.Json.string),
- ("state", state->Js.Json.string),
- ("country", country->Js.Json.string),
+ ("line1", line1->JSON.Encode.string),
+ ("line2", line2->JSON.Encode.string),
+ ("city", city->JSON.Encode.string),
+ ("zip", zip->JSON.Encode.string),
+ ("state", state->JSON.Encode.string),
+ ("country", country->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
- ("bank_account_holder_name", bankAccountHolderName->Js.Json.string),
- ("sort_code", sortCode->Js.Json.string),
- ("account_number", accNum->Js.Json.string),
+ ("bank_account_holder_name", bankAccountHolderName->JSON.Encode.string),
+ ("sort_code", sortCode->JSON.Encode.string),
+ ("account_number", accNum->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
@@ -330,8 +330,8 @@ let becsBankDebitBody = (
~postalCode,
~state,
) => [
- ("payment_method", "bank_debit"->Js.Json.string),
- ("payment_method_type", "becs"->Js.Json.string),
+ ("payment_method", "bank_debit"->JSON.Encode.string),
+ ("payment_method_type", "becs"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -344,48 +344,48 @@ let becsBankDebitBody = (
(
"billing_details",
[
- ("name", fullName->Js.Json.string),
- ("email", email->Js.Json.string),
+ ("name", fullName->JSON.Encode.string),
+ ("email", email->JSON.Encode.string),
(
"address",
[
- ("line1", line1->Js.Json.string),
- ("line2", line2->Js.Json.string),
- ("city", city->Js.Json.string),
- ("state", state->Js.Json.string),
- ("zip", postalCode->Js.Json.string),
- ("country", country->Js.Json.string),
+ ("line1", line1->JSON.Encode.string),
+ ("line2", line2->JSON.Encode.string),
+ ("city", city->JSON.Encode.string),
+ ("state", state->JSON.Encode.string),
+ ("zip", postalCode->JSON.Encode.string),
+ ("country", country->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
- ("bsb_number", data.sortCode->Js.Json.string),
- ("account_number", data.accountNumber->Js.Json.string),
- ("bank_account_holder_name", data.accountHolderName->Js.Json.string),
+ ("bsb_number", data.sortCode->JSON.Encode.string),
+ ("account_number", data.accountNumber->JSON.Encode.string),
+ ("bank_account_holder_name", data.accountHolderName->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let klarnaRedirectionBody = (~fullName, ~email, ~country, ~connectors) => [
- ("payment_method", "pay_later"->Js.Json.string),
- ("payment_method_type", "klarna"->Js.Json.string),
- ("payment_experience", "redirect_to_url"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
- ("name", fullName->Js.Json.string),
+ ("payment_method", "pay_later"->JSON.Encode.string),
+ ("payment_method_type", "klarna"->JSON.Encode.string),
+ ("payment_experience", "redirect_to_url"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
+ ("name", fullName->JSON.Encode.string),
(
"payment_method_data",
[
@@ -394,84 +394,87 @@ let klarnaRedirectionBody = (~fullName, ~email, ~country, ~connectors) => [
[
(
"klarna_redirect",
- [("billing_email", email->Js.Json.string), ("billing_country", country->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [
+ ("billing_email", email->JSON.Encode.string),
+ ("billing_country", country->JSON.Encode.string),
+ ]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let klarnaSDKbody = (~token, ~connectors) => [
- ("payment_method", "pay_later"->Js.Json.string),
- ("payment_method_type", "klarna"->Js.Json.string),
- ("payment_experience", "invoke_sdk_client"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
+ ("payment_method", "pay_later"->JSON.Encode.string),
+ ("payment_method_type", "klarna"->JSON.Encode.string),
+ ("payment_experience", "invoke_sdk_client"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
(
"payment_method_data",
[
(
"pay_later",
- [("klarna_sdk", [("token", token->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("klarna_sdk", [("token", token->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let paypalRedirectionBody = (~connectors) => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "paypal"->Js.Json.string),
- ("payment_experience", "redirect_to_url"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "paypal"->JSON.Encode.string),
+ ("payment_experience", "redirect_to_url"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
(
"payment_method_data",
[
(
"wallet",
- [("paypal_redirect", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("paypal_redirect", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let paypalSdkBody = (~token, ~connectors) => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "paypal"->Js.Json.string),
- ("payment_experience", "invoke_sdk_client"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "paypal"->JSON.Encode.string),
+ ("payment_experience", "invoke_sdk_client"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
(
"payment_method_data",
[
(
"wallet",
- [("paypal_sdk", [("token", token->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("paypal_sdk", [("token", token->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let gpayBody = (~payObj: GooglePayType.paymentData, ~connectors: array) => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "google_pay"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "google_pay"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
(
"payment_method_data",
[
@@ -481,173 +484,178 @@ let gpayBody = (~payObj: GooglePayType.paymentData, ~connectors: array)
(
"google_pay",
[
- ("type", payObj.paymentMethodData.\"type"->Js.Json.string),
- ("description", payObj.paymentMethodData.description->Js.Json.string),
+ ("type", payObj.paymentMethodData.\"type"->JSON.Encode.string),
+ ("description", payObj.paymentMethodData.description->JSON.Encode.string),
("info", payObj.paymentMethodData.info->Utils.transformKeys(Utils.SnakeCase)),
(
"tokenization_data",
payObj.paymentMethodData.tokenizationData->Utils.transformKeys(Utils.SnakeCase),
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let gpayRedirectBody = (~connectors: array) => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "google_pay"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "google_pay"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
(
"payment_method_data",
[
(
"wallet",
- [("google_pay_redirect", Js.Dict.empty()->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("google_pay_redirect", Dict.make()->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let gPayThirdPartySdkBody = (~connectors) => {
[
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "google_pay"->Js.Json.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "google_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("google_pay_third_party_sdk", Js.Dict.empty()->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("google_pay_third_party_sdk", Dict.make()->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
}
let applePayBody = (~token, ~connectors) => {
- let dict = token->Js.Json.decodeObject->Belt.Option.getWithDefault(Js.Dict.empty())
+ let dict = token->JSON.Decode.object->Option.getOr(Dict.make())
let paymentDataString =
dict
- ->Js.Dict.get("paymentData")
- ->Belt.Option.getWithDefault(Js.Dict.empty()->Js.Json.object_)
- ->Js.Json.stringify
+ ->Dict.get("paymentData")
+ ->Option.getOr(Dict.make()->JSON.Encode.object)
+ ->JSON.stringify
->btoa
- dict->Js.Dict.set("paymentData", paymentDataString->Js.Json.string)
+ dict->Dict.set("paymentData", paymentDataString->JSON.Encode.string)
[
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "apple_pay"->Js.Json.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "apple_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("apple_pay", dict->Js.Json.object_->Utils.transformKeys(SnakeCase))]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("apple_pay", dict->JSON.Encode.object->Utils.transformKeys(SnakeCase))]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
}
let applePayRedirectBody = (~connectors) => {
[
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "apple_pay"->Js.Json.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "apple_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("apple_pay_redirect", Js.Dict.empty()->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("apple_pay_redirect", Dict.make()->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
}
let applePayThirdPartySdkBody = (~connectors) => {
[
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "apple_pay"->Js.Json.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "apple_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("apple_pay_third_party_sdk", Js.Dict.empty()->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("apple_pay_third_party_sdk", Dict.make()->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
}
let affirmBody = () => [
- ("payment_method", "pay_later"->Js.Json.string),
- ("payment_method_type", "affirm"->Js.Json.string),
- ("payment_experience", "redirect_to_url"->Js.Json.string),
+ ("payment_method", "pay_later"->JSON.Encode.string),
+ ("payment_method_type", "affirm"->JSON.Encode.string),
+ ("payment_experience", "redirect_to_url"->JSON.Encode.string),
(
"payment_method_data",
[
(
"pay_later",
- [("affirm_redirect", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("affirm_redirect", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let cryptoBody = (~currency) => [
- ("payment_method", "crypto"->Js.Json.string),
- ("payment_method_type", "crypto_currency"->Js.Json.string),
- ("payment_experience", "redirect_to_url"->Js.Json.string),
+ ("payment_method", "crypto"->JSON.Encode.string),
+ ("payment_method_type", "crypto_currency"->JSON.Encode.string),
+ ("payment_experience", "redirect_to_url"->JSON.Encode.string),
(
"payment_method_data",
- [("crypto", [("pay_currency", currency->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [
+ (
+ "crypto",
+ [("pay_currency", currency->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
+ ),
+ ]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let afterpayRedirectionBody = (~fullName, ~email) => [
- ("payment_method", "pay_later"->Js.Json.string),
- ("payment_method_type", "afterpay_clearpay"->Js.Json.string),
- ("payment_experience", "redirect_to_url"->Js.Json.string),
+ ("payment_method", "pay_later"->JSON.Encode.string),
+ ("payment_method_type", "afterpay_clearpay"->JSON.Encode.string),
+ ("payment_experience", "redirect_to_url"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -656,23 +664,26 @@ let afterpayRedirectionBody = (~fullName, ~email) => [
[
(
"afterpay_clearpay_redirect",
- [("billing_email", email->Js.Json.string), ("billing_name", fullName->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [
+ ("billing_email", email->JSON.Encode.string),
+ ("billing_name", fullName->JSON.Encode.string),
+ ]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let giroPayBody = (~name, ~iban="", ()) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "giropay"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "giropay"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -684,26 +695,26 @@ let giroPayBody = (~name, ~iban="", ()) => [
[
(
"billing_details",
- [("billing_name", name->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("billing_name", name->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
- ("bank_account_iban", iban->Js.Json.string),
+ ("bank_account_iban", iban->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let sofortBody = (~country, ~name, ~email) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "sofort"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "sofort"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -713,34 +724,34 @@ let sofortBody = (~country, ~name, ~email) => [
(
"sofort",
[
- ("country", (country == "" ? "US" : country)->Js.Json.string),
- ("preferred_language", "en"->Js.Json.string),
+ ("country", (country == "" ? "US" : country)->JSON.Encode.string),
+ ("preferred_language", "en"->JSON.Encode.string),
(
"billing_details",
[
- ("billing_name", name->Js.Json.string),
- ("email", (email == "" ? "test@gmail.com" : email)->Js.Json.string),
+ ("billing_name", name->JSON.Encode.string),
+ ("email", (email == "" ? "test@gmail.com" : email)->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let iDealBody = (~name, ~bankName) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "ideal"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "ideal"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -752,26 +763,26 @@ let iDealBody = (~name, ~bankName) => [
[
(
"billing_details",
- [("billing_name", name->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("billing_name", name->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
- ("bank_name", (bankName == "" ? "american_express" : bankName)->Js.Json.string),
+ ("bank_name", (bankName == "" ? "american_express" : bankName)->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let epsBody = (~name, ~bankName) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "eps"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "eps"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -783,27 +794,27 @@ let epsBody = (~name, ~bankName) => [
[
(
"billing_details",
- [("billing_name", name->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("billing_name", name->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
- ("bank_name", (bankName === "" ? "american_express" : bankName)->Js.Json.string),
+ ("bank_name", (bankName === "" ? "american_express" : bankName)->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let achBankTransferBody = (~email, ~connectors) => [
- ("payment_method", "bank_transfer"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
- ("payment_method_type", "ach"->Js.Json.string),
+ ("payment_method", "bank_transfer"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
+ ("payment_method_type", "ach"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -815,25 +826,25 @@ let achBankTransferBody = (~email, ~connectors) => [
[
(
"billing_details",
- [("email", email->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("email", email->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let bacsBankTransferBody = (~email, ~name, ~connectors) => [
- ("payment_method", "bank_transfer"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
- ("payment_method_type", "bacs"->Js.Json.string),
+ ("payment_method", "bank_transfer"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
+ ("payment_method_type", "bacs"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -845,27 +856,27 @@ let bacsBankTransferBody = (~email, ~name, ~connectors) => [
[
(
"billing_details",
- [("email", email->Js.Json.string), ("name", name->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("email", email->JSON.Encode.string), ("name", name->JSON.Encode.string)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let sepaBankTransferBody = (~email, ~name, ~country, ~connectors) => [
- ("payment_method", "bank_transfer"->Js.Json.string),
- ("connector", connectors->Utils.getArrofJsonString->Js.Json.array),
- ("payment_method_type", "sepa"->Js.Json.string),
+ ("payment_method", "bank_transfer"->JSON.Encode.string),
+ ("connector", connectors->Utils.getArrofJsonString->JSON.Encode.array),
+ ("payment_method_type", "sepa"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -877,45 +888,50 @@ let sepaBankTransferBody = (~email, ~name, ~country, ~connectors) => [
[
(
"billing_details",
- [("email", email->Js.Json.string), ("name", name->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("email", email->JSON.Encode.string), ("name", name->JSON.Encode.string)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
- ("country", country->Js.Json.string),
+ ("country", country->JSON.Encode.string),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let blikBody = (~blikCode) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "blik"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "blik"->JSON.Encode.string),
(
"payment_method_data",
[
(
"bank_redirect",
- [("blik", [("blik_code", blikCode->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [
+ (
+ "blik",
+ [("blik_code", blikCode->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
+ ),
+ ]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let p24Body = (~email) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "przelewy24"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "przelewy24"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -927,25 +943,25 @@ let p24Body = (~email) => [
[
(
"billing_details",
- [("email", email->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("email", email->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let interacBody = (~email, ~country) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "interac"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "interac"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -954,149 +970,154 @@ let interacBody = (~email, ~country) => [
[
(
"interac",
- [("email", email->Js.Json.string), ("country", country->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("email", email->JSON.Encode.string), ("country", country->JSON.Encode.string)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let mobilePayBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "mobile_pay"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "mobile_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("mobile_pay", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("mobile_pay", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let aliPayRedirectBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "ali_pay"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "ali_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("ali_pay_redirect", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("ali_pay_redirect", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let aliPayQrBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "ali_pay"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "ali_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("ali_pay_qr", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("ali_pay_qr", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let weChatPayRedirectBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "we_chat_pay"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "we_chat_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("we_chat_pay_redirect", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("we_chat_pay_redirect", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let weChatPayQrBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "we_chat_pay"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "we_chat_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("we_chat_pay_qr", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("we_chat_pay_qr", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let trustlyBody = (~country) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "trustly"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "trustly"->JSON.Encode.string),
(
"payment_method_data",
[
(
"bank_redirect",
- [("trustly", [("country", country->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [
+ (
+ "trustly",
+ [("country", country->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
+ ),
+ ]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let finlandOB = () => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "online_banking_finland"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "online_banking_finland"->JSON.Encode.string),
(
"payment_method_data",
[
(
"bank_redirect",
- [("online_banking_finland", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("online_banking_finland", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let polandOB = (~bank) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "online_banking_poland"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "online_banking_poland"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -1105,21 +1126,21 @@ let polandOB = (~bank) => [
[
(
"online_banking_poland",
- [("issuer", bank->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("issuer", bank->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let czechOB = (~bank) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "online_banking_czech_republic"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "online_banking_czech_republic"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -1128,21 +1149,21 @@ let czechOB = (~bank) => [
[
(
"online_banking_czech_republic",
- [("issuer", bank->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("issuer", bank->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let slovakiaOB = (~bank) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "online_banking_slovakia"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "online_banking_slovakia"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -1151,56 +1172,56 @@ let slovakiaOB = (~bank) => [
[
(
"online_banking_slovakia",
- [("issuer", bank->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("issuer", bank->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let walleyBody = () => [
- ("payment_method", "pay_later"->Js.Json.string),
- ("payment_method_type", "walley"->Js.Json.string),
+ ("payment_method", "pay_later"->JSON.Encode.string),
+ ("payment_method_type", "walley"->JSON.Encode.string),
(
"payment_method_data",
[
(
"pay_later",
- [("walley_redirect", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("walley_redirect", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let payBrightBody = () => [
- ("payment_method", "pay_later"->Js.Json.string),
- ("payment_method_type", "pay_bright"->Js.Json.string),
+ ("payment_method", "pay_later"->JSON.Encode.string),
+ ("payment_method_type", "pay_bright"->JSON.Encode.string),
(
"payment_method_data",
[
(
"pay_later",
- [("pay_bright_redirect", []->Js.Dict.fromArray->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("pay_bright_redirect", []->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let mbWayBody = (~phoneNumber) => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "mb_way"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "mb_way"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -1209,173 +1230,175 @@ let mbWayBody = (~phoneNumber) => [
[
(
"mb_way_redirect",
- [("telephone_number", phoneNumber->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("telephone_number", phoneNumber->JSON.Encode.string)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let twintBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "twint"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "twint"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("twint_redirect", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("twint_redirect", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let vippsBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "vipps"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "vipps"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("vipps_redirect", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("vipps_redirect", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let danaBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "dana"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "dana"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("dana_redirect", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("dana_redirect", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let goPayBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "go_pay"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "go_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("go_pay_redirect", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("go_pay_redirect", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let kakaoPayBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "kakao_pay"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "kakao_pay"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("kakao_pay_redirect", Js.Dict.empty()->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("kakao_pay_redirect", Dict.make()->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let gcashBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "gcash"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "gcash"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("gcash_redirect", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("gcash_redirect", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let momoBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "momo"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "momo"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("momo_redirect", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("momo_redirect", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let touchNGoBody = () => [
- ("payment_method", "wallet"->Js.Json.string),
- ("payment_method_type", "touch_n_go"->Js.Json.string),
+ ("payment_method", "wallet"->JSON.Encode.string),
+ ("payment_method_type", "touch_n_go"->JSON.Encode.string),
(
"payment_method_data",
[
(
"wallet",
- [("touch_n_go_redirect", Js.Dict.empty()->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("touch_n_go_redirect", Dict.make()->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let bizumBody = () => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "bizum"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "bizum"->JSON.Encode.string),
(
"payment_method_data",
[
(
"bank_redirect",
- [("bizum", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("bizum", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let rewardBody = (~paymentMethodType) => [
- ("payment_method", "reward"->Js.Json.string),
- ("payment_method_type", paymentMethodType->Js.Json.string),
- ("payment_method_data", "reward"->Js.Json.string),
+ ("payment_method", "reward"->JSON.Encode.string),
+ ("payment_method_type", paymentMethodType->JSON.Encode.string),
+ ("payment_method_data", "reward"->JSON.Encode.string),
]
let fpxOBBody = (~bank) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "online_banking_fpx"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "online_banking_fpx"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -1384,20 +1407,20 @@ let fpxOBBody = (~bank) => [
[
(
"online_banking_fpx",
- [("issuer", bank->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("issuer", bank->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let thailandOBBody = (~bank) => [
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "online_banking_thailand"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "online_banking_thailand"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -1406,51 +1429,46 @@ let thailandOBBody = (~bank) => [
[
(
"online_banking_thailand",
- [("issuer", bank->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("issuer", bank->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let almaBody = () => [
- ("payment_method", "pay_later"->Js.Json.string),
- ("payment_method_type", "alma"->Js.Json.string),
+ ("payment_method", "pay_later"->JSON.Encode.string),
+ ("payment_method_type", "alma"->JSON.Encode.string),
(
"payment_method_data",
- [
- (
- "pay_later",
- [("alma", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
- ),
- ]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("pay_later", [("alma", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let atomeBody = () => [
- ("payment_method", "pay_later"->Js.Json.string),
- ("payment_method_type", "atome"->Js.Json.string),
+ ("payment_method", "pay_later"->JSON.Encode.string),
+ ("payment_method_type", "atome"->JSON.Encode.string),
(
"payment_method_data",
[
(
"pay_later",
- [("atome_redirect", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("atome_redirect", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let multibancoBody = (~email) => [
- ("payment_method", "bank_transfer"->Js.Json.string),
- ("payment_method_type", "multibanco"->Js.Json.string),
+ ("payment_method", "bank_transfer"->JSON.Encode.string),
+ ("payment_method_type", "multibanco"->JSON.Encode.string),
(
"payment_method_data",
[
@@ -1462,74 +1480,74 @@ let multibancoBody = (~email) => [
[
(
"billing_details",
- [("email", email->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_,
+ [("email", email->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
let cardRedirectBody = () => {
[
- ("payment_method", "card_redirect"->Js.Json.string),
- ("payment_method_type", "card_redirect"->Js.Json.string),
+ ("payment_method", "card_redirect"->JSON.Encode.string),
+ ("payment_method_type", "card_redirect"->JSON.Encode.string),
(
"payment_method_data",
[
(
"card_redirect",
- [("card_redirect", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("card_redirect", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
}
let openBankingUKBody = () => {
[
- ("payment_method", "bank_redirect"->Js.Json.string),
- ("payment_method_type", "open_banking_uk"->Js.Json.string),
+ ("payment_method", "bank_redirect"->JSON.Encode.string),
+ ("payment_method_type", "open_banking_uk"->JSON.Encode.string),
(
"payment_method_data",
[
(
"bank_redirect",
- [("open_banking_uk", Js.Dict.empty()->Js.Json.object_)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("open_banking_uk", Dict.make()->JSON.Encode.object)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
}
let pixTransferBody = () => {
[
- ("payment_method", "bank_transfer"->Js.Json.string),
- ("payment_method_type", "pix"->Js.Json.string),
+ ("payment_method", "bank_transfer"->JSON.Encode.string),
+ ("payment_method_type", "pix"->JSON.Encode.string),
(
"payment_method_data",
[
(
"bank_transfer",
- [("pix", Js.Dict.empty()->Js.Json.object_)]->Js.Dict.fromArray->Js.Json.object_,
+ [("pix", Dict.make()->JSON.Encode.object)]->Dict.fromArray->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
}
diff --git a/src/Utilities/PaymentHelpers.res b/src/Utilities/PaymentHelpers.res
index 8a3c3958..a003e79b 100644
--- a/src/Utilities/PaymentHelpers.res
+++ b/src/Utilities/PaymentHelpers.res
@@ -10,11 +10,11 @@ open LoggerUtils
type payment = Card | BankTransfer | BankDebits | KlarnaRedirect | Gpay | Applepay | Paypal | Other
let closePaymentLoaderIfAny = () =>
- Utils.handlePostMessage([("fullscreen", false->Js.Json.boolean)])
+ Utils.handlePostMessage([("fullscreen", false->JSON.Encode.bool)])
let retrievePaymentIntent = (clientSecret, headers, ~optLogger, ~switchToCustomPod) => {
open Promise
- let paymentIntentID = Js.String2.split(clientSecret, "_secret_")[0]->Option.getOr("")
+ let paymentIntentID = String.split(clientSecret, "_secret_")->Array.get(0)->Option.getOr("")
let endpoint = ApiEndpoint.getApiEndPoint()
let uri = `${endpoint}/payments/${paymentIntentID}?client_secret=${clientSecret}`
@@ -34,8 +34,8 @@ let retrievePaymentIntent = (clientSecret, headers, ~optLogger, ~switchToCustomP
(),
)
->then(res => {
- let statusCode = res->Fetch.Response.status->string_of_int
- if statusCode->Js.String2.charAt(0) !== "2" {
+ let statusCode = res->Fetch.Response.status->Int.toString
+ if statusCode->String.charAt(0) !== "2" {
res
->Fetch.Response.json
->then(data => {
@@ -50,7 +50,7 @@ let retrievePaymentIntent = (clientSecret, headers, ~optLogger, ~switchToCustomP
~logCategory=API,
(),
)
- Js.Json.null->resolve
+ JSON.Encode.null->resolve
})
} else {
logApi(
@@ -67,8 +67,8 @@ let retrievePaymentIntent = (clientSecret, headers, ~optLogger, ~switchToCustomP
}
})
->catch(e => {
- Js.log2("Unable to retrieve payment details because of ", e)
- Js.Json.null->resolve
+ Console.log2("Unable to retrieve payment details because of ", e)
+ JSON.Encode.null->resolve
})
}
@@ -76,7 +76,7 @@ let rec pollRetrievePaymentIntent = (clientSecret, headers, ~optLogger, ~switchT
open Promise
retrievePaymentIntent(clientSecret, headers, ~optLogger, ~switchToCustomPod)
->then(json => {
- let dict = json->Js.Json.decodeObject->Belt.Option.getWithDefault(Js.Dict.empty())
+ let dict = json->JSON.Decode.object->Option.getOr(Dict.make())
let status = dict->getString("status", "")
if status === "succeeded" || status === "failed" {
@@ -88,7 +88,7 @@ let rec pollRetrievePaymentIntent = (clientSecret, headers, ~optLogger, ~switchT
}
})
->catch(e => {
- Js.log2("Unable to retrieve payment due to following error", e)
+ Console.log2("Unable to retrieve payment due to following error", e)
pollRetrievePaymentIntent(clientSecret, headers, ~optLogger, ~switchToCustomPod)
})
}
@@ -97,7 +97,7 @@ let rec intentCall = (
~fetchApi: (
string,
~bodyStr: string=?,
- ~headers: Js.Dict.t=?,
+ ~headers: Dict.t=?,
~method: Fetch.method,
unit,
) => OrcaPaymentPage.Promise.t,
@@ -120,7 +120,7 @@ let rec intentCall = (
(),
) => {
open Promise
- let isConfirm = uri->Js.String2.includes("/confirm")
+ let isConfirm = uri->String.includes("/confirm")
let (eventName: OrcaLogger.eventName, initEventName: OrcaLogger.eventName) = isConfirm
? (CONFIRM_CALL, CONFIRM_CALL_INIT)
: (RETRIEVE_CALL, RETRIEVE_CALL_INIT)
@@ -148,12 +148,12 @@ let rec intentCall = (
(),
)
->then(res => {
- let statusCode = res->Fetch.Response.status->string_of_int
+ let statusCode = res->Fetch.Response.status->Int.toString
let url = urlSearch(confirmParam.return_url)
url.searchParams.set(. "payment_intent_client_secret", clientSecret)
url.searchParams.set(. "status", "failed")
- if statusCode->Js.String2.charAt(0) !== "2" {
+ if statusCode->String.charAt(0) !== "2" {
res
->Fetch.Response.json
->then(data => {
@@ -164,13 +164,13 @@ let rec intentCall = (
| Card => "CARD"
| _ =>
bodyStr
- ->Js.Json.parseExn
+ ->JSON.parseExn
->Utils.getDictFromJson
->Utils.getString("payment_method_type", "")
}
handleLogging(
~optLogger,
- ~value=data->Js.Json.stringify,
+ ~value=data->JSON.stringify,
~eventName=PAYMENT_FAILED,
~paymentMethod,
(),
@@ -240,9 +240,7 @@ let rec intentCall = (
}
} else {
let paymentIntentID =
- Js.String2.split(clientSecret, "_secret_")
- ->Belt.Array.get(0)
- ->Belt.Option.getWithDefault("")
+ String.split(clientSecret, "_secret_")->Array.get(0)->Option.getOr("")
let endpoint = ApiEndpoint.getApiEndPoint(
~publishableKey=confirmParam.publishableKey,
(),
@@ -325,73 +323,72 @@ let rec intentCall = (
} else if intent.nextAction.type_ == "display_bank_transfer_information" {
let metadata = switch intent.nextAction.bank_transfer_steps_and_charges_details {
| Some(obj) => obj->Utils.getDictFromJson
- | None => Js.Dict.empty()
+ | None => Dict.make()
}
let dict = deepCopyDict(metadata)
- dict->Js.Dict.set("data", data)
- dict->Js.Dict.set("url", url.href->Js.Json.string)
+ dict->Dict.set("data", data)
+ dict->Dict.set("url", url.href->JSON.Encode.string)
handleLogging(
~optLogger,
~value="",
- ~internalMetadata=dict->Js.Json.object_->Js.Json.stringify,
+ ~internalMetadata=dict->JSON.Encode.object->JSON.stringify,
~eventName=DISPLAY_BANK_TRANSFER_INFO_PAGE,
~paymentMethod,
(),
)
if !isPaymentSession {
handlePostMessage([
- ("fullscreen", true->Js.Json.boolean),
- ("param", `${intent.payment_method_type}BankTransfer`->Js.Json.string),
- ("iframeId", iframeId->Js.Json.string),
- ("metadata", dict->Js.Json.object_),
+ ("fullscreen", true->JSON.Encode.bool),
+ ("param", `${intent.payment_method_type}BankTransfer`->JSON.Encode.string),
+ ("iframeId", iframeId->JSON.Encode.string),
+ ("metadata", dict->JSON.Encode.object),
])
}
resolve(. data)
} else if intent.nextAction.type_ === "qr_code_information" {
- let qrData = intent.nextAction.image_data_url->Belt.Option.getWithDefault("")
- let expiryTime =
- intent.nextAction.display_to_timestamp->Belt.Option.getWithDefault(0.0)
- let headerObj = Js.Dict.empty()
- headers->Js.Array2.forEach(
+ let qrData = intent.nextAction.image_data_url->Option.getOr("")
+ let expiryTime = intent.nextAction.display_to_timestamp->Option.getOr(0.0)
+ let headerObj = Dict.make()
+ headers->Array.forEach(
entries => {
let (x, val) = entries
- Js.Dict.set(headerObj, x, val->Js.Json.string)
+ Dict.set(headerObj, x, val->JSON.Encode.string)
},
)
let metaData =
[
- ("qrData", qrData->Js.Json.string),
- ("paymentIntentId", clientSecret->Js.Json.string),
- ("headers", headerObj->Js.Json.object_),
- ("expiryTime", expiryTime->Belt.Float.toString->Js.Json.string),
- ("url", url.href->Js.Json.string),
- ]->Js.Dict.fromArray
+ ("qrData", qrData->JSON.Encode.string),
+ ("paymentIntentId", clientSecret->JSON.Encode.string),
+ ("headers", headerObj->JSON.Encode.object),
+ ("expiryTime", expiryTime->Belt.Float.toString->JSON.Encode.string),
+ ("url", url.href->JSON.Encode.string),
+ ]->Dict.fromArray
handleLogging(
~optLogger,
~value="",
- ~internalMetadata=metaData->Js.Json.object_->Js.Json.stringify,
+ ~internalMetadata=metaData->JSON.Encode.object->JSON.stringify,
~eventName=DISPLAY_QR_CODE_INFO_PAGE,
~paymentMethod,
(),
)
if !isPaymentSession {
handlePostMessage([
- ("fullscreen", true->Js.Json.boolean),
- ("param", `qrData`->Js.Json.string),
- ("iframeId", iframeId->Js.Json.string),
- ("metadata", metaData->Js.Json.object_),
+ ("fullscreen", true->JSON.Encode.bool),
+ ("param", `qrData`->JSON.Encode.string),
+ ("iframeId", iframeId->JSON.Encode.string),
+ ("metadata", metaData->JSON.Encode.object),
])
}
resolve(. data)
} else if intent.nextAction.type_ == "third_party_sdk_session_token" {
let session_token = switch intent.nextAction.session_token {
| Some(token) => token->Utils.getDictFromJson
- | None => Js.Dict.empty()
+ | None => Dict.make()
}
let walletName = session_token->Utils.getString("wallet_name", "")
let message = switch walletName {
| "apple_pay" => [
- ("applePayButtonClicked", true->Js.Json.boolean),
+ ("applePayButtonClicked", true->JSON.Encode.bool),
("applePayPresent", session_token->toJson),
]
| "google_pay" => [("googlePayThirdPartyFlow", session_token->toJson)]
@@ -409,7 +406,7 @@ let rec intentCall = (
~message="Payment failed. Try again!",
)
}
- if uri->Js.String2.includes("force_sync=true") {
+ if uri->String.includes("force_sync=true") {
handleLogging(
~optLogger,
~value=intent.nextAction.type_,
@@ -432,12 +429,12 @@ let rec intentCall = (
if intent.nextAction.type_ == "third_party_sdk_session_token" {
let session_token = switch intent.nextAction.session_token {
| Some(token) => token->Utils.getDictFromJson
- | None => Js.Dict.empty()
+ | None => Dict.make()
}
let walletName = session_token->Utils.getString("wallet_name", "")
let message = switch walletName {
| "apple_pay" => [
- ("applePayButtonClicked", true->Js.Json.boolean),
+ ("applePayButtonClicked", true->JSON.Encode.bool),
("applePayPresent", session_token->toJson),
]
| "google_pay" => [("googlePayThirdPartyFlow", session_token->toJson)]
@@ -521,10 +518,7 @@ let rec intentCall = (
resolve(. failedSubmitResponse)
}
} else {
- let paymentIntentID =
- Js.String2.split(clientSecret, "_secret_")
- ->Belt.Array.get(0)
- ->Belt.Option.getWithDefault("")
+ let paymentIntentID = String.split(clientSecret, "_secret_")->Array.get(0)->Option.getOr("")
let endpoint = ApiEndpoint.getApiEndPoint(~publishableKey=confirmParam.publishableKey, ())
let retrieveUri = `${endpoint}/payments/${paymentIntentID}?client_secret=${clientSecret}`
intentCall(
@@ -566,7 +560,7 @@ let usePaymentSync = (optLogger: option, paymentType: pay
(~handleUserError=false, ~confirmParam: ConfirmType.confirmParams, ~iframeId="", ()) => {
switch keys.clientSecret {
| Some(clientSecret) =>
- let paymentIntentID = Js.String2.split(clientSecret, "_secret_")[0]->Option.getOr("")
+ let paymentIntentID = String.split(clientSecret, "_secret_")->Array.get(0)->Option.getOr("")
let headers = [("Content-Type", "application/json"), ("api-key", confirmParam.publishableKey)]
let endpoint = ApiEndpoint.getApiEndPoint(~publishableKey=confirmParam.publishableKey, ())
let uri = `${endpoint}/payments/${paymentIntentID}?force_sync=true&client_secret=${clientSecret}`
@@ -636,21 +630,21 @@ let usePaymentIntent = (optLogger: option, paymentType: p
)
(
~handleUserError=false,
- ~bodyArr: array<(string, Js.Json.t)>,
+ ~bodyArr: array<(string, JSON.t)>,
~confirmParam: ConfirmType.confirmParams,
~iframeId="",
(),
) => {
switch keys.clientSecret {
| Some(clientSecret) =>
- let paymentIntentID = Js.String2.split(clientSecret, "_secret_")[0]->Option.getOr("")
+ let paymentIntentID = String.split(clientSecret, "_secret_")->Array.get(0)->Option.getOr("")
let headers = [("Content-Type", "application/json"), ("api-key", confirmParam.publishableKey)]
- let returnUrlArr = [("return_url", confirmParam.return_url->Js.Json.string)]
+ let returnUrlArr = [("return_url", confirmParam.return_url->JSON.Encode.string)]
let manual_retry = isManualRetryEnabled
- ? [("retry_action", "manual_retry"->Js.Json.string)]
+ ? [("retry_action", "manual_retry"->JSON.Encode.string)]
: []
let body =
- [("client_secret", clientSecret->Js.Json.string)]->Js.Array2.concatMany([
+ [("client_secret", clientSecret->JSON.Encode.string)]->Array.concatMany([
returnUrlArr,
manual_retry,
])
@@ -663,28 +657,24 @@ let usePaymentIntent = (optLogger: option, paymentType: p
let callIntent = body => {
let maskedPayload =
- body
- ->OrcaUtils.safeParseOpt
- ->Belt.Option.getWithDefault(Js.Json.null)
- ->maskPayload
- ->JSON.stringify
+ body->OrcaUtils.safeParseOpt->Option.getOr(JSON.Encode.null)->maskPayload->JSON.stringify
let loggerPayload =
[
- ("payload", maskedPayload->Js.Json.string),
+ ("payload", maskedPayload->JSON.Encode.string),
(
"headers",
headers
- ->Js.Array2.map(header => {
+ ->Array.map(header => {
let (key, value) = header
- (key, value->Js.Json.string)
+ (key, value->JSON.Encode.string)
})
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_
- ->Js.Json.stringify
+ ->Dict.fromArray
+ ->JSON.Encode.object
+ ->JSON.stringify
switch paymentType {
| Card =>
handleLogging(
@@ -696,14 +686,14 @@ let usePaymentIntent = (optLogger: option, paymentType: p
(),
)
| _ =>
- let _ = bodyArr->Js.Array2.map(((str, json)) => {
+ let _ = bodyArr->Array.map(((str, json)) => {
if str === "payment_method_type" {
handleLogging(
~optLogger,
~value="",
~internalMetadata=loggerPayload,
~eventName=PAYMENT_ATTEMPT,
- ~paymentMethod=json->Js.Json.decodeString->Belt.Option.getWithDefault(""),
+ ~paymentMethod=json->JSON.Decode.string->Option.getOr(""),
(),
)
}
@@ -711,7 +701,7 @@ let usePaymentIntent = (optLogger: option, paymentType: p
})
}
if blockConfirm && Window.isInteg {
- Js.log3("CONFIRM IS BLOCKED", body->Js.Json.parseExn, headers)
+ Console.log3("CONFIRM IS BLOCKED", body->JSON.parseExn, headers)
} else {
intentCall(
~fetchApi,
@@ -738,27 +728,25 @@ let usePaymentIntent = (optLogger: option, paymentType: p
let intentWithoutMandate = mandatePaymentType => {
let bodyStr =
body
- ->Js.Array2.concatMany([
- bodyArr->Js.Array2.concat(broswerInfo()),
+ ->Array.concatMany([
+ bodyArr->Array.concat(broswerInfo()),
mandatePaymentType->PaymentBody.paymentTypeBody,
])
- ->Js.Dict.fromArray
- ->Js.Json.object_
- ->Js.Json.stringify
+ ->Dict.fromArray
+ ->JSON.Encode.object
+ ->JSON.stringify
callIntent(bodyStr)
}
+
let intentWithMandate = mandatePaymentType => {
let bodyStr =
body
- ->Js.Array2.concat(
- bodyArr->Js.Array2.concatMany([
- PaymentBody.mandateBody(mandatePaymentType),
- broswerInfo(),
- ]),
+ ->Array.concat(
+ bodyArr->Array.concatMany([PaymentBody.mandateBody(mandatePaymentType), broswerInfo()]),
)
- ->Js.Dict.fromArray
- ->Js.Json.object_
- ->Js.Json.stringify
+ ->Dict.fromArray
+ ->JSON.Encode.object
+ ->JSON.stringify
callIntent(bodyStr)
}
@@ -805,17 +793,16 @@ let fetchSessions = (
) => {
open Promise
let headers = [("Content-Type", "application/json"), ("api-key", publishableKey)]
- let paymentIntentID =
- Js.String2.split(clientSecret, "_secret_")->Belt.Array.get(0)->Belt.Option.getWithDefault("")
+ let paymentIntentID = String.split(clientSecret, "_secret_")->Array.get(0)->Option.getOr("")
let body =
[
- ("payment_id", paymentIntentID->Js.Json.string),
- ("client_secret", clientSecret->Js.Json.string),
- ("wallets", wallets->Js.Json.array),
- ("delayed_session_token", isDelayedSessionToken->Js.Json.boolean),
+ ("payment_id", paymentIntentID->JSON.Encode.string),
+ ("client_secret", clientSecret->JSON.Encode.string),
+ ("wallets", wallets->JSON.Encode.array),
+ ("delayed_session_token", isDelayedSessionToken->JSON.Encode.bool),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_
+ ->Dict.fromArray
+ ->JSON.Encode.object
let uri = `${endpoint}/payments/session_tokens`
logApi(
~optLogger,
@@ -829,13 +816,13 @@ let fetchSessions = (
fetchApi(
uri,
~method=#POST,
- ~bodyStr=body->Js.Json.stringify,
+ ~bodyStr=body->JSON.stringify,
~headers=headers->ApiEndpoint.addCustomPodHeader(~switchToCustomPod, ()),
(),
)
->then(resp => {
- let statusCode = resp->Fetch.Response.status->string_of_int
- if statusCode->Js.String2.charAt(0) !== "2" {
+ let statusCode = resp->Fetch.Response.status->Int.toString
+ if statusCode->String.charAt(0) !== "2" {
resp
->Fetch.Response.json
->then(data => {
@@ -850,7 +837,7 @@ let fetchSessions = (
~logCategory=API,
(),
)
- Js.Json.null->resolve
+ JSON.Encode.null->resolve
})
} else {
logApi(
@@ -878,7 +865,7 @@ let fetchSessions = (
~data=exceptionMessage,
(),
)
- Js.Json.null->resolve
+ JSON.Encode.null->resolve
})
}
@@ -908,8 +895,8 @@ let fetchPaymentMethodList = (
(),
)
->then(resp => {
- let statusCode = resp->Fetch.Response.status->string_of_int
- if statusCode->Js.String2.charAt(0) !== "2" {
+ let statusCode = resp->Fetch.Response.status->Int.toString
+ if statusCode->String.charAt(0) !== "2" {
resp
->Fetch.Response.json
->then(data => {
@@ -924,7 +911,7 @@ let fetchPaymentMethodList = (
~logCategory=API,
(),
)
- Js.Json.null->resolve
+ JSON.Encode.null->resolve
})
} else {
logApi(
@@ -952,7 +939,7 @@ let fetchPaymentMethodList = (
~data=exceptionMessage,
(),
)
- Js.Json.null->resolve
+ JSON.Encode.null->resolve
})
}
@@ -982,8 +969,8 @@ let fetchCustomerDetails = (
(),
)
->then(res => {
- let statusCode = res->Fetch.Response.status->string_of_int
- if statusCode->Js.String2.charAt(0) !== "2" {
+ let statusCode = res->Fetch.Response.status->Int.toString
+ if statusCode->String.charAt(0) !== "2" {
res
->Fetch.Response.json
->then(data => {
@@ -998,7 +985,7 @@ let fetchCustomerDetails = (
~logCategory=API,
(),
)
- Js.Json.null->resolve
+ JSON.Encode.null->resolve
})
} else {
logApi(
@@ -1026,6 +1013,6 @@ let fetchCustomerDetails = (
~data=exceptionMessage,
(),
)
- Js.Json.null->resolve
+ JSON.Encode.null->resolve
})
}
diff --git a/src/Utilities/PaymentUtils.res b/src/Utilities/PaymentUtils.res
index 3ceb7a72..c99bd839 100644
--- a/src/Utilities/PaymentUtils.res
+++ b/src/Utilities/PaymentUtils.res
@@ -24,40 +24,38 @@ let paymentListLookupNew = (
"samsung_pay",
]
let otherPaymentList = []
- let googlePayFields = pmList->Js.Array2.find(item => item.paymentMethodName === "google_pay")
- let applePayFields = pmList->Js.Array2.find(item => item.paymentMethodName === "apple_pay")
+ let googlePayFields = pmList->Array.find(item => item.paymentMethodName === "google_pay")
+ let applePayFields = pmList->Array.find(item => item.paymentMethodName === "apple_pay")
switch googlePayFields {
| Some(val) =>
- if (
- val.fields->Js.Array2.length > 0 && showGooglePay && !areAllGooglePayRequiredFieldsPrefilled
- ) {
- walletToBeDisplayedInTabs->Js.Array2.push("google_pay")->ignore
+ if val.fields->Array.length > 0 && showGooglePay && !areAllGooglePayRequiredFieldsPrefilled {
+ walletToBeDisplayedInTabs->Array.push("google_pay")->ignore
}
| None => ()
}
switch applePayFields {
| Some(val) =>
- if val.fields->Js.Array2.length > 0 && showApplePay && !areAllApplePayRequiredFieldsPrefilled {
- walletToBeDisplayedInTabs->Js.Array2.push("apple_pay")->ignore
+ if val.fields->Array.length > 0 && showApplePay && !areAllApplePayRequiredFieldsPrefilled {
+ walletToBeDisplayedInTabs->Array.push("apple_pay")->ignore
}
| None => ()
}
- pmList->Js.Array2.forEach(item => {
- if walletToBeDisplayedInTabs->Js.Array2.includes(item.paymentMethodName) {
- otherPaymentList->Js.Array2.push(item.paymentMethodName)->ignore
+ pmList->Array.forEach(item => {
+ if walletToBeDisplayedInTabs->Array.includes(item.paymentMethodName) {
+ otherPaymentList->Array.push(item.paymentMethodName)->ignore
} else if item.methodType == "wallet" {
- walletsList->Js.Array2.push(item.paymentMethodName)->ignore
+ walletsList->Array.push(item.paymentMethodName)->ignore
} else if item.methodType == "bank_debit" {
- otherPaymentList->Js.Array2.push(item.paymentMethodName ++ "_debit")->ignore
+ otherPaymentList->Array.push(item.paymentMethodName ++ "_debit")->ignore
} else if item.methodType == "bank_transfer" {
- otherPaymentList->Js.Array2.push(item.paymentMethodName ++ "_transfer")->ignore
+ otherPaymentList->Array.push(item.paymentMethodName ++ "_transfer")->ignore
} else if item.methodType == "card" {
- otherPaymentList->Js.Array2.push("card")->ignore
+ otherPaymentList->Array.push("card")->ignore
} else if item.methodType == "reward" {
- otherPaymentList->Js.Array2.push(item.paymentMethodName)->ignore
+ otherPaymentList->Array.push(item.paymentMethodName)->ignore
} else {
- otherPaymentList->Js.Array2.push(item.paymentMethodName)->ignore
+ otherPaymentList->Array.push(item.paymentMethodName)->ignore
}
})
(
@@ -159,16 +157,16 @@ let getExperienceType = method => {
let getConnectors = (list: PaymentMethodsRecord.list, method: connectorType) => {
let paymentMethod =
- list.payment_methods->Js.Array2.find(item => item.payment_method == method->getMethod)
+ list.payment_methods->Array.find(item => item.payment_method == method->getMethod)
switch paymentMethod {
| Some(val) =>
let paymentMethodType =
- val.payment_method_types->Js.Array2.find(item =>
+ val.payment_method_types->Array.find(item =>
item.payment_method_type == method->getMethodType
)
switch paymentMethodType {
| Some(val) =>
- let experienceType = val.payment_experience->Js.Array2.find(item => {
+ let experienceType = val.payment_experience->Array.find(item => {
item.payment_experience_type->getPaymentExperienceType == method->getExperienceType
})
let eligibleConnectors = switch experienceType {
@@ -194,10 +192,10 @@ let getDisplayNameAndIcon = (
) => {
let customNameObj =
customNames
- ->Js.Array2.filter((item: PaymentType.alias) => {
+ ->Array.filter((item: PaymentType.alias) => {
item.paymentMethodName === paymentMethodName
})
- ->Belt.Array.get(0)
+ ->Array.get(0)
switch customNameObj {
| Some(val) =>
val.paymentMethodName === "classic" || val.paymentMethodName === "evoucher"
@@ -205,15 +203,10 @@ let getDisplayNameAndIcon = (
switch val.aliasName {
| "" => (defaultName, defaultIcon)
| aliasName =>
- let id = aliasName->Js.String2.split(" ")
+ let id = aliasName->String.split(" ")
(
aliasName,
- Some(
- PaymentMethodsRecord.icon(
- id->Belt.Array.get(0)->Belt.Option.getWithDefault(""),
- ~size=19,
- ),
- ),
+ Some(PaymentMethodsRecord.icon(id->Array.get(0)->Option.getOr(""), ~size=19)),
)
}
}
@@ -224,9 +217,9 @@ let getDisplayNameAndIcon = (
let getPaymentMethodName = (~paymentMethodType, ~paymentMethodName) => {
if paymentMethodType == "bank_debit" {
- paymentMethodName->Js.String2.replace("_debit", "")
+ paymentMethodName->String.replace("_debit", "")
} else if paymentMethodType == "bank_transfer" {
- paymentMethodName->Js.String2.replace("_transfer", "")
+ paymentMethodName->String.replace("_transfer", "")
} else {
paymentMethodName
}
diff --git a/src/Utilities/RecoilAtoms.res b/src/Utilities/RecoilAtoms.res
index 60ec75e1..ddc8da91 100644
--- a/src/Utilities/RecoilAtoms.res
+++ b/src/Utilities/RecoilAtoms.res
@@ -1,4 +1,4 @@
-type load = Loading | Loaded(Js.Json.t) | LoadError
+type load = Loading | Loaded(JSON.t) | LoadError
let keys = Recoil.atom(. "keys", CommonHooks.defaultkeys)
let configAtom = Recoil.atom(. "defaultRecoilConfig", CardTheme.defaultRecoilConfig)
diff --git a/src/Utilities/Utils.res b/src/Utilities/Utils.res
index 5aa3ba85..4e834855 100644
--- a/src/Utilities/Utils.res
+++ b/src/Utilities/Utils.res
@@ -4,12 +4,12 @@ type parent
@val external window: window = "window"
@val @scope("window") external iframeParent: parent = "parent"
type event = {data: string}
-external eventToJson: event => Js.Json.t = "%identity"
-external toJson: 'a => Js.Json.t = "%identity"
-external dictToObj: Js.Dict.t<'a> => {..} = "%identity"
+external eventToJson: event => JSON.t = "%identity"
+external toJson: 'a => JSON.t = "%identity"
+external dictToObj: Dict.t<'a> => {..} = "%identity"
@module("./Phone_number.json")
-external phoneNumberJson: Js.Json.t = "default"
+external phoneNumberJson: JSON.t = "default"
type options = {timeZone: string}
type dateTimeFormat = {resolvedOptions: (. unit) => options}
@@ -17,101 +17,92 @@ type dateTimeFormat = {resolvedOptions: (. unit) => options}
@send external remove: Dom.element => unit = "remove"
-@send external postMessage: (parent, Js.Json.t, string) => unit = "postMessage"
+@send external postMessage: (parent, JSON.t, string) => unit = "postMessage"
open ErrorUtils
let handlePostMessage = (~targetOrigin="*", messageArr) => {
- iframeParent->postMessage(messageArr->Js.Dict.fromArray->Js.Json.object_, targetOrigin)
+ iframeParent->postMessage(messageArr->Dict.fromArray->JSON.Encode.object, targetOrigin)
}
let handleOnFocusPostMessage = (~targetOrigin="*", ()) => {
- handlePostMessage([("focus", true->Js.Json.boolean)], ~targetOrigin)
+ handlePostMessage([("focus", true->JSON.Encode.bool)], ~targetOrigin)
}
let handleOnBlurPostMessage = (~targetOrigin="*", ()) => {
- handlePostMessage([("blur", true->Js.Json.boolean)], ~targetOrigin)
+ handlePostMessage([("blur", true->JSON.Encode.bool)], ~targetOrigin)
}
let handleOnClickPostMessage = (~targetOrigin="*", ev) => {
handlePostMessage(
- [("clickTriggered", true->Js.Json.boolean), ("event", ev->Js.Json.stringify->Js.Json.string)],
+ [("clickTriggered", true->JSON.Encode.bool), ("event", ev->JSON.stringify->JSON.Encode.string)],
~targetOrigin,
)
}
let handleOnConfirmPostMessage = (~targetOrigin="*", ~isOneClick=false, ()) => {
let message = isOneClick ? "oneClickConfirmTriggered" : "confirmTriggered"
- handlePostMessage([(message, true->Js.Json.boolean)], ~targetOrigin)
+ handlePostMessage([(message, true->JSON.Encode.bool)], ~targetOrigin)
}
let getOptionString = (dict, key) => {
- dict->Js.Dict.get(key)->Belt.Option.flatMap(Js.Json.decodeString)
+ dict->Dict.get(key)->Option.flatMap(JSON.Decode.string)
}
let getString = (dict, key, default) => {
- getOptionString(dict, key)->Belt.Option.getWithDefault(default)
+ getOptionString(dict, key)->Option.getOr(default)
}
let getInt = (dict, key, default: int) => {
dict
- ->Js.Dict.get(key)
- ->Belt.Option.flatMap(Js.Json.decodeNumber)
- ->Belt.Option.getWithDefault(default->Belt.Int.toFloat)
+ ->Dict.get(key)
+ ->Option.flatMap(JSON.Decode.float)
+ ->Option.getOr(default->Belt.Int.toFloat)
->Belt.Float.toInt
}
-let getFloatFromString = (str, default) => {
- let val = str->Js.Float.fromString
- val->Js.Float.isNaN ? default : val
-}
+let getFloatFromString = (str, default) => str->Float.fromString->Option.getOr(default)
let getFloatFromJson = (json, default) => {
- switch json->Js.Json.classify {
- | JSONString(str) => getFloatFromString(str, default)
- | JSONNumber(floatValue) => floatValue
+ switch json->JSON.Classify.classify {
+ | String(str) => getFloatFromString(str, default)
+ | Number(floatValue) => floatValue
| _ => default
}
}
let getFloat = (dict, key, default) => {
- dict
- ->Js.Dict.get(key)
- ->Belt.Option.map(json => getFloatFromJson(json, default))
- ->Belt.Option.getWithDefault(default)
+ dict->Dict.get(key)->Option.map(json => getFloatFromJson(json, default))->Option.getOr(default)
}
let getJsonBoolValue = (dict, key, default) => {
- dict->Js.Dict.get(key)->Belt.Option.getWithDefault(default->Js.Json.boolean)
+ dict->Dict.get(key)->Option.getOr(default->JSON.Encode.bool)
}
let getJsonStringFromDict = (dict, key, default) => {
- dict->Js.Dict.get(key)->Belt.Option.getWithDefault(default->Js.Json.string)
+ dict->Dict.get(key)->Option.getOr(default->JSON.Encode.string)
}
let getJsonArrayFromDict = (dict, key, default) => {
- dict->Js.Dict.get(key)->Belt.Option.getWithDefault(default->Js.Json.array)
+ dict->Dict.get(key)->Option.getOr(default->JSON.Encode.array)
}
let getJsonFromDict = (dict, key, default) => {
- dict->Js.Dict.get(key)->Belt.Option.getWithDefault(default)
+ dict->Dict.get(key)->Option.getOr(default)
}
let getJsonObjFromDict = (dict, key, default) => {
- dict
- ->Js.Dict.get(key)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(default)
+ dict->Dict.get(key)->Option.flatMap(JSON.Decode.object)->Option.getOr(default)
}
let getDecodedStringFromJson = (json, callbackFunc, defaultValue) => {
json
- ->Js.Json.decodeObject
- ->Belt.Option.flatMap(callbackFunc)
- ->Belt.Option.flatMap(Js.Json.decodeString)
- ->Belt.Option.getWithDefault(defaultValue)
+ ->JSON.Decode.object
+ ->Option.flatMap(callbackFunc)
+ ->Option.flatMap(JSON.Decode.string)
+ ->Option.getOr(defaultValue)
}
let getDecodedBoolFromJson = (json, callbackFunc, defaultValue) => {
json
- ->Js.Json.decodeObject
- ->Belt.Option.flatMap(callbackFunc)
- ->Belt.Option.flatMap(Js.Json.decodeBoolean)
- ->Belt.Option.getWithDefault(defaultValue)
+ ->JSON.Decode.object
+ ->Option.flatMap(callbackFunc)
+ ->Option.flatMap(JSON.Decode.bool)
+ ->Option.getOr(defaultValue)
}
let getRequiredString = (dict, key, default, ~logger) => {
@@ -123,15 +114,15 @@ let getRequiredString = (dict, key, default, ~logger) => {
}
| None => {
manageErrorWarning(REQUIRED_PARAMETER, ~dynamicStr=key, ~logger, ())
- optionalStr->Belt.Option.getWithDefault(default)
+ optionalStr->Option.getOr(default)
}
}
}
let getWarningString = (dict, key, default, ~logger) => {
- switch dict->Js.Dict.get(key) {
+ switch dict->Dict.get(key) {
| Some(val) =>
- switch val->Js.Json.decodeString {
+ switch val->JSON.Decode.string {
| Some(val) => val
| None =>
manageErrorWarning(TYPE_STRING_ERROR, ~dynamicStr=key, ~logger, ())
@@ -142,20 +133,17 @@ let getWarningString = (dict, key, default, ~logger) => {
}
let getDictFromObj = (dict, key) => {
- dict
- ->Js.Dict.get(key)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
+ dict->Dict.get(key)->Option.flatMap(JSON.Decode.object)->Option.getOr(Dict.make())
}
let getJsonObjectFromDict = (dict, key) => {
- dict->Js.Dict.get(key)->Belt.Option.getWithDefault(Js.Json.object_(Js.Dict.empty()))
+ dict->Dict.get(key)->Option.getOr(JSON.Encode.object(Dict.make()))
}
let getOptionBool = (dict, key) => {
- dict->Js.Dict.get(key)->Belt.Option.flatMap(Js.Json.decodeBoolean)
+ dict->Dict.get(key)->Option.flatMap(JSON.Decode.bool)
}
-let getDictFromJson = (json: Js.Json.t) => {
- json->Js.Json.decodeObject->Belt.Option.getWithDefault(Js.Dict.empty())
+let getDictFromJson = (json: JSON.t) => {
+ json->JSON.Decode.object->Option.getOr(Dict.make())
}
let getDictfromDict = (dict, key) => {
@@ -163,13 +151,13 @@ let getDictfromDict = (dict, key) => {
}
let getBool = (dict, key, default) => {
- getOptionBool(dict, key)->Belt.Option.getWithDefault(default)
+ getOptionBool(dict, key)->Option.getOr(default)
}
let getBoolWithWarning = (dict, key, default, ~logger) => {
- switch dict->Js.Dict.get(key) {
+ switch dict->Dict.get(key) {
| Some(val) =>
- switch val->Js.Json.decodeBoolean {
+ switch val->JSON.Decode.bool {
| Some(val) => val
| None =>
manageErrorWarning(TYPE_BOOL_ERROR, ~dynamicStr=key, ~logger, ())
@@ -179,9 +167,9 @@ let getBoolWithWarning = (dict, key, default, ~logger) => {
}
}
let getNumberWithWarning = (dict, key, ~logger, default) => {
- switch dict->Js.Dict.get(key) {
+ switch dict->Dict.get(key) {
| Some(val) =>
- switch val->Js.Json.decodeNumber {
+ switch val->JSON.Decode.float {
| Some(val) => val->Belt.Float.toInt
| None =>
manageErrorWarning(TYPE_INT_ERROR, ~dynamicStr=key, ~logger, ())
@@ -192,43 +180,41 @@ let getNumberWithWarning = (dict, key, ~logger, default) => {
}
let getOptionalArrayFromDict = (dict, key) => {
- dict->Js.Dict.get(key)->Belt.Option.flatMap(Js.Json.decodeArray)
+ dict->Dict.get(key)->Option.flatMap(JSON.Decode.array)
}
let getArray = (dict, key) => {
- dict->getOptionalArrayFromDict(key)->Belt.Option.getWithDefault([])
+ dict->getOptionalArrayFromDict(key)->Option.getOr([])
}
let getStrArray = (dict, key) => {
dict
->getOptionalArrayFromDict(key)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.map(json => json->Js.Json.decodeString->Belt.Option.getWithDefault(""))
+ ->Option.getOr([])
+ ->Array.map(json => json->JSON.Decode.string->Option.getOr(""))
}
-let getOptionalStrArray: (Js.Dict.t, string) => option> = (dict, key) => {
+let getOptionalStrArray: (Dict.t, string) => option> = (dict, key) => {
switch dict->getOptionalArrayFromDict(key) {
| Some(val) =>
- val->Js.Array2.length === 0
+ val->Array.length === 0
? None
- : Some(
- val->Belt.Array.map(json => json->Js.Json.decodeString->Belt.Option.getWithDefault("")),
- )
+ : Some(val->Array.map(json => json->JSON.Decode.string->Option.getOr("")))
| None => None
}
}
-let getBoolValue = val => val->Belt.Option.getWithDefault(false)
+let getBoolValue = val => val->Option.getOr(false)
let toKebabCase = str => {
str
- ->Js.String2.split("")
- ->Js.Array2.mapi((item, i) => {
- if item->Js.String2.toUpperCase === item {
- `${i != 0 ? "-" : ""}${item->Js.String2.toLowerCase}`
+ ->String.split("")
+ ->Array.mapWithIndex((item, i) => {
+ if item->String.toUpperCase === item {
+ `${i != 0 ? "-" : ""}${item->String.toLowerCase}`
} else {
item
}
})
- ->Js.Array2.joinWith("")
+ ->Array.joinWith("")
}
let handleMessage = (fun, _errorMessage) => {
@@ -264,19 +250,19 @@ let mergeJsons = (json1, json2) => {
let rec merge = (obj1, obj2) => {
if obj1 != obj2 {
obj2
- ->Js.Dict.keys
- ->Js.Array2.map(key => {
+ ->Dict.keysToArray
+ ->Array.map(key => {
let overrideProp = obj2->getJsonObjectFromDict(key)
let defaultProp = obj1->getJsonObjectFromDict(key)
- if defaultProp->getDictFromJson->Js.Dict.keys->Js.Array.length == 0 {
- obj1->Js.Dict.set(key, overrideProp)
+ if defaultProp->getDictFromJson->Dict.keysToArray->Array.length == 0 {
+ obj1->Dict.set(key, overrideProp)
} else if (
- overrideProp->Js.Json.decodeObject->Belt.Option.isSome &&
- defaultProp->Js.Json.decodeObject->Belt.Option.isSome
+ overrideProp->JSON.Decode.object->Option.isSome &&
+ defaultProp->JSON.Decode.object->Option.isSome
) {
merge(defaultProp->getDictFromJson, overrideProp->getDictFromJson)
} else if overrideProp !== defaultProp {
- obj1->Js.Dict.set(key, overrideProp)
+ obj1->Dict.set(key, overrideProp)
}
})
->ignore
@@ -286,22 +272,25 @@ let mergeJsons = (json1, json2) => {
}->ignore
}
merge(obj1, obj2)->ignore
- obj1->Js.Json.object_
+ obj1->JSON.Encode.object
}
let postFailedSubmitResponse = (~errortype, ~message) => {
let errorDict =
- [("type", errortype->Js.Json.string), ("message", message->Js.Json.string)]->Js.Dict.fromArray
+ [
+ ("type", errortype->JSON.Encode.string),
+ ("message", message->JSON.Encode.string),
+ ]->Dict.fromArray
handlePostMessage([
- ("submitSuccessful", false->Js.Json.boolean),
- ("error", errorDict->Js.Json.object_),
+ ("submitSuccessful", false->JSON.Encode.bool),
+ ("error", errorDict->JSON.Encode.object),
])
}
let postSubmitResponse = (~jsonData, ~url) => {
handlePostMessage([
- ("submitSuccessful", true->Js.Json.boolean),
+ ("submitSuccessful", true->JSON.Encode.bool),
("data", jsonData),
- ("url", url->Js.Json.string),
+ ("url", url->JSON.Encode.string),
])
}
@@ -309,34 +298,34 @@ let getFailedSubmitResponse = (~errorType, ~message) => {
[
(
"error",
- [("type", errorType->Js.Json.string), ("message", message->Js.Json.string)]
- ->Js.Dict.fromArray
- ->Js.Json.object_,
+ [("type", errorType->JSON.Encode.string), ("message", message->JSON.Encode.string)]
+ ->Dict.fromArray
+ ->JSON.Encode.object,
),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_
+ ->Dict.fromArray
+ ->JSON.Encode.object
}
let toCamelCase = str => {
- if str->Js.String2.includes(":") {
+ if str->String.includes(":") {
str
} else {
str
- ->Js.String2.toLowerCase
+ ->String.toLowerCase
->Js.String2.unsafeReplaceBy0(%re(`/([-_][a-z])/g`), (letter, _, _) => {
- letter->Js.String2.toUpperCase
+ letter->String.toUpperCase
})
- ->Js.String2.replaceByRe(%re(`/[^a-zA-Z]/g`), "")
+ ->String.replaceRegExp(%re(`/[^a-zA-Z]/g`), "")
}
}
let toSnakeCase = str => {
str->Js.String2.unsafeReplaceBy0(%re("/[A-Z]/g"), (letter, _, _) =>
- `_${letter->Js.String2.toLowerCase}`
+ `_${letter->String.toLowerCase}`
)
}
type case = CamelCase | SnakeCase | KebabCase
-let rec transformKeys = (json: Js.Json.t, to: case) => {
+let rec transformKeys = (json: JSON.t, to: case) => {
let toCase = switch to {
| CamelCase => toCamelCase
| SnakeCase => toSnakeCase
@@ -344,25 +333,25 @@ let rec transformKeys = (json: Js.Json.t, to: case) => {
}
let dict = json->getDictFromJson
dict
- ->Js.Dict.entries
- ->Js.Array2.map(((key, value)) => {
- let x = switch Js.Json.classify(value) {
- | JSONObject(obj) => (key->toCase, obj->Js.Json.object_->transformKeys(to))
- | JSONArray(arr) => (
+ ->Dict.toArray
+ ->Array.map(((key, value)) => {
+ let x = switch JSON.Classify.classify(value) {
+ | Object(obj) => (key->toCase, obj->JSON.Encode.object->transformKeys(to))
+ | Array(arr) => (
key->toCase,
{
arr
- ->Js.Array2.map(item =>
- if item->Js.Json.decodeObject->Belt.Option.isSome {
+ ->Array.map(item =>
+ if item->JSON.Decode.object->Option.isSome {
item->transformKeys(to)
} else {
item
}
)
- ->Js.Json.array
+ ->JSON.Encode.array
},
)
- | JSONString(str) => {
+ | String(str) => {
let val = if str == "Final" {
"FINAL"
} else if str == "example" || str == "Adyen" {
@@ -370,39 +359,37 @@ let rec transformKeys = (json: Js.Json.t, to: case) => {
} else {
str
}
- (key->toCase, val->Js.Json.string)
+ (key->toCase, val->JSON.Encode.string)
}
- | JSONNumber(val) => (key->toCase, val->Belt.Float.toString->Js.Json.string)
+ | Number(val) => (key->toCase, val->Belt.Float.toString->JSON.Encode.string)
| _ => (key->toCase, value)
}
x
})
- ->Js.Dict.fromArray
- ->Js.Json.object_
+ ->Dict.fromArray
+ ->JSON.Encode.object
}
let getClientCountry = clientTimeZone => {
Country.country
- ->Js.Array2.find(item =>
- item.timeZones->Js.Array2.find(i => i == clientTimeZone)->Belt.Option.isSome
- )
- ->Belt.Option.getWithDefault(Country.defaultTimeZone)
+ ->Array.find(item => item.timeZones->Array.find(i => i == clientTimeZone)->Option.isSome)
+ ->Option.getOr(Country.defaultTimeZone)
}
let removeDuplicate = arr => {
- arr->Js.Array2.filteri((item, i) => {
- arr->Js.Array2.indexOf(item) === i
+ arr->Array.filterWithIndex((item, i) => {
+ arr->Array.indexOf(item) === i
})
}
let isEmailValid = email => {
- switch email->Js.String2.match_(
+ switch email->String.match(
%re(
"/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/"
),
) {
| Some(_match) => Some(true)
- | None => email->Js.String2.length > 0 ? Some(false) : None
+ | None => email->String.length > 0 ? Some(false) : None
}
}
@@ -410,7 +397,7 @@ let checkEmailValid = (
email: RecoilAtomTypes.field,
fn: (. RecoilAtomTypes.field => RecoilAtomTypes.field) => unit,
) => {
- switch email.value->Js.String2.match_(
+ switch email.value->String.match(
%re(
"/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/"
),
@@ -421,7 +408,7 @@ let checkEmailValid = (
isValid: Some(true),
})
| None =>
- email.value->Js.String2.length > 0
+ email.value->String.length > 0
? fn(.prev => {
...prev,
isValid: Some(false),
@@ -434,41 +421,37 @@ let checkEmailValid = (
}
let validatePhoneNumber = (countryCode, number) => {
- let phoneNumberDict =
- phoneNumberJson->Js.Json.decodeObject->Belt.Option.getWithDefault(Js.Dict.empty())
+ let phoneNumberDict = phoneNumberJson->JSON.Decode.object->Option.getOr(Dict.make())
let countriesArr =
phoneNumberDict
- ->Js.Dict.get("countries")
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.keepMap(Js.Json.decodeObject)
+ ->Dict.get("countries")
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->Belt.Array.keepMap(JSON.Decode.object)
- let filteredArr = countriesArr->Js.Array2.filter(countryObj => {
+ let filteredArr = countriesArr->Array.filter(countryObj => {
countryObj
- ->Js.Dict.get("phone_number_code")
- ->Belt.Option.flatMap(Js.Json.decodeString)
- ->Belt.Option.getWithDefault("") == countryCode
+ ->Dict.get("phone_number_code")
+ ->Option.flatMap(JSON.Decode.string)
+ ->Option.getOr("") == countryCode
})
switch filteredArr[0] {
| Some(obj) =>
let regex =
- obj
- ->Js.Dict.get("validation_regex")
- ->Belt.Option.flatMap(Js.Json.decodeString)
- ->Belt.Option.getWithDefault("")
- Js.Re.test_(regex->Js.Re.fromString, number)
+ obj->Dict.get("validation_regex")->Option.flatMap(JSON.Decode.string)->Option.getOr("")
+ RegExp.test(regex->RegExp.fromString, number)
| None => false
}
}
let sortBasedOnPriority = (sortArr: array, priorityArr: array) => {
- let finalPriorityArr = priorityArr->Js.Array2.filter(val => sortArr->Js.Array2.includes(val))
+ let finalPriorityArr = priorityArr->Array.filter(val => sortArr->Array.includes(val))
sortArr
- ->Js.Array2.map(item => {
- if finalPriorityArr->Js.Array2.includes(item) {
+ ->Array.map(item => {
+ if finalPriorityArr->Array.includes(item) {
()
} else {
- finalPriorityArr->Js.Array2.push(item)->ignore
+ finalPriorityArr->Array.push(item)->ignore
}
})
->ignore
@@ -489,29 +472,28 @@ let isAllValid = (
let getCountryPostal = (countryCode, postalCodes: array) => {
postalCodes
- ->Js.Array2.find(item => item.iso == countryCode)
- ->Belt.Option.getWithDefault(PostalCodeType.defaultPostalCode)
+ ->Array.find(item => item.iso == countryCode)
+ ->Option.getOr(PostalCodeType.defaultPostalCode)
}
let getCountryNames = (list: array) => {
- list->Js.Array2.reduce((arr, item) => {
- arr->Js.Array2.push(item.countryName)->ignore
+ list->Array.reduce([], (arr, item) => {
+ arr->Array.push(item.countryName)->ignore
arr
- }, [])
+ })
}
let getBankNames = (list: Bank.bankList, allBanks: array) => {
- list->Js.Array2.reduce((arr, item) => {
- if allBanks->Js.Array2.includes(item.hyperSwitch) {
- arr->Js.Array2.push(item.displayName)->ignore
+ list->Array.reduce([], (arr, item) => {
+ if allBanks->Array.includes(item.hyperSwitch) {
+ arr->Array.push(item.displayName)->ignore
}
arr
- }, [])
+ })
}
let getBankKeys = (str, banks: Bank.bankList, default) => {
- let bank =
- banks->Js.Array2.find(item => item.displayName == str)->Belt.Option.getWithDefault(default)
+ let bank = banks->Array.find(item => item.displayName == str)->Option.getOr(default)
bank.hyperSwitch
}
@@ -520,46 +502,46 @@ let constructClass = (~classname, ~dict) => {
let modifiedArr = []
dict
- ->Js.Dict.entries
- ->Js.Array2.map(entry => {
+ ->Dict.toArray
+ ->Array.map(entry => {
let (key, value) = entry
- let class = if !(key->Js.String2.startsWith(":")) && !(key->Js.String2.startsWith(".")) {
- switch value->Js.Json.decodeString {
+ let class = if !(key->String.startsWith(":")) && !(key->String.startsWith(".")) {
+ switch value->JSON.Decode.string {
| Some(str) => `${key->toKebabCase}:${str}`
| None => ""
}
- } else if key->Js.String2.startsWith(":") {
- switch value->Js.Json.decodeObject {
+ } else if key->String.startsWith(":") {
+ switch value->JSON.Decode.object {
| Some(obj) =>
let style =
obj
- ->Js.Dict.entries
- ->Js.Array2.map(entry => {
+ ->Dict.toArray
+ ->Array.map(entry => {
let (key, value) = entry
- switch value->Js.Json.decodeString {
+ switch value->JSON.Decode.string {
| Some(str) => `${key->toKebabCase}:${str}`
| None => ""
}
})
- `.${classname}${key} {${style->Js.Array2.joinWith(";")}}`
+ `.${classname}${key} {${style->Array.joinWith(";")}}`
| None => ""
}
- } else if key->Js.String2.startsWith(".") {
- switch value->Js.Json.decodeObject {
+ } else if key->String.startsWith(".") {
+ switch value->JSON.Decode.object {
| Some(obj) =>
let style =
obj
- ->Js.Dict.entries
- ->Js.Array2.map(entry => {
+ ->Dict.toArray
+ ->Array.map(entry => {
let (key, value) = entry
- switch value->Js.Json.decodeString {
+ switch value->JSON.Decode.string {
| Some(str) => `${key->toKebabCase}:${str}`
| None => ""
}
})
- `${key} {${style->Js.Array2.joinWith(";")}} `
+ `${key} {${style->Array.joinWith(";")}} `
| None => ""
}
@@ -567,18 +549,18 @@ let constructClass = (~classname, ~dict) => {
""
}
- if !(key->Js.String2.startsWith(":")) && !(key->Js.String2.startsWith(".")) {
- modifiedArr->Js.Array2.push(class)->ignore
- } else if key->Js.String2.startsWith(":") || key->Js.String2.startsWith(".") {
- puseduoArr->Js.Array2.push(class)->ignore
+ if !(key->String.startsWith(":")) && !(key->String.startsWith(".")) {
+ modifiedArr->Array.push(class)->ignore
+ } else if key->String.startsWith(":") || key->String.startsWith(".") {
+ puseduoArr->Array.push(class)->ignore
}
})
->ignore
- if classname->Js.String2.length == 0 {
- `${modifiedArr->Js.Array2.joinWith(";")} ${puseduoArr->Js.Array2.joinWith(" ")}`
+ if classname->String.length == 0 {
+ `${modifiedArr->Array.joinWith(";")} ${puseduoArr->Array.joinWith(" ")}`
} else {
- `.${classname} {${modifiedArr->Js.Array2.joinWith(";")}} ${puseduoArr->Js.Array2.joinWith(" ")}`
+ `.${classname} {${modifiedArr->Array.joinWith(";")}} ${puseduoArr->Array.joinWith(" ")}`
}
}
@@ -590,7 +572,7 @@ let generateStyleSheet = (classname, dict, id) => {
style["appendChild"](. document["createTextNode"](. constructClass(~classname, ~dict)))->ignore
document["body"]["appendChild"](. style)->ignore
}
- switch Window.window->Window.document->Window.getElementById(id)->Js.Nullable.toOption {
+ switch Window.window->Window.document->Window.getElementById(id)->Nullable.toOption {
| Some(val) => {
val->remove
createStyle()
@@ -599,20 +581,20 @@ let generateStyleSheet = (classname, dict, id) => {
}
}
let openUrl = url => {
- handlePostMessage([("openurl", url->Js.Json.string)])
+ handlePostMessage([("openurl", url->JSON.Encode.string)])
}
let getArrofJsonString = (arr: array) => {
- arr->Js.Array2.map(item => item->Js.Json.string)
+ arr->Array.map(item => item->JSON.Encode.string)
}
let getPaymentDetails = (arr: array) => {
let finalArr = []
arr
- ->Js.Array2.map(item => {
- let optionalVal = PaymentDetails.details->Js.Array2.find(i => i.type_ == item)
+ ->Array.map(item => {
+ let optionalVal = PaymentDetails.details->Array.find(i => i.type_ == item)
switch optionalVal {
- | Some(val) => finalArr->Js.Array2.push(val)->ignore
+ | Some(val) => finalArr->Array.push(val)->ignore
| None => ()
}
})
@@ -627,8 +609,8 @@ let getOptionalArr = arr => {
}
let checkPriorityList = paymentMethodOrder => {
- paymentMethodOrder->getOptionalArr->Belt.Array.get(0)->Belt.Option.getWithDefault("") == "card" ||
- paymentMethodOrder->Belt.Option.isNone
+ paymentMethodOrder->getOptionalArr->Array.get(0)->Option.getOr("") == "card" ||
+ paymentMethodOrder->Option.isNone
}
type sizeunit = Pixel | Rem | Em
let addSize = (str: string, value: float, unit: sizeunit) => {
@@ -640,34 +622,34 @@ let addSize = (str: string, value: float, unit: sizeunit) => {
}
}
let unitInString = getUnit(unit)
- if str->Js.String2.endsWith(unitInString) {
- let arr = str->Js.String2.split("")
+ if str->String.endsWith(unitInString) {
+ let arr = str->String.split("")
let val =
arr
- ->Js.Array2.slice(~start=0, ~end_={arr->Js.Array2.length - unitInString->Js.String2.length})
- ->Js.Array2.joinWith("")
+ ->Array.slice(~start=0, ~end={arr->Array.length - unitInString->String.length})
+ ->Array.joinWith("")
->Belt.Float.fromString
- ->Belt.Option.getWithDefault(0.0)
+ ->Option.getOr(0.0)
(val +. value)->Belt.Float.toString ++ unitInString
} else {
str
}
}
-let toInt = val => val->Belt.Int.fromString->Belt.Option.getWithDefault(0)
+let toInt = val => val->Belt.Int.fromString->Option.getOr(0)
let validateRountingNumber = str => {
- if str->Js.String2.length != 9 {
+ if str->String.length != 9 {
false
} else {
let firstWeight = 3
let weights = [firstWeight, 7, 1, 3, 7, 1, 3, 7, 1]
let sum =
str
- ->Js.String2.split("")
- ->Js.Array2.mapi((item, i) => item->toInt * weights[i]->Option.getOr(firstWeight))
- ->Js.Array2.reduce((acc, val) => {
+ ->String.split("")
+ ->Array.mapWithIndex((item, i) => item->toInt * weights[i]->Option.getOr(firstWeight))
+ ->Array.reduce(0, (acc, val) => {
acc + val
- }, 0)
+ })
mod(sum, 10) == 0
}
}
@@ -687,40 +669,36 @@ let handlePostMessageEvents = (
)
}
handlePostMessage([
- ("elementType", "payment"->Js.Json.string),
- ("complete", complete->Js.Json.boolean),
- ("empty", empty->Js.Json.boolean),
- ("value", [("type", paymentType->Js.Json.string)]->Js.Dict.fromArray->Js.Json.object_),
+ ("elementType", "payment"->JSON.Encode.string),
+ ("complete", complete->JSON.Encode.bool),
+ ("empty", empty->JSON.Encode.bool),
+ ("value", [("type", paymentType->JSON.Encode.string)]->Dict.fromArray->JSON.Encode.object),
])
}
-let onlyDigits = str => str->Js.String2.replaceByRe(%re(`/\D/g`), "")
+let onlyDigits = str => str->String.replaceRegExp(%re(`/\D/g`), "")
let getCountryCode = country => {
Country.country
- ->Js.Array2.find(item => item.countryName == country)
- ->Belt.Option.getWithDefault(Country.defaultTimeZone)
+ ->Array.find(item => item.countryName == country)
+ ->Option.getOr(Country.defaultTimeZone)
}
-let getStateNames = (list: Js.Json.t, country: RecoilAtomTypes.field) => {
+let getStateNames = (list: JSON.t, country: RecoilAtomTypes.field) => {
let options =
list
->getDictFromJson
->getOptionalArrayFromDict(getCountryCode(country.value).isoAlpha2)
- ->Belt.Option.getWithDefault([])
+ ->Option.getOr([])
- options->Js.Array2.reduce((arr, item) => {
+ options->Array.reduce([], (arr, item) => {
arr
- ->Js.Array2.push(
- item
- ->getDictFromJson
- ->Js.Dict.get("name")
- ->Belt.Option.flatMap(Js.Json.decodeString)
- ->Belt.Option.getWithDefault(""),
+ ->Array.push(
+ item->getDictFromJson->Dict.get("name")->Option.flatMap(JSON.Decode.string)->Option.getOr(""),
)
->ignore
arr
- }, [])
+ })
}
let isAddressComplete = (
@@ -737,24 +715,24 @@ let isAddressComplete = (
state.value != ""
let deepCopyDict = dict => {
- let emptyDict = Js.Dict.empty()
+ let emptyDict = Dict.make()
dict
- ->Js.Dict.entries
- ->Js.Array2.map(item => {
+ ->Dict.toArray
+ ->Array.map(item => {
let (key, value) = item
- emptyDict->Js.Dict.set(key, value)
+ emptyDict->Dict.set(key, value)
})
->ignore
emptyDict
}
let snakeToTitleCase = str => {
- let words = str->Js.String2.split("_")
+ let words = str->String.split("_")
words
- ->Js.Array2.map(item => {
- item->Js.String2.charAt(0)->Js.String2.toUpperCase ++ item->Js.String2.sliceToEnd(~from=1)
+ ->Array.map(item => {
+ item->String.charAt(0)->String.toUpperCase ++ item->String.sliceToEnd(~start=1)
})
- ->Js.Array2.joinWith(" ")
+ ->Array.joinWith(" ")
}
let logInfo = log => {
@@ -762,26 +740,26 @@ let logInfo = log => {
}
let formatIBAN = iban => {
- let formatted = iban->Js.String2.replaceByRe(%re(`/[^a-zA-Z0-9]/g`), "")
- let countryCode = formatted->Js.String2.substring(~from=0, ~to_=2)->Js.String2.toUpperCase
- let codeLastTwo = formatted->Js.String2.substring(~from=2, ~to_=4)
- let remaining = formatted->Js.String2.substr(~from=4)
+ let formatted = iban->String.replaceRegExp(%re(`/[^a-zA-Z0-9]/g`), "")
+ let countryCode = formatted->String.substring(~start=0, ~end=2)->String.toUpperCase
+ let codeLastTwo = formatted->String.substring(~start=2, ~end=4)
+ let remaining = formatted->String.substringToEnd(~start=4)
- let chunks = switch remaining->Js.String2.match_(%re(`/(.{1,4})/g`)) {
+ let chunks = switch remaining->String.match(%re(`/(.{1,4})/g`)) {
| Some(matches) => matches
| None => []
}
- `${countryCode}${codeLastTwo} ${chunks->Js.Array2.joinWith(" ")}`->Js.String2.trim
+ `${countryCode}${codeLastTwo} ${chunks->Array.joinWith(" ")}`->String.trim
}
let formatBSB = bsb => {
- let formatted = bsb->Js.String2.replaceByRe(%re("/\D+/g"), "")
- let firstPart = formatted->Js.String2.substring(~from=0, ~to_=3)
- let secondPart = formatted->Js.String2.substring(~from=3, ~to_=6)
+ let formatted = bsb->String.replaceRegExp(%re("/\D+/g"), "")
+ let firstPart = formatted->String.substring(~start=0, ~end=3)
+ let secondPart = formatted->String.substring(~start=3, ~end=6)
- if formatted->Js.String2.length <= 3 {
+ if formatted->String.length <= 3 {
firstPart
- } else if formatted->Js.String2.length > 3 && formatted->Js.String2.length <= 6 {
+ } else if formatted->String.length > 3 && formatted->String.length <= 6 {
`${firstPart}-${secondPart}`
} else {
formatted
@@ -789,23 +767,22 @@ let formatBSB = bsb => {
}
let getDictIsSome = (dict, key) => {
- dict->Js.Dict.get(key)->Belt.Option.isSome
+ dict->Dict.get(key)->Option.isSome
}
let rgbaTorgb = bgColor => {
- let cleanBgColor = bgColor->Js.String2.trim
- if cleanBgColor->Js.String2.startsWith("rgba") || cleanBgColor->Js.String2.startsWith("rgb") {
- let start = cleanBgColor->Js.String2.indexOf("(")
- let end = cleanBgColor->Js.String2.indexOf(")")
-
- let colorArr =
- cleanBgColor->Js.String2.substring(~from=start + 1, ~to_=end)->Js.String2.split(",")
- if colorArr->Js.Array2.length === 3 {
+ let cleanBgColor = bgColor->String.trim
+ if cleanBgColor->String.startsWith("rgba") || cleanBgColor->String.startsWith("rgb") {
+ let start = cleanBgColor->String.indexOf("(")
+ let end = cleanBgColor->String.indexOf(")")
+
+ let colorArr = cleanBgColor->String.substring(~start=start + 1, ~end)->String.split(",")
+ if colorArr->Array.length === 3 {
cleanBgColor
} else {
- let red = colorArr->Belt.Array.get(0)->Belt.Option.getWithDefault("0")
- let green = colorArr->Belt.Array.get(1)->Belt.Option.getWithDefault("0")
- let blue = colorArr->Belt.Array.get(2)->Belt.Option.getWithDefault("0")
+ let red = colorArr->Array.get(0)->Option.getOr("0")
+ let green = colorArr->Array.get(1)->Option.getOr("0")
+ let blue = colorArr->Array.get(2)->Option.getOr("0")
`rgba(${red}, ${green}, ${blue})`
}
} else {
@@ -815,27 +792,27 @@ let rgbaTorgb = bgColor => {
let delay = timeOut => {
Promise.make((resolve, _reject) => {
- Js.Global.setTimeout(() => {
- resolve(. Js.Dict.empty())
+ setTimeout(() => {
+ resolve(. Dict.make())
}, timeOut)->ignore
})
}
-let getHeaders = (~uri=?, ~token=?, ~headers=Js.Dict.empty(), ()) => {
+let getHeaders = (~uri=?, ~token=?, ~headers=Dict.make(), ()) => {
let headerObj =
- [("Content-Type", "application/json"), ("sdk-version", Window.version)]->Js.Dict.fromArray
+ [("Content-Type", "application/json"), ("sdk-version", Window.version)]->Dict.fromArray
switch (token, uri) {
- | (Some(tok), Some(_uriVal)) => headerObj->Js.Dict.set("Authorization", tok)
+ | (Some(tok), Some(_uriVal)) => headerObj->Dict.set("Authorization", tok)
| _ => ()
}
- Js.Dict.entries(headers)->Js.Array2.forEach(entries => {
+ Dict.toArray(headers)->Array.forEach(entries => {
let (x, val) = entries
- Js.Dict.set(headerObj, x, val)
+ Dict.set(headerObj, x, val)
})
Fetch.Headers.fromObject(headerObj->dictToObj)
}
-let fetchApi = (uri, ~bodyStr: string="", ~headers=Js.Dict.empty(), ~method: Fetch.method, ()) => {
+let fetchApi = (uri, ~bodyStr: string="", ~headers=Dict.make(), ~method: Fetch.method, ()) => {
open Promise
let body = switch method {
| #GET => resolve(None)
@@ -861,7 +838,7 @@ let fetchApi = (uri, ~bodyStr: string="", ~headers=Js.Dict.empty(), ~method: Fet
}
let arrayJsonToCamelCase = arr => {
- arr->Js.Array2.map(item => {
+ arr->Array.map(item => {
item->transformKeys(CamelCase)
})
}
@@ -871,13 +848,13 @@ let formatException = exc => {
let getArrayValFromJsonDict = (dict, key, arrayKey) => {
dict
- ->Js.Dict.get(key)
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
- ->Js.Dict.get(arrayKey)
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Belt.Array.keepMap(Js.Json.decodeString)
+ ->Dict.get(key)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
+ ->Dict.get(arrayKey)
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->Belt.Array.keepMap(JSON.Decode.string)
}
let isOtherElements = componentType => {
@@ -890,7 +867,7 @@ let isOtherElements = componentType => {
let nbsp = `\u00A0`
let callbackFuncForExtractingValFromDict = key => {
- x => x->Js.Dict.get(key)
+ x => x->Dict.get(key)
}
let brandIconSize = 28
diff --git a/src/Window.res b/src/Window.res
index 6806147f..8568c136 100644
--- a/src/Window.res
+++ b/src/Window.res
@@ -25,7 +25,7 @@ external replace: string => unit = "replace"
@get external document: window => document = "document"
@get external parentNode: Dom.element => Dom.element = "parentNode"
@val @scope("document")
-external querySelector: string => Js.Nullable.t = "querySelector"
+external querySelector: string => Nullable.t = "querySelector"
@val @scope("document")
external querySelectorAll: string => array = "querySelectorAll"
@@ -47,7 +47,7 @@ external addEventListener: (string, _ => unit) => unit = "addEventListener"
external removeEventListener: (string, 'ev => unit) => unit = "removeEventListener"
@send external postMessage: (Dom.element, string, string) => unit = "postMessage"
@send
-external getElementById: (document, string) => Js.Nullable.t = "getElementById"
+external getElementById: (document, string) => Nullable.t = "getElementById"
@get
external frames: window => {..} = "frames"
@get external name: window => string = "name"
@@ -57,20 +57,20 @@ external contentWindow: Dom.element => Dom.element = "contentWindow"
external style: Dom.element => style = "style"
@set external setTransition: (style, string) => unit = "transition"
@set external setHeight: (style, string) => unit = "height"
-@send external paymentRequest: (Js.Json.t, Js.Json.t, Js.Json.t) => Js.Json.t = "PaymentRequest"
+@send external paymentRequest: (JSON.t, JSON.t, JSON.t) => JSON.t = "PaymentRequest"
@send external click: Dom.element => unit = "click"
-let iframePostMessage = (iframeRef: Js.nullable, message) => {
- switch iframeRef->Js.Nullable.toOption {
+let iframePostMessage = (iframeRef: nullable, message) => {
+ switch iframeRef->Nullable.toOption {
| Some(ref) =>
try {
ref
->contentWindow
- ->postMessage(message->Js.Json.object_->Js.Json.stringify, GlobalVars.targetOrigin)
+ ->postMessage(message->JSON.Encode.object->JSON.stringify, GlobalVars.targetOrigin)
} catch {
| _ => ()
}
- | None => Js.Console.error("This element does not exist or is not mounted yet.")
+ | None => Console.error("This element does not exist or is not mounted yet.")
}
}
@@ -92,7 +92,7 @@ external body: body = "body"
@set external elementOnload: (Dom.element, unit => unit) => unit = "onload"
@set external elementOnerror: (Dom.element, exn => unit) => unit = "onerror"
@val @scope("window")
-external getHyper: Js.Nullable.t = "HyperMethod"
+external getHyper: Nullable.t = "HyperMethod"
@set
external setHyper: (window, Types.hyperInstance) => unit = "HyperMethod"
diff --git a/src/libraries/Promise.res b/src/libraries/Promise.res
index 08c4a5f8..5bb114b7 100644
--- a/src/libraries/Promise.res
+++ b/src/libraries/Promise.res
@@ -1,7 +1,7 @@
-type t<+'a> = Js.Promise.t<'a>
+type t<+'a> = Promise.t<'a>
-exception JsError(Js.Exn.t)
-external unsafeToJsExn: exn => Js.Exn.t = "%identity"
+exception JsError(Exn.t)
+external unsafeToJsExn: exn => Exn.t = "%identity"
@new
external make: ((@uncurry (. 'a) => unit, (. 'e) => unit) => unit) => t<'a> = "Promise"
@@ -42,7 +42,7 @@ external _catch: (t<'a>, @uncurry (exn => t<'a>)) => t<'a> = "catch"
let catch = (promise, callback) => {
_catch(promise, err => {
- let v = if Js.Exn.isCamlExceptionOrOpenVariant(err) {
+ let v = if Exn.isCamlExceptionOrOpenVariant(err) {
err
} else {
JsError(unsafeToJsExn(err))
diff --git a/src/libraries/Promise.resi b/src/libraries/Promise.resi
index 72a1e89f..d3286b84 100644
--- a/src/libraries/Promise.resi
+++ b/src/libraries/Promise.resi
@@ -1,236 +1,30 @@
-// The +'a marks the abstract type parameter as covariant, which essentially means that
-// a value of type 'a is immutable and may not be used in some mutable context.
-//
-// This makes sense for promises, since according to their specification, once a promise has
-// been resolved (with a specific value), it will never change its resolved value.
-//
-// More details about polymorphism / invariance / covariance,... can be found here:
-// https://caml.inria.fr/pub/docs/manual-ocaml/polymorphism.html#ss:variance:abstract-data-types
-type t<+'a> = Js.Promise.t<'a>
-
-// JsError is currently a shim exception and will be deprecated for
-// ReScript version >= 9.0.
-//
-// See following merged compiler PR for more context:
-// https://github.com/rescript-lang/rescript-compiler/pull/4905
-exception JsError(Js.Exn.t)
-
-@ocaml.doc("
-[resolve(value)] creates a resolved Promise with a given `value`
-
-```rescript
-let p = Promise.resolve(5) // Promise.t
-```
-")
-@val
-@scope("Promise")
-external resolve: 'a => t<'a> = "resolve"
-
-@scope("Promise") @val
-external reject: exn => t<_> = "reject"
-
-@ocaml.doc("
-`make(callback)` creates a new Promise based on a `callback` that receives two
-uncurried functions `resolve` and `reject` for defining the Promise's result.
-
-```rescript
-open Promise
-
-let n = 4
-Promise.make((resolve, reject) => {
- if(n < 5) {
- resolve(. \"success\")
- }
- else {
- reject(. \"failed\")
- }
-})
-->then(str => {
- Js.log(str)->resolve
-})
-->catch(e => {
- Js.log(\"Error occurred\")
- resolve()
-})
-->ignore
-```
-")
+type t<'a> = RescriptCore.Promise.t<'a>
+type exn += JsError(RescriptCore.Exn.t)
+external unsafeToJsExn: exn => RescriptCore.Exn.t = "%identity"
@new
external make: ((@uncurry (. 'a) => unit, (. 'e) => unit) => unit) => t<'a> = "Promise"
-
-@ocaml.doc("
-`catch(promise, errorCallback)` registers an exception handler in a promise chain.
-The `errorCallback` receives an `exn` value that can later be refined into a JS error or ReScript
-error. The `errorCallback` needs to return a promise with the same type as the consumed promise.
-
-```rescript
-open Promise
-
-exception SomeError(string)
-
-reject(SomeError(\"this is an error\"))
-->then(_ => {
- Ok(\"This result will never be returned\")->resolve
-})
-->catch(e => {
- let msg = switch(e) {
- | SomeError(msg) => \"ReScript error occurred: \" ++ msg
- | JsError(obj) =>
- switch Js.Exn.message(obj) {
- | Some(msg) => \"JS exception occurred: \" ++ msg
- | None => \"Some other JS value has been thrown\"
- }
- | _ => \"Unexpected error occurred\"
- }
-
- Error(msg)->resolve
-})
-->then(result => {
- switch result {
- | Ok(r) => Js.log2(\"Operation successful: \", r)
- | Error(msg) => Js.log2(\"Operation failed: \", msg)
- }->resolve
-})
-->ignore // Ignore needed for side-effects
-```
-
-In case you want to return another promise in your `callback`, consider using \`then\` instead.
-")
-let catch: (t<'a>, exn => t<'a>) => t<'a>
-
-@ocaml.doc("
-`then(promise, callback)` returns a new promise based on the result of `promise`'s value.
-The `callback` needs to explicitly return a new promise via `resolve`.
-
-It is **not allowed** to resolve a nested promise (like `resolve(resolve(1))`).
-
-```rescript
-Promise.resolve(5)
-->then(num => {
- resolve(num + 5)
-})
-->then(num => {
- Js.log2(\"Your lucky number is: \", num)
- resolve()
-})
-->ignore
-```
-")
-@send
-external then: (t<'a>, @uncurry ('a => t<'b>)) => t<'b> = "then"
-
-@ocaml.doc("
-`thenResolve(promise, callback)` converts an encapsulated value of a promise into another promise wrapped value.
-
-It is **not allowed** to return a promise within the provided callback (e.g. `thenResolve(value => resolve(value))`).
-
-```rescript
-resolve(\"Anna\")
-->thenResolve(str => {
- \"Hello \" ++ str
-})
-->thenResolve(str => {
- Js.log(str)
-})
-->ignore // Ignore needed for side-effects
-```
-
-In case you want to return another promise in your `callback`, consider using \`then\` instead.
-")
+@val @scope("Promise")
+external resolve: 'a => t<'a> = "resolve"
+@send external then: (t<'a>, @uncurry ('a => t<'b>)) => t<'b> = "then"
@send
external thenResolve: (t<'a>, @uncurry ('a => 'b)) => t<'b> = "then"
-
-@ocaml.doc("
-[finally(promise, callback)] is used to execute a function that is called no matter if a promise
-was resolved or rejected. It will return the same `promise` it originally received.
-
-```rescript
-exception SomeError(string)
-let isDone = ref(false)
-
-resolve(5)
-->then(_ => {
- reject(TestError(\"test\"))
-})
-->then(v => {
- Js.log2(\"final result\", v)
- resolve()
-})
-->catch(_ => {
- Js.log(\"Error handled\")
- resolve()
-})
-->finally(() => {
- Js.log(\"finally\")
- isDone := true
-})
-->then(() => {
- Js.log2(\"isDone:\", isDone.contents)
- resolve()
-})
-->ignore
-```
-")
-@send
-external finally: (t<'a>, unit => unit) => t<'a> = "finally"
-
-/* Combining promises. */
+@send external finally: (t<'a>, unit => unit) => t<'a> = "finally"
+@scope("Promise") @val
+external reject: exn => t<_> = "reject"
@scope("Promise") @val
-external race: array> => t<'a> = "race"
-
-@ocaml.doc("
-[all(promises)] runs all promises in parallel and returns a new promise resolving all gathered results in a unified array.
-
-```rescript
-open Promise
-let promises = [resolve(1), resolve(2), resolve(3)]
-
-all(promises)
-->then((results) => {
- Belt.Array.forEach(results, (num) => {
- Js.log2(\"Number: \", num)
- })
-
- resolve()
-})
-->ignore
-```
-")
-@scope("Promise")
-@val
external all: array> => t> = "all"
-
-@ocaml.doc("
-[all2((p1, p2))]. Like `all()`, but with a fixed size tuple of 2
-")
-@scope("Promise")
-@val
+@scope("Promise") @val
external all2: ((t<'a>, t<'b>)) => t<('a, 'b)> = "all"
-
-@ocaml.doc("
-[all3((p1, p2, p3))]. Like `all()`, but with a fixed size tuple of 3
-")
-@scope("Promise")
-@val
+@scope("Promise") @val
external all3: ((t<'a>, t<'b>, t<'c>)) => t<('a, 'b, 'c)> = "all"
-
-@ocaml.doc("
-[all4((p1, p2, p3, p4))]. Like `all()`, but with a fixed size tuple of 4
-")
-@scope("Promise")
-@val
+@scope("Promise") @val
external all4: ((t<'a>, t<'b>, t<'c>, t<'d>)) => t<('a, 'b, 'c, 'd)> = "all"
-
-@ocaml.doc("
-[all5((p1, p2, p3, p4, p5))]. Like `all()`, but with a fixed size tuple of 5
-")
-@scope("Promise")
-@val
+@scope("Promise") @val
external all5: ((t<'a>, t<'b>, t<'c>, t<'d>, t<'e>)) => t<('a, 'b, 'c, 'd, 'e)> = "all"
-
-@ocaml.doc("
-[all6((p1, p2, p4, p5, p6))]. Like `all()`, but with a fixed size tuple of 6
-")
-@scope("Promise")
-@val
+@scope("Promise") @val
external all6: ((t<'a>, t<'b>, t<'c>, t<'d>, t<'e>, t<'f>)) => t<('a, 'b, 'c, 'd, 'e, 'f)> = "all"
+@send
+external _catch: (t<'a>, @uncurry (exn => t<'a>)) => t<'a> = "catch"
+let catch: (t<'a>, exn => t<'a>) => t<'a>
+@scope("Promise") @val
+external race: array> => t<'a> = "race"
diff --git a/src/orca-loader/Elements.res b/src/orca-loader/Elements.res
index 0558bd77..9c62fa6f 100644
--- a/src/orca-loader/Elements.res
+++ b/src/orca-loader/Elements.res
@@ -6,14 +6,14 @@ open EventListenerManager
open ApplePayTypes
-external objToJson: {..} => Js.Json.t = "%identity"
-external eventToJson: Types.eventData => Js.Json.t = "%identity"
+external objToJson: {..} => JSON.t = "%identity"
+external eventToJson: Types.eventData => JSON.t = "%identity"
type trustPayFunctions = {
- finishApplePaymentV2: (. string, ApplePayTypes.paymentRequestData) => Js.Promise.t,
- executeGooglePayment: (. string, GooglePayType.paymentDataRequest) => Js.Promise.t,
+ finishApplePaymentV2: (. string, ApplePayTypes.paymentRequestData) => Promise.t,
+ executeGooglePayment: (. string, GooglePayType.paymentDataRequest) => Promise.t,
}
-@new external trustPayApi: Js.Json.t => trustPayFunctions = "TrustPayApi"
+@new external trustPayApi: JSON.t => trustPayFunctions = "TrustPayApi"
let make = (
options,
@@ -25,40 +25,38 @@ let make = (
~analyticsMetadata,
) => {
let handleApplePayMessages = ref(_ => ())
- let applePaySessionRef = ref(Js.Nullable.null)
+ let applePaySessionRef = ref(Nullable.null)
try {
let iframeRef = []
- let logger = logger->Belt.Option.getWithDefault(OrcaLogger.defaultLoggerConfig)
- let savedPaymentElement = Js.Dict.empty()
- let localOptions = options->Js.Json.decodeObject->Belt.Option.getWithDefault(Js.Dict.empty())
+ let logger = logger->Option.getOr(OrcaLogger.defaultLoggerConfig)
+ let savedPaymentElement = Dict.make()
+ let localOptions = options->JSON.Decode.object->Option.getOr(Dict.make())
let endpoint = ApiEndpoint.getApiEndPoint(~publishableKey, ())
let appearance =
- localOptions
- ->Js.Dict.get("appearance")
- ->Belt.Option.getWithDefault(Js.Dict.empty()->Js.Json.object_)
+ localOptions->Dict.get("appearance")->Option.getOr(Dict.make()->JSON.Encode.object)
let fonts =
localOptions
- ->Js.Dict.get("fonts")
- ->Belt.Option.flatMap(Js.Json.decodeArray)
- ->Belt.Option.getWithDefault([])
- ->Js.Json.array
+ ->Dict.get("fonts")
+ ->Option.flatMap(JSON.Decode.array)
+ ->Option.getOr([])
+ ->JSON.Encode.array
let blockConfirm =
GlobalVars.isInteg &&
options
- ->Js.Json.decodeObject
- ->Belt.Option.flatMap(x => x->Js.Dict.get("blockConfirm"))
- ->Belt.Option.flatMap(Js.Json.decodeBoolean)
- ->Belt.Option.getWithDefault(false)
+ ->JSON.Decode.object
+ ->Option.flatMap(x => x->Dict.get("blockConfirm"))
+ ->Option.flatMap(JSON.Decode.bool)
+ ->Option.getOr(false)
let switchToCustomPod =
GlobalVars.isInteg &&
options
- ->Js.Json.decodeObject
- ->Belt.Option.flatMap(x => x->Js.Dict.get("switchToCustomPod"))
- ->Belt.Option.flatMap(Js.Json.decodeBoolean)
- ->Belt.Option.getWithDefault(false)
+ ->JSON.Decode.object
+ ->Option.flatMap(x => x->Dict.get("switchToCustomPod"))
+ ->Option.flatMap(JSON.Decode.bool)
+ ->Option.getOr(false)
let paymentMethodListPromise = PaymentHelpers.fetchPaymentMethodList(
~clientSecret,
@@ -80,7 +78,7 @@ let make = (
let locale = localOptions->getJsonStringFromDict("locale", "")
let loader = localOptions->getJsonStringFromDict("loader", "")
let clientSecret = localOptions->getRequiredString("clientSecret", "", ~logger)
- let clientSecretReMatch = Js.Re.test_(`.+_secret_[A-Za-z0-9]+`->Js.Re.fromString, clientSecret)
+ let clientSecretReMatch = RegExp.test(`.+_secret_[A-Za-z0-9]+`->RegExp.fromString, clientSecret)
let fetchPaymentsList = mountedIframeRef => {
open Promise
paymentMethodListPromise
@@ -90,36 +88,36 @@ let make = (
~list=json->Utils.getDictFromJson->PaymentMethodsRecord.itemToObjMapper,
~paymentMethod="wallet",
~paymentMethodType="apple_pay",
- )->Belt.Option.isSome
+ )->Option.isSome
let isGooglePayPresent =
PaymentMethodsRecord.getPaymentMethodTypeFromList(
~list=json->Utils.getDictFromJson->PaymentMethodsRecord.itemToObjMapper,
~paymentMethod="wallet",
~paymentMethodType="google_pay",
- )->Belt.Option.isSome
+ )->Option.isSome
if isApplePayPresent || isGooglePayPresent {
if (
- Window.querySelectorAll(`script[src="https://tpgw.trustpay.eu/js/v1.js"]`)->Js.Array2.length === 0 &&
- Window.querySelectorAll(`script[src="https://test-tpgw.trustpay.eu/js/v1.js"]`)->Js.Array2.length === 0
+ Window.querySelectorAll(`script[src="https://tpgw.trustpay.eu/js/v1.js"]`)->Array.length === 0 &&
+ Window.querySelectorAll(`script[src="https://test-tpgw.trustpay.eu/js/v1.js"]`)->Array.length === 0
) {
let trustPayScriptURL =
- publishableKey->Js.String2.startsWith("pk_prd_")
+ publishableKey->String.startsWith("pk_prd_")
? "https://tpgw.trustpay.eu/js/v1.js"
: "https://test-tpgw.trustpay.eu/js/v1.js"
let trustPayScript = Window.createElement("script")
trustPayScript->Window.elementSrc(trustPayScriptURL)
trustPayScript->Window.elementOnerror(err => {
- Utils.logInfo(Js.log2("ERROR DURING LOADING TRUSTPAY APPLE PAY", err))
+ Utils.logInfo(Console.log2("ERROR DURING LOADING TRUSTPAY APPLE PAY", err))
})
Window.body->Window.appendChild(trustPayScript)
logger.setLogInfo(~value="TrustPay Script Loaded", ~eventName=TRUSTPAY_SCRIPT, ())
}
}
- // Js.Global.setTimeout(() => {
- let msg = [("paymentMethodList", json)]->Js.Dict.fromArray
+ // setTimeout(() => {
+ let msg = [("paymentMethodList", json)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
let maskedPayload = json->PaymentHelpers.maskPayload->JSON.stringify
logger.setLogInfo(~value=maskedPayload, ~eventName=PAYMENT_METHODS_RESPONSE, ())
@@ -139,18 +137,18 @@ let make = (
open Promise
customerDetailsPromise
->then(json => {
- // Js.Global.setTimeout(() => {
- let msg = [("customerPaymentMethods", json)]->Js.Dict.fromArray
+ // setTimeout(() => {
+ let msg = [("customerPaymentMethods", json)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
// }, 5000)->ignore
json->resolve
})
->catch(_err => {
let dict =
- [("customer_payment_methods", []->Js.Json.array)]->Js.Dict.fromArray->Js.Json.object_
- let msg = [("customerPaymentMethods", dict)]->Js.Dict.fromArray
+ [("customer_payment_methods", []->JSON.Encode.array)]->Dict.fromArray->JSON.Encode.object
+ let msg = [("customerPaymentMethods", dict)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
- resolve(msg->Js.Json.object_)
+ resolve(msg->JSON.Encode.object)
})
->ignore
}
@@ -165,39 +163,39 @@ let make = (
: ()
let setElementIframeRef = ref => {
- iframeRef->Js.Array2.push(ref)->ignore
+ iframeRef->Array.push(ref)->ignore
setIframeRef(ref)
}
let getElement = componentName => {
- savedPaymentElement->Js.Dict.get(componentName)
+ savedPaymentElement->Dict.get(componentName)
}
let update = newOptions => {
let newOptionsDict = newOptions->getDictFromJson
- switch newOptionsDict->Js.Dict.get("locale") {
- | Some(val) => localOptions->Js.Dict.set("locale", val)
+ switch newOptionsDict->Dict.get("locale") {
+ | Some(val) => localOptions->Dict.set("locale", val)
| None => ()
}
- switch newOptionsDict->Js.Dict.get("appearance") {
- | Some(val) => localOptions->Js.Dict.set("appearance", val)
+ switch newOptionsDict->Dict.get("appearance") {
+ | Some(val) => localOptions->Dict.set("appearance", val)
| None => ()
}
- switch newOptionsDict->Js.Dict.get("clientSecret") {
- | Some(val) => localOptions->Js.Dict.set("clientSecret", val)
+ switch newOptionsDict->Dict.get("clientSecret") {
+ | Some(val) => localOptions->Dict.set("clientSecret", val)
| None => ()
}
- iframeRef->Js.Array2.forEach(iframe => {
+ iframeRef->Array.forEach(iframe => {
let message =
[
- ("ElementsUpdate", true->Js.Json.boolean),
- ("options", newOptionsDict->Js.Json.object_),
- ]->Js.Dict.fromArray
+ ("ElementsUpdate", true->JSON.Encode.bool),
+ ("options", newOptionsDict->JSON.Encode.object),
+ ]->Dict.fromArray
iframe->Window.iframePostMessage(message)
})
}
let fetchUpdates = () => {
Js.Promise.make((~resolve, ~reject as _) => {
- Js.Global.setTimeout(() => resolve(. Js.Dict.empty()->Js.Json.object_), 1000)->ignore
+ setTimeout(() => resolve(. Dict.make()->JSON.Encode.object), 1000)->ignore
})
}
@@ -224,42 +222,42 @@ let make = (
let widgetOptions =
[
- ("clientSecret", clientSecret->Js.Json.string),
+ ("clientSecret", clientSecret->JSON.Encode.string),
("appearance", appearance),
("locale", locale),
("loader", loader),
("fonts", fonts),
]
- ->Js.Dict.fromArray
- ->Js.Json.object_
+ ->Dict.fromArray
+ ->JSON.Encode.object
let message =
[
- ("paymentElementCreate", (componentType == "payment")->Js.Json.boolean),
- ("otherElements", otherElements->Js.Json.boolean),
+ ("paymentElementCreate", (componentType == "payment")->JSON.Encode.bool),
+ ("otherElements", otherElements->JSON.Encode.bool),
("options", newOptions),
- ("componentType", componentType->Js.Json.string),
+ ("componentType", componentType->JSON.Encode.string),
("paymentOptions", widgetOptions),
- ("iframeId", selectorString->Js.Json.string),
- ("publishableKey", publishableKey->Js.Json.string),
- ("endpoint", endpoint->Js.Json.string),
- ("sdkSessionId", sdkSessionId->Js.Json.string),
- ("blockConfirm", blockConfirm->Js.Json.boolean),
- ("switchToCustomPod", switchToCustomPod->Js.Json.boolean),
- ("endpoint", endpoint->Js.Json.string),
- ("sdkHandleOneClickConfirmPayment", sdkHandleOneClickConfirmPayment->Js.Json.boolean),
- ("parentURL", "*"->Js.Json.string),
+ ("iframeId", selectorString->JSON.Encode.string),
+ ("publishableKey", publishableKey->JSON.Encode.string),
+ ("endpoint", endpoint->JSON.Encode.string),
+ ("sdkSessionId", sdkSessionId->JSON.Encode.string),
+ ("blockConfirm", blockConfirm->JSON.Encode.bool),
+ ("switchToCustomPod", switchToCustomPod->JSON.Encode.bool),
+ ("endpoint", endpoint->JSON.Encode.string),
+ ("sdkHandleOneClickConfirmPayment", sdkHandleOneClickConfirmPayment->JSON.Encode.bool),
+ ("parentURL", "*"->JSON.Encode.string),
("analyticsMetadata", analyticsMetadata),
- ]->Js.Dict.fromArray
+ ]->Dict.fromArray
let handleApplePayMounted = (event: Types.event) => {
let json = event.data->eventToJson
let dict = json->getDictFromJson
- if dict->Js.Dict.get("applePayMounted")->Belt.Option.isSome {
- switch sessionForApplePay->Js.Nullable.toOption {
+ if dict->Dict.get("applePayMounted")->Option.isSome {
+ switch sessionForApplePay->Nullable.toOption {
| Some(session) =>
if session.canMakePayments(.) {
- let msg = [("applePayCanMakePayments", true->Js.Json.boolean)]->Js.Dict.fromArray
+ let msg = [("applePayCanMakePayments", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
} else {
logger.setLogInfo(
@@ -280,20 +278,18 @@ let make = (
let json = event.data->eventToJson
let dict = json->getDictFromJson
- switch dict->Js.Dict.get("googlePayThirdPartyFlow") {
+ switch dict->Dict.get("googlePayThirdPartyFlow") {
| Some(googlePayThirdPartyOptSession) => {
let googlePayThirdPartySession = googlePayThirdPartyOptSession->Utils.getDictFromJson
let baseDetails = {
"apiVersion": 2,
"apiVersionMinor": 0,
- "environment": publishableKey->Js.String2.startsWith("pk_prd_")
- ? "PRODUCTION"
- : "TEST",
+ "environment": publishableKey->String.startsWith("pk_prd_") ? "PRODUCTION" : "TEST",
}
let paymentDataRequest = GooglePayType.assign2(
- Js.Dict.empty()->Js.Json.object_,
+ Dict.make()->JSON.Encode.object,
baseDetails->objToJson,
)
@@ -302,7 +298,7 @@ let make = (
googlePayThirdPartySession,
)
let secrets =
- googlePayThirdPartySession->Utils.getJsonFromDict("secrets", Js.Json.null)
+ googlePayThirdPartySession->Utils.getJsonFromDict("secrets", JSON.Encode.null)
let payment = secrets->Utils.getDictFromJson->Utils.getString("payment", "")
@@ -312,17 +308,17 @@ let make = (
->then(res => {
logger.setLogInfo(
~value="TrustPay GooglePay Success Response",
- ~internalMetadata=res->Js.Json.stringify,
+ ~internalMetadata=res->JSON.stringify,
~eventName=GOOGLE_PAY_FLOW,
~paymentMethod="GOOGLE_PAY",
(),
)
- let msg = [("googlePaySyncPayment", true->Js.Json.boolean)]->Js.Dict.fromArray
+ let msg = [("googlePaySyncPayment", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
resolve()
})
->catch(err => {
- let exceptionMessage = err->Utils.formatException->Js.Json.stringify
+ let exceptionMessage = err->Utils.formatException->JSON.stringify
logger.setLogInfo(
~value=exceptionMessage,
~eventName=GOOGLE_PAY_FLOW,
@@ -331,14 +327,14 @@ let make = (
~logCategory=USER_ERROR,
(),
)
- let msg = [("googlePaySyncPayment", true->Js.Json.boolean)]->Js.Dict.fromArray
+ let msg = [("googlePaySyncPayment", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
resolve()
})
->ignore
} catch {
| err => {
- let exceptionMessage = err->Utils.formatException->Js.Json.stringify
+ let exceptionMessage = err->Utils.formatException->JSON.stringify
logger.setLogInfo(
~value=exceptionMessage,
~eventName=GOOGLE_PAY_FLOW,
@@ -347,7 +343,7 @@ let make = (
~logCategory=USER_ERROR,
(),
)
- let msg = [("googlePaySyncPayment", true->Js.Json.boolean)]->Js.Dict.fromArray
+ let msg = [("googlePaySyncPayment", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
}
}
@@ -363,38 +359,38 @@ let make = (
->then(json => {
let sessionsArr =
json
- ->Js.Json.decodeObject
- ->Belt.Option.getWithDefault(Js.Dict.empty())
+ ->JSON.Decode.object
+ ->Option.getOr(Dict.make())
->SessionsType.getSessionsTokenJson("session_token")
- let applePayPresent = sessionsArr->Js.Array2.find(item => {
+ let applePayPresent = sessionsArr->Array.find(item => {
let x =
item
- ->Js.Json.decodeObject
- ->Belt.Option.flatMap(
+ ->JSON.Decode.object
+ ->Option.flatMap(
x => {
- x->Js.Dict.get("wallet_name")
+ x->Dict.get("wallet_name")
},
)
- ->Belt.Option.flatMap(Js.Json.decodeString)
- ->Belt.Option.getWithDefault("")
+ ->Option.flatMap(JSON.Decode.string)
+ ->Option.getOr("")
x === "apple_pay" || x === "applepay"
})
- if !(applePayPresent->Belt.Option.isSome) {
- let msg = [("applePaySessionObjNotPresent", true->Js.Json.boolean)]->Js.Dict.fromArray
+ if !(applePayPresent->Option.isSome) {
+ let msg = [("applePaySessionObjNotPresent", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
}
- let googlePayPresent = sessionsArr->Js.Array2.find(item => {
+ let googlePayPresent = sessionsArr->Array.find(item => {
let x =
item
- ->Js.Json.decodeObject
- ->Belt.Option.flatMap(
+ ->JSON.Decode.object
+ ->Option.flatMap(
x => {
- x->Js.Dict.get("wallet_name")
+ x->Dict.get("wallet_name")
},
)
- ->Belt.Option.flatMap(Js.Json.decodeString)
- ->Belt.Option.getWithDefault("")
+ ->Option.flatMap(JSON.Decode.string)
+ ->Option.getOr("")
x === "google_pay" || x === "googlepay"
})
@@ -402,11 +398,11 @@ let make = (
})
->then(res => {
let (json, applePayPresent, googlePayPresent) = res
- if componentType === "payment" && applePayPresent->Belt.Option.isSome {
+ if componentType === "payment" && applePayPresent->Option.isSome {
//do operations here
- let processPayment = (token: Js.Json.t) => {
+ let processPayment = (token: JSON.t) => {
//let body = PaymentBody.applePayBody(~token)
- let msg = [("applePayProcessPayment", token)]->Js.Dict.fromArray
+ let msg = [("applePayProcessPayment", token)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
}
@@ -415,17 +411,17 @@ let make = (
(event: Types.event) => {
let json = event.data->eventToJson
let dict = json->getDictFromJson
- switch dict->Js.Dict.get("applePayButtonClicked") {
+ switch dict->Dict.get("applePayButtonClicked") {
| Some(val) =>
- if val->Js.Json.decodeBoolean->Belt.Option.getWithDefault(false) {
+ if val->JSON.Decode.bool->Option.getOr(false) {
let isDelayedSessionToken =
applePayPresent
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
- ->Js.Dict.get("delayed_session_token")
- ->Belt.Option.getWithDefault(Js.Json.null)
- ->Js.Json.decodeBoolean
- ->Belt.Option.getWithDefault(false)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
+ ->Dict.get("delayed_session_token")
+ ->Option.getOr(JSON.Encode.null)
+ ->JSON.Decode.bool
+ ->Option.getOr(false)
if isDelayedSessionToken {
logger.setLogInfo(
@@ -437,16 +433,16 @@ let make = (
let applePayPresent =
dict
- ->Js.Dict.get("applePayPresent")
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
+ ->Dict.get("applePayPresent")
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
let connector =
applePayPresent
- ->Js.Dict.get("connector")
- ->Belt.Option.getWithDefault(Js.Json.null)
- ->Js.Json.decodeString
- ->Belt.Option.getWithDefault("")
+ ->Dict.get("connector")
+ ->Option.getOr(JSON.Encode.null)
+ ->JSON.Decode.string
+ ->Option.getOr("")
switch connector {
| "trustpay" =>
@@ -458,28 +454,28 @@ let make = (
)
let secrets =
applePayPresent
- ->Js.Dict.get("session_token_data")
- ->Belt.Option.getWithDefault(Js.Json.null)
- ->Js.Json.decodeObject
- ->Belt.Option.getWithDefault(Js.Dict.empty())
- ->Js.Dict.get("secrets")
- ->Belt.Option.getWithDefault(Js.Json.null)
+ ->Dict.get("session_token_data")
+ ->Option.getOr(JSON.Encode.null)
+ ->JSON.Decode.object
+ ->Option.getOr(Dict.make())
+ ->Dict.get("secrets")
+ ->Option.getOr(JSON.Encode.null)
let paymentRequest =
applePayPresent
- ->Js.Dict.get("payment_request_data")
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
+ ->Dict.get("payment_request_data")
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
->ApplePayTypes.jsonToPaymentRequestDataType
let payment =
secrets
- ->Js.Json.decodeObject
- ->Belt.Option.getWithDefault(Js.Dict.empty())
- ->Js.Dict.get("payment")
- ->Belt.Option.getWithDefault(Js.Json.null)
- ->Js.Json.decodeString
- ->Belt.Option.getWithDefault("")
+ ->JSON.Decode.object
+ ->Option.getOr(Dict.make())
+ ->Dict.get("payment")
+ ->Option.getOr(JSON.Encode.null)
+ ->JSON.Decode.string
+ ->Option.getOr("")
try {
let trustpay = trustPayApi(secrets)
@@ -487,13 +483,13 @@ let make = (
->then(res => {
logger.setLogInfo(
~value="TrustPay ApplePay Success Response",
- ~internalMetadata=res->Js.Json.stringify,
+ ~internalMetadata=res->JSON.stringify,
~eventName=APPLE_PAY_FLOW,
~paymentMethod="APPLE_PAY",
(),
)
let msg =
- [("applePaySyncPayment", true->Js.Json.boolean)]->Js.Dict.fromArray
+ [("applePaySyncPayment", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
logger.setLogInfo(
~value="",
@@ -504,7 +500,7 @@ let make = (
resolve()
})
->catch(err => {
- let exceptionMessage = err->Utils.formatException->Js.Json.stringify
+ let exceptionMessage = err->Utils.formatException->JSON.stringify
logger.setLogInfo(
~eventName=APPLE_PAY_FLOW,
~paymentMethod="APPLE_PAY",
@@ -512,7 +508,7 @@ let make = (
(),
)
let msg =
- [("applePaySyncPayment", true->Js.Json.boolean)]->Js.Dict.fromArray
+ [("applePaySyncPayment", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
resolve()
})
@@ -520,13 +516,13 @@ let make = (
} catch {
| exn => {
logger.setLogInfo(
- ~value=exn->Utils.formatException->Js.Json.stringify,
+ ~value=exn->Utils.formatException->JSON.stringify,
~eventName=APPLE_PAY_FLOW,
~paymentMethod="APPLE_PAY",
(),
)
let msg =
- [("applePaySyncPayment", true->Js.Json.boolean)]->Js.Dict.fromArray
+ [("applePaySyncPayment", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
}
}
@@ -535,48 +531,47 @@ let make = (
} else {
let paymentRequest =
applePayPresent
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
- ->Js.Dict.get("payment_request_data")
- ->Belt.Option.getWithDefault(Js.Dict.empty()->Js.Json.object_)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
+ ->Dict.get("payment_request_data")
+ ->Option.getOr(Dict.make()->JSON.Encode.object)
->Utils.transformKeys(Utils.CamelCase)
let ssn = applePaySession(3, paymentRequest)
- switch applePaySessionRef.contents->Js.Nullable.toOption {
+ switch applePaySessionRef.contents->Nullable.toOption {
| Some(session) =>
try {
session.abort(.)
} catch {
- | error => Js.log2("Abort fail", error)
+ | error => Console.log2("Abort fail", error)
}
| None => ()
}
ssn.begin(.)
- applePaySessionRef := ssn->Js.Nullable.return
+ applePaySessionRef := ssn->Nullable.make
ssn.onvalidatemerchant = _event => {
let merchantSession =
applePayPresent
- ->Belt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
- ->Js.Dict.get("session_token_data")
- ->Belt.Option.getWithDefault(Js.Dict.empty()->Js.Json.object_)
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.getOr(Dict.make())
+ ->Dict.get("session_token_data")
+ ->Option.getOr(Dict.make()->JSON.Encode.object)
->Utils.transformKeys(Utils.CamelCase)
ssn.completeMerchantValidation(. merchantSession)
}
ssn.onpaymentauthorized = event => {
ssn.completePayment(. {"status": ssn.\"STATUS_SUCCESS"}->objToJson)
- applePaySessionRef := Js.Nullable.null
+ applePaySessionRef := Nullable.null
processPayment(event.payment.token)
}
ssn.oncancel = _ev => {
- let msg =
- [("showApplePayButton", true->Js.Json.boolean)]->Js.Dict.fromArray
+ let msg = [("showApplePayButton", true->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
- applePaySessionRef := Js.Nullable.null
- Utils.logInfo(Js.log("Apple Pay payment cancelled"))
+ applePaySessionRef := Nullable.null
+ Utils.logInfo(Console.log("Apple Pay payment cancelled"))
}
}
} else {
@@ -589,7 +584,7 @@ let make = (
addSmartEventListener("message", handleApplePayMessages.contents, "onApplePayMessages")
}
- if componentType === "payment" && googlePayPresent->Belt.Option.isSome {
+ if componentType === "payment" && googlePayPresent->Option.isSome {
let dict = json->getDictFromJson
let sessionObj = SessionsType.itemToObjMapper(dict, Others)
let gPayToken = SessionsType.getPaymentSessionObj(sessionObj.sessionsToken, Gpay)
@@ -609,12 +604,12 @@ let make = (
"apiVersionMinor": 0,
}
let paymentDataRequest = GooglePayType.assign2(
- Js.Dict.empty()->Js.Json.object_,
+ Dict.make()->JSON.Encode.object,
baseRequest->toJson,
)
let payRequest = GooglePayType.assign(
- Js.Dict.empty()->Js.Json.object_,
+ Dict.make()->JSON.Encode.object,
baseRequest->toJson,
{
"allowedPaymentMethods": gpayobj.allowed_payment_methods->arrayJsonToCamelCase,
@@ -627,7 +622,7 @@ let make = (
try {
let gPayClient = GooglePayType.google(
{
- "environment": publishableKey->Js.String2.startsWith("pk_prd_")
+ "environment": publishableKey->String.startsWith("pk_prd_")
? "PRODUCTION"
: "TEST",
}->toJson,
@@ -637,13 +632,13 @@ let make = (
->then(res => {
let dict = res->getDictFromJson
let isReadyToPay = getBool(dict, "result", false)
- let msg = [("isReadyToPay", isReadyToPay->Js.Json.boolean)]->Js.Dict.fromArray
+ let msg = [("isReadyToPay", isReadyToPay->JSON.Encode.bool)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
resolve()
})
->catch(err => {
logger.setLogInfo(
- ~value=err->toJson->Js.Json.stringify,
+ ~value=err->toJson->JSON.stringify,
~eventName=GOOGLE_PAY_FLOW,
~paymentMethod="GOOGLE_PAY",
~logType=DEBUG,
@@ -661,18 +656,18 @@ let make = (
->OrcaUtils.getBoolfromjson(false)
if gpayClicked {
- Js.Global.setTimeout(() => {
+ setTimeout(() => {
gPayClient.loadPaymentData(. paymentDataRequest->toJson)
->then(
json => {
logger.setLogInfo(
- ~value=json->toJson->Js.Json.stringify,
+ ~value=json->toJson->JSON.stringify,
~eventName=GOOGLE_PAY_FLOW,
~paymentMethod="GOOGLE_PAY",
~logType=DEBUG,
(),
)
- let msg = [("gpayResponse", json->toJson)]->Js.Dict.fromArray
+ let msg = [("gpayResponse", json->toJson)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
resolve()
},
@@ -680,14 +675,14 @@ let make = (
->catch(
err => {
logger.setLogInfo(
- ~value=err->toJson->Js.Json.stringify,
+ ~value=err->toJson->JSON.stringify,
~eventName=GOOGLE_PAY_FLOW,
~paymentMethod="GOOGLE_PAY",
~logType=DEBUG,
(),
)
- let msg = [("gpayError", err->toJson)]->Js.Dict.fromArray
+ let msg = [("gpayError", err->toJson)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
resolve()
},
@@ -698,14 +693,14 @@ let make = (
}
addSmartEventListener("message", handleGooglePayMessages, "onGooglePayMessages")
} catch {
- | _ => Js.log("Error loading Gpay")
+ | _ => Console.log("Error loading Gpay")
}
}
json->resolve
})
->then(json => {
- let msg = [("sessions", json)]->Js.Dict.fromArray
+ let msg = [("sessions", json)]->Dict.fromArray
mountedIframeRef->Window.iframePostMessage(msg)
json->resolve
})
@@ -722,7 +717,7 @@ let make = (
iframeRef,
mountPostMessage,
)
- savedPaymentElement->Js.Dict.set(componentType, paymentElement)
+ savedPaymentElement->Dict.set(componentType, paymentElement)
paymentElement
}
{
diff --git a/src/orca-loader/Hyper.res b/src/orca-loader/Hyper.res
index d1d1717f..d5684a33 100644
--- a/src/orca-loader/Hyper.res
+++ b/src/orca-loader/Hyper.res
@@ -4,23 +4,23 @@ open LoggerUtils
open Utils
open EventListenerManager
-external eventToJson: Types.eventData => Js.Json.t = "%identity"
+external eventToJson: Types.eventData => JSON.t = "%identity"
let checkAndAppend = (selector, child) => {
- if Js.Nullable.toOption(CommonHooks.querySelector(selector)) == None {
+ if Nullable.toOption(CommonHooks.querySelector(selector)) == None {
CommonHooks.appendChild(child)
}
}
if (
- Window.querySelectorAll(`script[src="${GlobalVars.sentryScriptUrl}"]`)->Js.Array2.length === 0 &&
- Js.typeof(GlobalVars.sentryScriptUrl) !== "undefined"
+ Window.querySelectorAll(`script[src="${GlobalVars.sentryScriptUrl}"]`)->Array.length === 0 &&
+ GlobalVars.sentryScriptUrl->typeof !== #undefined
) {
try {
let script = Window.createElement("script")
script->Window.elementSrc(GlobalVars.sentryScriptUrl)
script->Window.elementOnerror(err => {
- Js.log2("ERROR DURING LOADING Sentry on HyperLoader", err)
+ Console.log2("ERROR DURING LOADING Sentry on HyperLoader", err)
})
script->Window.elementOnload(() => {
Sentry.initiateSentryJs(~dsn=GlobalVars.sentryDSN)
@@ -29,7 +29,7 @@ if (
Window.body->Window.appendChild(script)
})
} catch {
- | e => Js.log2("Sentry load exited", e)
+ | e => Console.log2("Sentry load exited", e)
}
}
@@ -68,16 +68,16 @@ let preloader = () => {
)
}
-let make = (publishableKey, options: option, analyticsInfo: option) => {
+let make = (publishableKey, options: option, analyticsInfo: option) => {
try {
let isPreloadEnabled =
options
- ->Belt.Option.getWithDefault(Js.Json.null)
+ ->Option.getOr(JSON.Encode.null)
->Utils.getDictFromJson
->Utils.getBool("isPreloadEnabled", true)
let analyticsMetadata =
options
- ->Belt.Option.getWithDefault(Js.Json.null)
+ ->Option.getOr(JSON.Encode.null)
->Utils.getDictFromJson
->Utils.getDictFromObj("analytics")
->Utils.getJsonObjectFromDict("metadata")
@@ -85,11 +85,9 @@ let make = (publishableKey, options: option, analyticsInfo: optionBelt.Option.flatMap(Js.Json.decodeObject)
- ->Belt.Option.getWithDefault(Js.Dict.empty())
+ analyticsInfo->Option.flatMap(JSON.Decode.object)->Option.getOr(Dict.make())
let sessionID = analyticsInfoDict->getString("sessionID", "")
- let sdkTimestamp = analyticsInfoDict->getString("timeStamp", Js.Date.now()->Belt.Float.toString)
+ let sdkTimestamp = analyticsInfoDict->getString("timeStamp", Date.now()->Belt.Float.toString)
let logger = OrcaLogger.make(
~sessionId=sessionID,
~source=Loader,
@@ -101,10 +99,10 @@ let make = (publishableKey, options: option, analyticsInfo: option
let customBackendUrl =
userOptions
- ->Js.Json.decodeObject
- ->Belt.Option.flatMap(x => x->Js.Dict.get("customBackendUrl"))
- ->Belt.Option.flatMap(Js.Json.decodeString)
- ->Belt.Option.getWithDefault("")
+ ->JSON.Decode.object
+ ->Option.flatMap(x => x->Dict.get("customBackendUrl"))
+ ->Option.flatMap(JSON.Decode.string)
+ ->Option.getOr("")
customBackendUrl === "" ? () : ApiEndpoint.setApiEndPoint(customBackendUrl)
| None => ()
}
@@ -116,7 +114,7 @@ let make = (publishableKey, options: option, analyticsInfo: optionSentry.sentryLogger
- switch Window.getHyper->Js.Nullable.toOption {
+ switch Window.getHyper->Nullable.toOption {
| Some(hyperMethod) => {
logger.setLogInfo(
~value="orca-sdk initiated",
@@ -127,7 +125,7 @@ let make = (publishableKey, options: option, analyticsInfo: option
- let loaderTimestamp = Js.Date.now()->Belt.Float.toString
+ let loaderTimestamp = Date.now()->Belt.Float.toString
{
() => {
@@ -140,21 +138,21 @@ let make = (publishableKey, options: option, analyticsInfo: optionJs.String2.startsWith("pk_snd_") ||
- publishableKey->Js.String2.startsWith("pk_prd_")
+ publishableKey->String.startsWith("pk_snd_") ||
+ publishableKey->String.startsWith("pk_prd_")
)
) {
manageErrorWarning(INVALID_PK, (), ~logger)
}
if (
- Window.querySelectorAll(`script[src="https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js"]`)->Js.Array2.length === 0
+ Window.querySelectorAll(`script[src="https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js"]`)->Array.length === 0
) {
let scriptURL = "https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js"
let script = Window.createElement("script")
script->Window.elementSrc(scriptURL)
script->Window.elementOnerror(err => {
- Js.log2("ERROR DURING LOADING APPLE PAY", err)
+ Console.log2("ERROR DURING LOADING APPLE PAY", err)
})
Window.body->Window.appendChild(script)
}
@@ -162,13 +160,13 @@ let make = (publishableKey, options: option, analyticsInfo: optionSentry.sentryLogger
if (
- Window.querySelectorAll(`script[src="https://pay.google.com/gp/p/js/pay.js"]`)->Js.Array2.length === 0
+ Window.querySelectorAll(`script[src="https://pay.google.com/gp/p/js/pay.js"]`)->Array.length === 0
) {
let googlePayScriptURL = "https://pay.google.com/gp/p/js/pay.js"
let googlePayScript = Window.createElement("script")
googlePayScript->Window.elementSrc(googlePayScriptURL)
googlePayScript->Window.elementOnerror(err => {
- Utils.logInfo(Js.log2("ERROR DURING LOADING GOOGLE PAY SCRIPT", err))
+ Utils.logInfo(Console.log2("ERROR DURING LOADING GOOGLE PAY SCRIPT", err))
})
Window.body->Window.appendChild(googlePayScript)
logger.setLogInfo(~value="GooglePay Script Loaded", ~eventName=GOOGLE_PAY_SCRIPT, ())
@@ -177,7 +175,7 @@ let make = (publishableKey, options: option, analyticsInfo: option {
- iframeRef.contents->Js.Array2.push(ref)->ignore
+ iframeRef.contents->Array.push(ref)->ignore
}
let retrievePaymentIntentFn = clientSecret => {
@@ -186,7 +184,7 @@ let make = (publishableKey, options: option, analyticsInfo: optionOption.getOr("")
+ let paymentIntentID = String.split(clientSecret, "_secret_")->Array.get(0)->Option.getOr("")
let retrievePaymentUrl = `${endpoint}/payments/${paymentIntentID}?client_secret=${clientSecret}`
open Promise
logApi(
@@ -206,8 +204,8 @@ let make = (publishableKey, options: option, analyticsInfo: optionthen(resp => {
- let statusCode = resp->Fetch.Response.status->string_of_int
- if statusCode->Js.String2.charAt(0) !== "2" {
+ let statusCode = resp->Fetch.Response.status->Int.toString
+ if statusCode->String.charAt(0) !== "2" {
resp
->Fetch.Response.json
->then(data => {
@@ -240,37 +238,37 @@ let make = (publishableKey, options: option