UNPKG

pluto-http-client

Version:

HTTP client for NodeJS. Inspired in the Java JAX-RS spec so you can expect excellence, versatility and extensibility.

38 lines (37 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EntityTag = void 0; const header_1 = require("./header"); const http_headers_1 = require("./http-headers"); const http_header_reader_1 = require("../utils/http-header-reader"); class EntityTag extends header_1.Header { constructor(value, isWeak = false) { super(http_headers_1.HttpHeaders.ETAG, value); this._isWeak = isWeak; } get value() { return `${this.isWeak ? "W/" : ""}"${super.value}"`; } rawValue() { return super.value; } get isWeak() { return this._isWeak; } static fromString(header) { const reader = new http_header_reader_1.HttpHeaderReader(header); const e = reader.next(false); if (e == http_header_reader_1.Event.QuotedString) { return new EntityTag(reader.value || ""); } if (e == http_header_reader_1.Event.Token) { const ev = reader.value; if (ev != null && ev.length > 0 && ev.charAt(0) == 'W') { reader.nextSeparator('/'); return new EntityTag(reader.nextQuotedString() || "", true); } } throw new Error(`Error parsing entity tag ${header}`); } } exports.EntityTag = EntityTag;