@configurator/ravendb
Version:
RavenDB client for Node.js
80 lines • 2.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HeadersBuilder = exports.closeHttpResponse = exports.getHeaders = exports.getBooleanHeader = exports.etagHeaderToChangeVector = exports.getEtagHeader = exports.getRequiredEtagHeader = void 0;
const Constants_1 = require("../Constants");
const Exceptions_1 = require("../Exceptions");
function getRequiredEtagHeader(response) {
let etagHeader = response.headers.get(Constants_1.HEADERS.ETAG);
if (!etagHeader) {
(0, Exceptions_1.throwError)("InvalidOperationException", "Response did't had an ETag header");
}
if (Array.isArray(etagHeader)) {
etagHeader = etagHeader[0];
}
return etagHeaderToChangeVector(etagHeader);
}
exports.getRequiredEtagHeader = getRequiredEtagHeader;
function getEtagHeader(responseOrHeaders) {
let etagHeaders;
if ("headers" in responseOrHeaders) {
etagHeaders = responseOrHeaders.headers.get(Constants_1.HEADERS.ETAG);
}
else if (Constants_1.HEADERS.ETAG in responseOrHeaders) {
etagHeaders = responseOrHeaders[Constants_1.HEADERS.ETAG];
}
else {
etagHeaders = null;
}
const singleHeader = Array.isArray(etagHeaders) ? etagHeaders[0] : (etagHeaders || null);
return singleHeader ? etagHeaderToChangeVector(singleHeader) : null;
}
exports.getEtagHeader = getEtagHeader;
function etagHeaderToChangeVector(responseHeader) {
if (!responseHeader) {
(0, Exceptions_1.throwError)("InvalidOperationException", "Response did't had an ETag header");
}
if (responseHeader.startsWith(`"`)) {
return responseHeader.substring(1, responseHeader.length - 1);
}
return responseHeader;
}
exports.etagHeaderToChangeVector = etagHeaderToChangeVector;
function getBooleanHeader(response, header) {
const headers = response.headers;
let headerVal = headers.get(header);
if (headerVal && Array.isArray(headerVal)) {
headerVal = (headerVal[0] || null);
}
return headerVal
? headerVal.toLowerCase() === "true"
: null;
}
exports.getBooleanHeader = getBooleanHeader;
function getHeaders() {
return HeadersBuilder.create();
}
exports.getHeaders = getHeaders;
function closeHttpResponse(response) {
}
exports.closeHttpResponse = closeHttpResponse;
class HeadersBuilder {
constructor() {
this._result = {};
}
static create() {
return new HeadersBuilder();
}
typeAppJson() {
this._result["content-type"] = "application/json";
return this;
}
with(name, val) {
this._result[name] = val;
return this;
}
build() {
return this._result;
}
}
exports.HeadersBuilder = HeadersBuilder;
//# sourceMappingURL=HttpUtil.js.map