New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@http4t/core

Package Overview
Dependencies
Maintainers
4
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@http4t/core - npm Package Compare versions

Comparing version 0.0.143 to 0.0.144

8

headers.d.ts

@@ -7,2 +7,6 @@ import { Header, HeaderName, HeaderValue } from './contract';

/**
* Case insensitive on name
*/
export declare function getHeaderValues(headers: readonly Header[], name: HeaderName): HeaderValue[];
/**
* Replaces header(s) with same name in headers.

@@ -12,3 +16,5 @@ *

*/
export declare function setHeader(headers: undefined | readonly Header[], header: Header): readonly Header[];
export declare function setHeader(headers: readonly Header[], header: Header): readonly Header[];
export declare function updateHeaders(headers: readonly Header[], name: HeaderName, f: (value: HeaderValue) => HeaderValue): readonly Header[];
export declare function removeHeader(headers: readonly Header[], name: HeaderName): readonly Header[];
export declare type HeaderValueLike = string | number | Date;

@@ -15,0 +21,0 @@ /**

@@ -34,3 +34,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.headerValue = exports.headerName = exports.header = exports.setHeader = exports.getHeaderValue = void 0;
exports.headerValue = exports.headerName = exports.header = exports.removeHeader = exports.updateHeaders = exports.setHeader = exports.getHeaderValues = exports.getHeaderValue = void 0;
/**

@@ -41,3 +41,3 @@ * Case insensitive on name

var e_1, _a;
if (!headers)
if (typeof headers === 'undefined')
return undefined;

@@ -63,2 +63,19 @@ var lowerCaseName = name.toLowerCase();

/**
* Case insensitive on name
*/
function getHeaderValues(headers, name) {
if (typeof headers === 'undefined')
return [];
var lowerCaseName = name.toLowerCase();
return headers.filter(function (_a) {
var _b = __read(_a, 2), name = _b[0], value = _b[1];
return name.toLowerCase() === lowerCaseName;
})
.map(function (_a) {
var _b = __read(_a, 2), name = _b[0], value = _b[1];
return value;
});
}
exports.getHeaderValues = getHeaderValues;
/**
* Replaces header(s) with same name in headers.

@@ -69,4 +86,2 @@ *

function setHeader(headers, header) {
if (!headers)
return [header];
var lowerCaseName = headerName(header).toLowerCase();

@@ -79,2 +94,18 @@ return __spread(headers.filter(function (_a) {

exports.setHeader = setHeader;
function updateHeaders(headers, name, f) {
var lowerCaseName = name.toLowerCase();
return headers.map(function (_a) {
var _b = __read(_a, 2), name = _b[0], value = _b[1];
return (name.toLowerCase() === lowerCaseName) ? [name, f(value)] : [name, value];
});
}
exports.updateHeaders = updateHeaders;
function removeHeader(headers, name) {
var lowerCaseName = name.toLowerCase();
return headers.filter(function (_a) {
var _b = __read(_a, 1), name = _b[0];
return name.toLowerCase() !== lowerCaseName;
});
}
exports.removeHeader = removeHeader;
/**

@@ -84,3 +115,4 @@ * Dates will be formatted into the correct format as defined by [RFC 5322](https://tools.ietf.org/html/rfc5322)

function header(name, value) {
// TODO Date formatting
if (typeof value === 'object')
return [name, value.toUTCString()];
return [name, String(value)];

@@ -87,0 +119,0 @@ }

49

headers.ts

@@ -7,11 +7,21 @@ import {Header, HeaderName, HeaderValue} from './contract';

export function getHeaderValue(headers: readonly Header[], name: HeaderName): HeaderValue | undefined {
if (!headers)
if (typeof headers === 'undefined') return undefined;
const lowerCaseName = name.toLowerCase();
for (const [n, v] of headers) {
if (n.toLowerCase() === lowerCaseName)
return v;
}
return undefined;
}
const lowerCaseName = name.toLowerCase();
for (const [n, v] of headers) {
if (n.toLowerCase() === lowerCaseName)
return v;
}
return undefined;
/**
* Case insensitive on name
*/
export function getHeaderValues(headers: readonly Header[], name: HeaderName): HeaderValue[] {
if (typeof headers === 'undefined') return [];
const lowerCaseName = name.toLowerCase();
return headers.filter(([name, value]) => name.toLowerCase() === lowerCaseName)
.map(([name, value]) => value)
}

@@ -24,10 +34,17 @@

