@revolut/checkout
Version:
RevolutCheckout.js as npm module
36 lines (35 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var constants_1 = require("./constants");
var utils_1 = require("./utils");
var versionLoader_1 = require("./versionLoader");
var loadedPaymentInstance = null;
function RevolutPaymentsLoader(token, mode, locale) {
if (mode === void 0) { mode = RevolutPaymentsLoader.mode; }
if (loadedPaymentInstance) {
var instance = loadedPaymentInstance({ publicToken: token, locale: locale });
return Promise.resolve(instance);
}
return versionLoader_1.RevolutPaymentsVersionLoader(mode).then(function (version) {
return loadRevolutPayments(version, token, mode, locale);
});
}
exports.RevolutPaymentsLoader = RevolutPaymentsLoader;
function loadRevolutPayments(version, token, mode, locale) {
return utils_1.loadModule({
src: utils_1.getVersionedUrl(constants_1.URLS[mode].embed, version),
id: 'revolut-payments',
name: 'RevolutPayments',
}).then(function (scriptElement) {
if (typeof RevolutCheckout === 'function') {
loadedPaymentInstance = RevolutCheckout.payments;
delete window.RevolutCheckout;
return loadedPaymentInstance({ publicToken: token, locale: locale });
}
else {
document.head.removeChild(scriptElement);
throw new Error("'RevolutPayments' failed to load: RevolutCheckout is not a function");
}
});
}
RevolutPaymentsLoader.mode = constants_1.MODE.PRODUCTION;