Skip to content

Commit 9741bc0

Browse files
committed
feat: added support for mounting v2 script
1 parent 21eaf80 commit 9741bc0

File tree

6 files changed

+33
-11
lines changed

6 files changed

+33
-11
lines changed

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
function i(r){if(!(r!==null&&r.BS_PRIVATE_NESTED_SOME_NONE!==void 0))return r;var n=r.BS_PRIVATE_NESTED_SOME_NONE;if(n!==0)return{BS_PRIVATE_NESTED_SOME_NONE:n-1|0}}function d(r,n){if(r<=0)return[];for(var e=new Array(r),t=0;t<r;++t)e[t]=n;return e}function D(r){var n=Object.prototype.toString.call(r);switch(n){case"[object Array]":return{TAG:"Array",_0:r};case"[object Boolean]":return{TAG:"Bool",_0:r};case"[object Null]":return"Null";case"[object Number]":return{TAG:"Number",_0:r};case"[object String]":return{TAG:"String",_0:r};default:return{TAG:"Object",_0:r}}}var p={classify:D};function k(r){if(typeof r=="boolean")return r}function J(r){if(r===null)return null}function F(r){if(typeof r=="string")return r}function H(r){if(typeof r=="number")return r}function W(r){if(typeof r=="object"&&!Array.isArray(r)&&r!==null)return r}function L(r){if(Array.isArray(r))return r}var f={bool:k,$$null:J,string:F,$$float:H,object:W,array:L};function q(r){return Math.floor(r)|0}function x(r,n){var e=Math.random()*(n-r|0);return(Math.floor(e)|0)+r|0}var y={floor:q,random:x};function g(r,n,e){return r.reduce(e,n)}function E(r,n){if(r!==void 0)return n(i(r))}function a(r,n){return r!==void 0?i(r):n}function C(){var r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";return g(d(32,0),"",function(n,e){var t=y.random(0,r.length),o=r.charAt(t);return n+o})}function A(r){var n=r!==void 0?a(f.object(r),{}):{},e=n.env;if(e===void 0)return"";var t=f.string(e);return t!==void 0?t:""}function X(r,n){var e=p.classify(r),t;if(typeof e!="object")t="";else switch(e.TAG){case"String":t=e._0;break;case"Object":t=a(E(e._0.publishableKey,f.string),"");break;default:t=""}return new Promise(function(o,I){var O=C(),N=Date.now(),S=A(n),u;switch(S){case"PROD":u="https://checkout.hyperswitch.io/v0/HyperLoader.js";break;case"SANDBOX":u="https://beta.hyperswitch.io/v1/HyperLoader.js";break;default:u=t.startsWith("pk_prd_")?"https://checkout.hyperswitch.io/v0/HyperLoader.js":"https://beta.hyperswitch.io/v1/HyperLoader.js"}var v=Object.fromEntries([["sessionID",O],["timeStamp",N.toString()]]);if(document.querySelectorAll('script[src="'+u+'"]').length===0){var l=document.createElement("script");l.src=u,l.onload=function(){var c=window.Hyper;if(c!=null)return o(c(r,n,v))},l.onerror=function(c){I(c)},document.body.appendChild(l);return}console.warn("INTEGRATION WARNING: There is already an existing script tag for "+u+". Multiple additions of HyperLoader.js is not permitted, please add it on the top level only once.");var _=window.Hyper;if(_!=null)return o(_(r,n,v))})}function er(r,n){return console.warn("loadStripe is deprecated. Please use loadHyper instead."),X(r,n)}export{X as loadHyper,er as loadStripe};
1+
function f(r){if(!(r!==null&&r.BS_PRIVATE_NESTED_SOME_NONE!==void 0))return r;var e=r.BS_PRIVATE_NESTED_SOME_NONE;if(e!==0)return{BS_PRIVATE_NESTED_SOME_NONE:e-1|0}}function p(r,e){if(r<=0)return[];for(var n=new Array(r),t=0;t<r;++t)n[t]=e;return n}function H(r){var e=Object.prototype.toString.call(r);switch(e){case"[object Array]":return{TAG:"Array",_0:r};case"[object Boolean]":return{TAG:"Bool",_0:r};case"[object Null]":return"Null";case"[object Number]":return{TAG:"Number",_0:r};case"[object String]":return{TAG:"String",_0:r};default:return{TAG:"Object",_0:r}}}var y={classify:H};function F(r){if(typeof r=="boolean")return r}function W(r){if(r===null)return null}function L(r){if(typeof r=="string")return r}function V(r){if(typeof r=="number")return r}function q(r){if(typeof r=="object"&&!Array.isArray(r)&&r!==null)return r}function x(r){if(Array.isArray(r))return r}var i={bool:F,$$null:W,string:L,$$float:V,object:q,array:x};function G(r){return Math.floor(r)|0}function z(r,e){var n=Math.random()*(e-r|0);return(Math.floor(n)|0)+r|0}var w={floor:G,random:z};function E(r,e,n){return r.reduce(n,e)}function C(r,e){if(r!==void 0)return e(f(r))}function o(r,e){return r!==void 0?f(r):e}function O(){var r="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";return E(p(32,0),"",function(e,n){var t=w.random(0,r.length),c=r.charAt(t);return e+c})}function I(r){var e=r!==void 0?o(i.object(r),{}):{},n=e.env;if(n===void 0)return"";var t=i.string(n);return t!==void 0?t:""}function N(r){var e=r!==void 0?o(i.object(r),{}):{},n=e.version;if(n===void 0)return"";var t=i.string(n);return t!==void 0?t:""}function Y(r,e){var n=y.classify(r),t;if(typeof n!="object")t="";else switch(n.TAG){case"String":t=n._0;break;case"Object":t=o(C(n._0.publishableKey,i.string),"");break;default:t=""}return new Promise(function(c,S){var b=O(),P=Date.now(),v=N(e),T=I(e),u,l=0;switch(T){case"PROD":switch(v){case"V1":u="https://checkout.hyperswitch.io/v0/HyperLoader.js";break;case"V2":u="https://checkout.hyperswitch.io/v2/HyperLoader.js";break;default:l=1}break;case"SANDBOX":switch(v){case"V1":u="https://beta.hyperswitch.io/v1/HyperLoader.js";break;case"V2":u="https://beta.hyperswitch.io/v2/HyperLoader.js";break;default:l=1}break;default:l=1}l===1&&(u=v==="V2"?t.startsWith("pk_prd_")?"https://checkout.hyperswitch.io/v2/HyperLoader.js":"https://beta.hyperswitch.io/v2/HyperLoader.js":t.startsWith("pk_prd_")?"https://checkout.hyperswitch.io/v0/HyperLoader.js":"https://beta.hyperswitch.io/v1/HyperLoader.js");var m=Object.fromEntries([["sessionID",b],["timeStamp",P.toString()]]);if(document.querySelectorAll('script[src="'+u+'"]').length===0){var a=document.createElement("script");a.src=u,a.onload=function(){var s=window.Hyper;if(s!=null)return c(s(r,e,m))},a.onerror=function(s){S(s)},document.body.appendChild(a);return}console.warn("INTEGRATION WARNING: There is already an existing script tag for "+u+". Multiple additions of HyperLoader.js is not permitted, please add it on the top level only once.");var d=window.Hyper;if(d!=null)return c(d(r,e,m))})}function ir(r,e){return console.warn("loadStripe is deprecated. Please use loadHyper instead."),Y(r,e)}export{Y as loadHyper,ir as loadStripe};
22
//# sourceMappingURL=index.mjs.map

dist/index.mjs.map

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

src/Index.res

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,16 @@ let loadHyper = (hyperObject: JSON.t, option: option<JSON.t>) => {
1313
Promise.make((resolve, reject) => {
1414
let sessionID = generateSessionID()
1515
let timeStamp = Date.now()
16-
let scriptURL = switch getEnv(option) {
17-
| "SANDBOX" => "https://beta.hyperswitch.io/v1/HyperLoader.js"
18-
| "PROD" => "https://checkout.hyperswitch.io/v0/HyperLoader.js"
16+
let version = getVersion(option)
17+
let scriptURL = switch (getEnv(option), version) {
18+
| ("SANDBOX", "V1") => "https://beta.hyperswitch.io/v1/HyperLoader.js"
19+
| ("PROD", "V1") => "https://checkout.hyperswitch.io/v0/HyperLoader.js"
20+
| ("SANDBOX", "V2") => "https://beta.hyperswitch.io/v2/HyperLoader.js"
21+
| ("PROD", "V2") => "https://checkout.hyperswitch.io/v2/HyperLoader.js"
22+
| (_, "V2") =>
23+
str->String.startsWith("pk_prd_")
24+
? "https://checkout.hyperswitch.io/v2/HyperLoader.js"
25+
: "https://beta.hyperswitch.io/v2/HyperLoader.js"
1926
| _ =>
2027
str->String.startsWith("pk_prd_")
2128
? "https://checkout.hyperswitch.io/v0/HyperLoader.js"

src/Types.res

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,21 @@ let getEnv = option => {
160160
}
161161
}
162162

163+
let getVersion = option => {
164+
let dict = switch option {
165+
| Some(json) => json->JSON.Decode.object->Option.getOr(Dict.make())
166+
| None => Dict.make()
167+
}
168+
switch dict->Dict.get("version") {
169+
| Some(val) =>
170+
switch val->JSON.Decode.string {
171+
| Some(str) => str
172+
| None => ""
173+
}
174+
| None => ""
175+
}
176+
}
177+
163178
module HyperJs = {
164179
@val @scope("window")
165180
external hyperInstance: Nullable.t<hyperInstanceMake> = "Hyper"

0 commit comments

Comments
 (0)