*/
export function setHeader(headers: undefined | readonly Header[], header: Header): readonly Header[] {
if (!headers)
return [header];
export function setHeader(headers: readonly Header[], header: Header): readonly Header[] {
const lowerCaseName = headerName(header).toLowerCase();
return [...headers.filter(([name]) => name.toLowerCase() !== lowerCaseName), header];
}
const lowerCaseName = headerName(header).toLowerCase();
return [...headers.filter(([name]) => name.toLowerCase() !== lowerCaseName), header];
export function updateHeaders(headers: readonly Header[], name: HeaderName, f: (value: HeaderValue)=> HeaderValue): readonly Header[] {
const lowerCaseName = name.toLowerCase();
return headers.map(([name, value]) => (name.toLowerCase() === lowerCaseName) ? [name, f(value)] : [name, value] );
}
export function removeHeader(headers: readonly Header[], name: HeaderName): readonly Header[] {
const lowerCaseName = name.toLowerCase();
return headers.filter(([name]) => name.toLowerCase() !== lowerCaseName);
}
export type HeaderValueLike = string | number | Date;

@@ -39,12 +56,12 @@

export function header(name: HeaderName, value: HeaderValueLike): Header {
// TODO Date formatting
return [name, String(value)];
if (typeof value === 'object') return [name, value.toUTCString()]
return [name, String(value)];
}
export function headerName(header: Header): HeaderName {
return header[0];
return header[0];
}
export function headerValue(header: Header): HeaderValue {
return header[1];
return header[1];
}
import { HeaderName, HeaderValue, HttpBody, HttpMessage, HttpRequest, HttpResponse } from "./contract";
export declare function setHeader<T extends HttpMessage>(message: T, name: HeaderName, value: HeaderValue): T;
export declare function appendHeader<T extends HttpMessage>(message: T, name: HeaderName, value: HeaderValue): T;
export declare function removeHeaders<T extends HttpMessage>(message: T, name: HeaderName): T;
export declare function updateHeaders<T extends HttpMessage>(message: T, name: HeaderName, f: (value: HeaderValue) => HeaderValue): T;
export declare function setBody<T extends HttpMessage>(message: T, body: HttpBody): T;

@@ -4,0 +7,0 @@ export declare function isResponse(message: HttpMessage): message is HttpResponse;

@@ -49,4 +49,24 @@ "use strict";

};
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.toJSON = exports.isRequest = exports.isResponse = exports.setBody = exports.setHeader = void 0;
exports.toJSON = exports.isRequest = exports.isResponse = exports.setBody = exports.updateHeaders = exports.removeHeaders = exports.appendHeader = exports.setHeader = void 0;
var h = require("./headers");

@@ -56,2 +76,6 @@ var headers_1 = require("./headers");

var bodies_1 = require("./bodies");
/*
* these operate on headers in a case-insensitive way
* while headers themselves can have any casing they like and we preserve it.
* */
function setHeader(message, name, value) {

@@ -61,2 +85,14 @@ return objects_1.modify(message, { headers: h.setHeader(message.headers, headers_1.header(name, value)) });

exports.setHeader = setHeader;
function appendHeader(message, name, value) {
return objects_1.modify(message, { headers: __spread(message.headers, [[name, value]]) });
}
exports.appendHeader = appendHeader;
function removeHeaders(message, name) {
return objects_1.modify(message, { headers: h.removeHeader(message.headers, name) });
}
exports.removeHeaders = removeHeaders;
function updateHeaders(message, name, f) {
return objects_1.modify(message, { headers: h.updateHeaders(message.headers, name, f) });
}
exports.updateHeaders = updateHeaders;
function setBody(message, body) {

@@ -63,0 +99,0 @@ return objects_1.modify(message, { body: body });

@@ -7,2 +7,6 @@ import {HeaderName, HeaderValue, HttpBody, HttpMessage, HttpRequest, HttpResponse} from "./contract";

/*
* these operate on headers in a case-insensitive way
* while headers themselves can have any casing they like and we preserve it.
* */
export function setHeader<T extends HttpMessage>(message: T, name: HeaderName, value: HeaderValue): T {

@@ -12,2 +16,14 @@ return modify(message, {headers: h.setHeader(message.headers, header(name, value))} as Partial<T>);

export function appendHeader<T extends HttpMessage>(message: T, name: HeaderName, value: HeaderValue): T {
return modify(message, {headers: [...message.headers, [name, value]]} as Partial<T>);
}
export function removeHeaders<T extends HttpMessage>(message: T, name: HeaderName): T {
return modify(message, {headers: h.removeHeader(message.headers, name)} as Partial<T>);
}
export function updateHeaders<T extends HttpMessage>(message: T, name: HeaderName, f: (value: HeaderValue)=> HeaderValue): T {
return modify(message, {headers: h.updateHeaders(message.headers, name, f)} as Partial<T>);
}
export function setBody<T extends HttpMessage>(message: T, body: HttpBody): T {

@@ -14,0 +30,0 @@ return modify(message, {body} as Partial<T>);

{
"name": "@http4t/core",
"version": "0.0.143",
"version": "0.0.144",
"license": "Apache-2.0"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc