UNPKG

connect-transfer-react-native-sdk

Version:

Connect Transfer React Native SDK for Mastercard Open Banking Connect

50 lines (49 loc) 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.authenticateUser = void 0; var _toolkit = require("@reduxjs/toolkit"); var _apiClient = _interopRequireDefault(require("../apiClient")); var _routes = require("./routes"); var _constants = require("../../constants"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const authenticateUser = key => { return (0, _toolkit.createAsyncThunk)(key, async (_, { getState, rejectWithValue }) => { const state = getState(); const url = (0, _routes.generateRoute)(key, state); const headers = (0, _routes.requestHeaders)(key, state); const controller = new AbortController(); const timeoutId = setTimeout(() => { controller.abort(); // cancel the request after timeout }, _constants.TIMEOUT); try { const response = await (0, _apiClient.default)({ url, headers, method: _constants.METHODS.POST, signal: controller.signal // pass abort signal to axios }); clearTimeout(timeoutId); return response; } catch (error) { const { code, message } = error.toJSON?.() || {}; const apiTimeout = code === 'ERR_CANCELED' || message === 'canceled'; if (apiTimeout) { return rejectWithValue({ code: _constants.TransferActionCodes.API_TIMEOUT }); } clearTimeout(timeoutId); return rejectWithValue(error); } }).call(); }; exports.authenticateUser = authenticateUser; //# sourceMappingURL=authenticate.js.map