@altostra/core
Version:
Core library for shared types and logic
1 lines • 1.93 kB
JavaScript
;var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.jsonableAxiosError=exports.axiosResponse=exports.axiosSerializedError=exports.isAxiosError=void 0;const util_1=require("util"),from_1=require("@reactivex/ix-es2015-cjs/iterable/from"),map_1=require("@reactivex/ix-es2015-cjs/iterable/operators/map"),form_data_1=__importDefault(require("form-data")),Object_1=require("./Object");function isAxiosError(e){return(0,Object_1.isObject)(e)&&!!e.isAxiosError}function axiosSerializedError(e){return(0,Object_1.isObject)(e)&&e.isAxiosError&&(0,Object_1.isObject)(e.response)&&e.response.data}function axiosResponse(e,r,o=200,s="OK"){return{data:r,config:e,status:o,statusText:s,headers:{}}}exports.isAxiosError=isAxiosError,exports.axiosSerializedError=axiosSerializedError,exports.axiosResponse=axiosResponse;const reductedHeaders=new Set(["authorization"]);function jsonableAxiosError(e){var r,o,s,t,i,a,n;try{return{message:e.message,stack:e.stack,code:null===(r=e.response)||void 0===r?void 0:r.status,status:null===(o=e.response)||void 0===o?void 0:o.statusText,url:e.config.url,method:null===(s=e.request)||void 0===s?void 0:s.method,requestHeaders:(n=e.config.headers,(0,Object_1.fromEntries)((0,from_1.from)(Object.entries(n)).pipe((0,map_1.map)(e=>({entry:e,lowerHeader:e[0].toLowerCase()})),(0,map_1.map)(({lowerHeader:e,entry:[r,o]})=>[r,reductedHeaders.has(e)?"**********":o])))),requestBody:(a=e.config.data,a instanceof form_data_1.default?{FormData:{length:a.hasKnownLength()?a.getLengthSync():"<N/A>",data:a.getBuffer().toString("base64")}}:a),responseHeaders:null===(t=e.response)||void 0===t?void 0:t.headers,responseBody:null===(i=e.response)||void 0===i?void 0:i.data}}catch(r){return{originalErr:(0,util_1.inspect)(e,{depth:10}),serializationErr:r}}}exports.jsonableAxiosError=jsonableAxiosError;