@revolut/checkout
Version:
RevolutCheckout.js as npm module
35 lines (34 loc) • 1.39 kB
JavaScript
import { MODE, URLS } from './constants';
import { getVersionedUrl, loadScript } from './utils';
import { RevolutPaymentsVersionLoader } from './versionLoader';
var loadedUpsellInstance = null;
export function RevolutUpsellLoader(token, mode, locale) {
if (mode === void 0) { mode = RevolutUpsellLoader.mode; }
if (loadedUpsellInstance) {
var instance = loadedUpsellInstance({ publicToken: token, locale: locale });
return Promise.resolve(instance);
}
return RevolutPaymentsVersionLoader(mode)
.then(function (version) { return loadRevolutUpsell(version, mode); })
.then(function (revolutUpsell) { return revolutUpsell({ publicToken: token, locale: locale }); });
}
function loadRevolutUpsell(version, mode) {
return loadScript({
src: getVersionedUrl(URLS[mode].upsell, version),
id: 'revolut-upsell',
name: 'RevolutUpsell',
}).then(function () {
if (loadedUpsellInstance) {
return loadedUpsellInstance;
}
else if (typeof RevolutUpsell === 'function') {
loadedUpsellInstance = RevolutUpsell;
delete window.RevolutUpsell;
return loadedUpsellInstance;
}
else {
throw new Error("'RevolutUpsell' failed to load: RevolutUpsell is not a function");
}
});
}
RevolutUpsellLoader.mode = MODE.PRODUCTION;