azurite
Version:
An open source Azure Storage API compatible server
48 lines • 2.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const MiddlewareError_1 = tslib_1.__importDefault(require("../generated/errors/MiddlewareError"));
const xml_1 = require("../generated/utils/xml");
/**
* Represents an Azure Storage Server Error.
*
* @export
* @class StorageError
* @extends {MiddlewareError}
*/
class StorageError extends MiddlewareError_1.default {
/**
* Creates an instance of StorageError.
*
* @param {number} statusCode HTTP response status code
* @param {string} storageErrorCode Azure Storage error code, will be in response body and header
* @param {string} storageErrorMessage Azure Storage error message
* @param {string} storageRequestID Azure Storage server request ID
* @param {{ [key: string]: string }} [storageAdditionalErrorMessages={}]
* Additional error messages will be included in XML body
* @memberof StorageError
*/
constructor(statusCode, storageErrorCode, storageErrorMessage, storageRequestID, storageAdditionalErrorMessages = {}) {
const bodyInJSON = {
Code: storageErrorCode,
Message: `${storageErrorMessage}\nRequestId:${storageRequestID}\nTime:${new Date().toISOString()}`
};
for (const key in storageAdditionalErrorMessages) {
if (storageAdditionalErrorMessages.hasOwnProperty(key)) {
const element = storageAdditionalErrorMessages[key];
bodyInJSON[key] = element;
}
}
const bodyInXML = (0, xml_1.jsonToXML)({ Error: bodyInJSON });
super(statusCode, storageErrorMessage, storageErrorMessage, {
"x-ms-error-code": storageErrorCode,
"x-ms-request-id": storageRequestID
}, bodyInXML, "application/xml");
this.name = "StorageError";
this.storageErrorCode = storageErrorCode;
this.storageErrorMessage = storageErrorMessage;
this.storageRequestID = storageRequestID;
}
}
exports.default = StorageError;
//# sourceMappingURL=StorageError.js.map
;