UNPKG

@revolut/checkout

Version:
61 lines (60 loc) 2.66 kB
"use strict"; 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); };