@revolut/checkout
Version:
RevolutCheckout.js as npm module
36 lines (35 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var constants_1 = require("./constants");
var utils_1 = require("./utils");
var versionLoader_1 = require("./versionLoader");
var loadedUpsellInstance = null;
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 versionLoader_1.RevolutPaymentsVersionLoader(mode).then(function (version) {
return loadRevolutUpsell(version, token, mode, locale);
});
}
exports.RevolutUpsellLoader = RevolutUpsellLoader;
function loadRevolutUpsell(version, token, mode, locale) {
return utils_1.loadModule({
src: utils_1.getVersionedUrl(constants_1.URLS[mode].upsell, version),
id: 'revolut-upsell',
name: 'RevolutUpsell',
}).then(function (scriptElement) {
if (typeof RevolutUpsell === 'function') {
loadedUpsellInstance = RevolutUpsell;
delete window.RevolutUpsell;
return loadedUpsellInstance({ publicToken: token, locale: locale });
}
else {
document.head.removeChild(scriptElement);
throw new Error("'RevolutUpsell' failed to load: RevolutUpsell is not a function");
}
});
}
RevolutUpsellLoader.mode = constants_1.MODE.PRODUCTION;