@revolut/checkout
Version:
RevolutCheckout.js as npm module
67 lines (66 loc) • 2.97 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 embeddedCheckoutLoader_1 = require("./embeddedCheckoutLoader");
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, mode, 'RevolutCheckout'); })
.then(function (revolutCheckout) { return revolutCheckout(token); });
}
exports.RevolutCheckoutLoader = RevolutCheckoutLoader;
/** @internal */
function loadRevolutCheckout(version, mode, scriptName) {
return utils_1.loadScript({
src: utils_1.getVersionedUrl(constants_1.URLS[mode].embed, version),
id: 'revolut-checkout',
name: scriptName,
}).then(function () {
if (loaded) {
return loaded;
}
if (typeof RevolutCheckout === 'function') {
loaded = RevolutCheckout;
delete window.RevolutCheckout;
return loaded;
}
else {
throw new Error("'" + scriptName + "' failed to load: RevolutCheckout is not a function");
}
});
}
exports.loadRevolutCheckout = loadRevolutCheckout;
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);
};
RevolutCheckoutLoader.embeddedCheckout = embeddedCheckoutLoader_1.RevolutEmbeddedCheckoutLoader;