UNPKG

mongodb-stitch

Version:

[![Join the chat at https://gitter.im/mongodb/stitch](https://badges.gitter.im/mongodb/stitch.svg)](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

71 lines 3.44 kB
var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; (function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "../net/ContentTypes", "../net/Headers", "../../StitchError", "../../StitchRequestErrorCode", "../../StitchRequestError", "../../StitchServiceErrorCode", "../../StitchServiceError"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ContentTypes_1 = __importDefault(require("../net/ContentTypes")); var Headers_1 = __importDefault(require("../net/Headers")); var StitchError_1 = __importDefault(require("../../StitchError")); var StitchRequestErrorCode_1 = require("../../StitchRequestErrorCode"); var StitchRequestError_1 = __importDefault(require("../../StitchRequestError")); var StitchServiceErrorCode_1 = require("../../StitchServiceErrorCode"); var StitchServiceError_1 = __importDefault(require("../../StitchServiceError")); var Fields; (function (Fields) { Fields["ERROR"] = "error"; Fields["ERROR_CODE"] = "error_code"; })(Fields || (Fields = {})); function wrapDecodingError(err) { if (err instanceof StitchError_1.default) { return err; } return new StitchRequestError_1.default(err, StitchRequestErrorCode_1.StitchRequestErrorCode.DECODING_ERROR); } exports.wrapDecodingError = wrapDecodingError; function handleRequestError(response) { if (response.body === undefined) { throw new StitchServiceError_1.default("received unexpected status code " + response.statusCode, StitchServiceErrorCode_1.StitchServiceErrorCode.Unknown); } var body; try { body = response.body; } catch (e) { throw new StitchServiceError_1.default("received unexpected status code " + response.statusCode, StitchServiceErrorCode_1.StitchServiceErrorCode.Unknown); } var errorMsg = handleRichError(response, body); throw new StitchServiceError_1.default(errorMsg, StitchServiceErrorCode_1.StitchServiceErrorCode.Unknown); } exports.handleRequestError = handleRequestError; function handleRichError(response, body) { if (response.headers[Headers_1.default.CONTENT_TYPE] === undefined || (response.headers[Headers_1.default.CONTENT_TYPE] !== undefined && response.headers[Headers_1.default.CONTENT_TYPE] !== ContentTypes_1.default.APPLICATION_JSON)) { return body; } var bsonObj = JSON.parse(body); if (!(bsonObj instanceof Object)) { return body; } var doc = bsonObj; if (doc[Fields.ERROR] === undefined) { return body; } var errorMsg = doc[Fields.ERROR]; if (doc[Fields.ERROR_CODE] === undefined) { return errorMsg; } var errorCode = doc[Fields.ERROR_CODE]; throw new StitchServiceError_1.default(errorMsg, StitchServiceErrorCode_1.stitchServiceErrorCodeFromApi(errorCode)); } }); //# sourceMappingURL=StitchErrorUtils.js.map