@revolut/checkout
Version:
RevolutCheckout.js as npm module
61 lines (60 loc) • 2.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var constants_1 = require("./constants");
var paymentsLoader_1 = require("./paymentsLoader");
var utils_1 = require("./utils");
var upsellLoader_1 = require("./upsellLoader");
var versionLoader_1 = require("./versionLoader");
var loaded = null;
/**
* Load [`RevolutCheckout.js`](https://developer.revolut.com/docs/revolut-checkout-js/#revolutcheckout)
* and create [`Instance`](https://developer.revolut.com/docs/revolut-checkout-js/#instance) for the order `token`.
*
* @param token `public_id` from [create payment order](https://developer.revolut.com/api-reference/merchant/#operation/createOrder) API request
* @param mode [API](https://developer.revolut.com/docs/revolut-checkout-js/#revolutcheckout-parameters) environment, defaults to `'prod'`
*
* @see [`RevolutCheckout.js` reference](https://developer.revolut.com/docs/revolut-checkout-js)
*
* @example
* ```js
* RevolutCheckout('TOKEN_XXX', 'prod').then(function(instance) {
* // Work with instance
* });
* ```
*/
function RevolutCheckoutLoader(token, mode) {
if (mode === void 0) { mode = RevolutCheckoutLoader.mode; }
if (loaded) {
return Promise.resolve(loaded(token));
}
return versionLoader_1.RevolutPaymentsVersionLoader(mode).then(function (version) {
return loadRevolutCheckout(version, token, mode);
});
}
exports.RevolutCheckoutLoader = RevolutCheckoutLoader;
function loadRevolutCheckout(version, token, mode) {
return utils_1.loadModule({
src: utils_1.getVersionedUrl(constants_1.URLS[mode].embed, version),
id: 'revolut-checkout',
name: 'RevolutCheckout',
}).then(function (scriptElement) {
if (typeof RevolutCheckout === 'function') {
loaded = RevolutCheckout;
delete window.RevolutCheckout;
return loaded(token);
}
else {
document.head.removeChild(scriptElement);
throw new Error("'RevolutCheckout' failed to load: RevolutCheckout is not a function");
}
});
}
RevolutCheckoutLoader.mode = constants_1.MODE.PRODUCTION;
RevolutCheckoutLoader.payments = function (_a) {
var locale = _a.locale, publicToken = _a.publicToken, _b = _a.mode, mode = _b === void 0 ? RevolutCheckoutLoader.mode : _b;
return paymentsLoader_1.RevolutPaymentsLoader(publicToken, mode, locale);
};
RevolutCheckoutLoader.upsell = function (_a) {
var locale = _a.locale, publicToken = _a.publicToken, _b = _a.mode, mode = _b === void 0 ? RevolutCheckoutLoader.mode : _b;
return upsellLoader_1.RevolutUpsellLoader(publicToken, mode, locale);
};