@bigbinary/neeto-commons-rn 1.4.3 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/axios/index.js +1 -1
- package/package.json +1 -1
package/config/axios/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.rootUrlCreator=exports.configureAxiosHeaders=exports.configureAxios=exports.cleanupAxiosInterceptors=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNative=require("react-native");var _neetouiRn=require("@bigbinary/neetoui-rn");var _axios=_interopRequireDefault(require("axios"));var _reactNativeConfig=_interopRequireDefault(require("react-native-config"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _constants=require("../../constants");var _keychain=require("../../helpers/keychain");var _localization=require("../../localization");var _navigationService=require("../../navigation/navigationService");var _screenNames=require("../../navigation/screenNames");var _auth=require("../../slices/auth");var _asyncStore=require("../../helpers/asyncStore");var _store=require("../../store");var _caseConversion=require("./caseConversion");var _paramsSerializer=_interopRequireDefault(require("./paramsSerializer"));_axios.default.defaults.headers.common={accept:"application/json"};var rootUrlCreator=exports.rootUrlCreator=function rootUrlCreator(_ref){var subdomain=_ref.subdomain;return"http"+(_reactNativeConfig.default.IS_DEV?"":"s")+"://"+subdomain+_reactNativeConfig.default.URL_SUFFIX;};var getUnauthorizedErrorMessage=function getUnauthorizedErrorMessage(error){var _error$config,_error$config$url,_error$response$data,_error$response$data2,_error$response$data3;if((_error$config=error.config)!=null&&(_error$config$url=_error$config.url)!=null&&_error$config$url.includes("/api/mobile/v1/generate_otp")){return _localization.strings.en.errors.axios.spamLimit;}return((_error$response$data=error.response.data)==null?void 0:_error$response$data.error)||((_error$response$data2=error.response.data)==null?void 0:(_error$response$data3=_error$response$data2.errors)==null?void 0:_error$response$data3.join(", "))||_localization.strings.en.errors.axios.unauthorized;};var handleUnauthorizedAccess=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(errorMessage){_neetouiRn.Toast.show({type:"error",text2:_store.Store.getState().auth.name?_localization.strings.en.errors.axios.sessionExpired:errorMessage});(0,_asyncStore.removeItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);yield(0,_keychain.removeSecureValue)("userAuth");_store.Store.dispatch((0,_auth.logoutUserAction)());(0,_navigationService.reset)({name:_screenNames.SCREEN_NAMES.Login});});return function handleUnauthorizedAccess(_x){return _ref2.apply(this,arguments);};}();var getErrorMessage=function getErrorMessage(data,error){if(typeof(data==null?void 0:data.error)==="object"){var _Object$values;return((_Object$values=Object.values(data.error))==null?void 0:_Object$values[0])||_localization.strings.en.errors.axios.generic;}return(data==null?void 0:data.error)||error.message||_localization.strings.en.errors.axios.generic;};var getUserAuthData=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){var authValue=yield(0,_keychain.getSecureValue)("userAuth");return authValue?JSON.parse(authValue):null;});return function getUserAuthData(){return _ref3.apply(this,arguments);};}();var handleSuccessResponse=function handleSuccessResponse(response){if(response.data){var _response$config;response.data=(0,_caseConversion.convertResponseKeys)(response.data,(_response$config=response.config)==null?void 0:_response$config.caseConversionOptions);}return response;};var handleErrorRequest=function handleErrorRequest(error){return console.error(error);};var handleErrorResponse=function(){var _ref4=(0,_asyncToGenerator2.default)(function*(error){var response=error.response;var status=response==null?void 0:response.status;var data=response==null?void 0:response.data;if(status===401){var errorMessage=getUnauthorizedErrorMessage(error);yield handleUnauthorizedAccess(errorMessage);}else if(data!=null&&data.errors){data.errors.forEach(function(errorMessage){_neetouiRn.Toast.show({type:"error",text2:errorMessage});});}else{var _errorMessage=getErrorMessage(data,error);_neetouiRn.Toast.show({type:"error",text2:_errorMessage});}return Promise.reject(error);});return function handleErrorResponse(_x2){return _ref4.apply(this,arguments);};}();var responseInterceptorId=null;var requestInterceptorId=null;var registerResponseIntercept=function registerResponseIntercept(){if(responseInterceptorId!==null){_axios.default.interceptors.response.eject(responseInterceptorId);}responseInterceptorId=_axios.default.interceptors.response.use(handleSuccessResponse,handleErrorResponse);};var registerRequestIntercept=function registerRequestIntercept(){if(requestInterceptorId!==null){_axios.default.interceptors.request.eject(requestInterceptorId);}requestInterceptorId=_axios.default.interceptors.request.use(function(){var
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.rootUrlCreator=exports.configureAxiosHeaders=exports.configureAxios=exports.cleanupAxiosInterceptors=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNative=require("react-native");var _neetouiRn=require("@bigbinary/neetoui-rn");var _reactNative2=_interopRequireDefault(require("@bugsnag/react-native"));var _axios=_interopRequireDefault(require("axios"));var _reactNativeConfig=_interopRequireDefault(require("react-native-config"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _constants=require("../../constants");var _keychain=require("../../helpers/keychain");var _localization=require("../../localization");var _navigationService=require("../../navigation/navigationService");var _screenNames=require("../../navigation/screenNames");var _auth=require("../../slices/auth");var _asyncStore=require("../../helpers/asyncStore");var _store=require("../../store");var _caseConversion=require("./caseConversion");var _paramsSerializer=_interopRequireDefault(require("./paramsSerializer"));var filterSensitiveData=function filterSensitiveData(data){if(!data)return null;var sensitiveKeys=["x-auth-token","x-auth-email","password","password_confirmation","current_password","token","access_token","refresh_token"];var filteredData=Object.assign({},data);var _filterNestedData=function filterNestedData(obj){Object.keys(obj).forEach(function(key){if(sensitiveKeys.includes(key)){delete obj[key];}else if(obj[key]&&typeof obj[key]==="object"){_filterNestedData(obj[key]);}});};_filterNestedData(filteredData);return filteredData;};_axios.default.defaults.headers.common={accept:"application/json"};var rootUrlCreator=exports.rootUrlCreator=function rootUrlCreator(_ref){var subdomain=_ref.subdomain;return"http"+(_reactNativeConfig.default.IS_DEV?"":"s")+"://"+subdomain+_reactNativeConfig.default.URL_SUFFIX;};var getUnauthorizedErrorMessage=function getUnauthorizedErrorMessage(error){var _error$config,_error$config$url,_error$response$data,_error$response$data2,_error$response$data3;if((_error$config=error.config)!=null&&(_error$config$url=_error$config.url)!=null&&_error$config$url.includes("/api/mobile/v1/generate_otp")){return _localization.strings.en.errors.axios.spamLimit;}return((_error$response$data=error.response.data)==null?void 0:_error$response$data.error)||((_error$response$data2=error.response.data)==null?void 0:(_error$response$data3=_error$response$data2.errors)==null?void 0:_error$response$data3.join(", "))||_localization.strings.en.errors.axios.unauthorized;};var handleUnauthorizedAccess=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(errorMessage){_neetouiRn.Toast.show({type:"error",text2:_store.Store.getState().auth.name?_localization.strings.en.errors.axios.sessionExpired:errorMessage});(0,_asyncStore.removeItem)(_constants.STORAGE_KEYS.DEVICE_TOKEN);yield(0,_keychain.removeSecureValue)("userAuth");_store.Store.dispatch((0,_auth.logoutUserAction)());(0,_navigationService.reset)({name:_screenNames.SCREEN_NAMES.Login});});return function handleUnauthorizedAccess(_x){return _ref2.apply(this,arguments);};}();var getErrorMessage=function getErrorMessage(data,error){if(typeof(data==null?void 0:data.error)==="object"){var _Object$values;return((_Object$values=Object.values(data.error))==null?void 0:_Object$values[0])||_localization.strings.en.errors.axios.generic;}return(data==null?void 0:data.error)||error.message||_localization.strings.en.errors.axios.generic;};var getUserAuthData=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){var authValue=yield(0,_keychain.getSecureValue)("userAuth");return authValue?JSON.parse(authValue):null;});return function getUserAuthData(){return _ref3.apply(this,arguments);};}();var handleSuccessResponse=function handleSuccessResponse(response){if(response.data){var _response$config;response.data=(0,_caseConversion.convertResponseKeys)(response.data,(_response$config=response.config)==null?void 0:_response$config.caseConversionOptions);}return response;};var handleErrorRequest=function handleErrorRequest(error){return console.error(error);};var handleErrorResponse=function(){var _ref4=(0,_asyncToGenerator2.default)(function*(error){var response=error.response;var status=response==null?void 0:response.status;var data=response==null?void 0:response.data;if(status===401){var errorMessage=getUnauthorizedErrorMessage(error);yield handleUnauthorizedAccess(errorMessage);}else if(data!=null&&data.errors){data.errors.forEach(function(errorMessage){_neetouiRn.Toast.show({type:"error",text2:errorMessage});});}else{var _errorMessage=getErrorMessage(data,error);_neetouiRn.Toast.show({type:"error",text2:_errorMessage});}return Promise.reject(error);});return function handleErrorResponse(_x2){return _ref4.apply(this,arguments);};}();var responseInterceptorId=null;var requestInterceptorId=null;var registerResponseIntercept=function registerResponseIntercept(){if(responseInterceptorId!==null){_axios.default.interceptors.response.eject(responseInterceptorId);}responseInterceptorId=_axios.default.interceptors.response.use(function(response){return handleSuccessResponse(response);},function(){var _ref5=(0,_asyncToGenerator2.default)(function*(error){var config=error.config,response=error.response,message=error.message,name=error.name,code=error.code;try{_reactNative2.default.notify(new Error("Axios Error: "+message),function(report){var _config$method,_config$method2;report.addMetadata("axios_error_details",{message:message,name:name,code:code,requestUrl:config==null?void 0:config.url,requestMethod:config==null?void 0:(_config$method=config.method)==null?void 0:_config$method.toUpperCase(),baseURL:config==null?void 0:config.baseURL,requestHeaders:filterSensitiveData(config==null?void 0:config.headers),requestParams:filterSensitiveData(config==null?void 0:config.params),responseStatus:response==null?void 0:response.status,responseStatusText:response==null?void 0:response.statusText,responseData:filterSensitiveData(response==null?void 0:response.data)});report.context="Axios Request Failed: "+(config==null?void 0:(_config$method2=config.method)==null?void 0:_config$method2.toUpperCase())+" "+(config==null?void 0:config.url);report.groupingHash="axios-"+(config==null?void 0:config.method)+"-"+(config==null?void 0:config.url);});}catch(bugsnagError){console.error("Error reporting Axios error to Bugsnag:",bugsnagError);}return handleErrorResponse(error);});return function(_x3){return _ref5.apply(this,arguments);};}());};var registerRequestIntercept=function registerRequestIntercept(){if(requestInterceptorId!==null){_axios.default.interceptors.request.eject(requestInterceptorId);}requestInterceptorId=_axios.default.interceptors.request.use(function(){var _ref6=(0,_asyncToGenerator2.default)(function*(request){var _store$auth;var config=yield configureAxiosHeaders(request);var store=_store.Store.getState();var subdomain=(store==null?void 0:(_store$auth=store.auth)==null?void 0:_store$auth.subdomain)||"app";config.baseURL=rootUrlCreator({subdomain:subdomain});if(config.data){config.data=(0,_caseConversion.convertRequestKeys)(config.data,config.caseConversionOptions);}if(config.params){config.params=(0,_caseConversion.convertRequestKeys)(config.params,config.caseConversionOptions);}return config;});return function(_x4){return _ref6.apply(this,arguments);};}(),handleErrorRequest);};var cleanupAxiosInterceptors=exports.cleanupAxiosInterceptors=function cleanupAxiosInterceptors(){if(responseInterceptorId!==null){_axios.default.interceptors.response.eject(responseInterceptorId);responseInterceptorId=null;}if(requestInterceptorId!==null){_axios.default.interceptors.request.eject(requestInterceptorId);requestInterceptorId=null;}};var configureAxiosHeaders=exports.configureAxiosHeaders=function(){var _ref7=(0,_asyncToGenerator2.default)(function*(request){var userAuthData=yield getUserAuthData();if(userAuthData){var authToken=userAuthData.authToken,email=userAuthData.email;var headers={"x-auth-token":authToken,"x-auth-email":email,"x-client-version":_reactNativeDeviceInfo.default.getVersion(),"x-client-name":_reactNative.Platform.OS+" "+_reactNativeConfig.default.APP_DISPLAY_NAME};Object.assign(request.headers,headers);}return request;});return function configureAxiosHeaders(_x5){return _ref7.apply(this,arguments);};}();var configureAxios=exports.configureAxios=function configureAxios(){registerResponseIntercept();registerRequestIntercept();(0,_paramsSerializer.default)();};
|