UNPKG

@revolut/checkout

Version:
35 lines (34 loc) 1.39 kB
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;