diff --git a/types/caseless/caseless-tests.ts b/types/caseless/caseless-tests.ts index 2fb16afaad..57eaae605e 100644 --- a/types/caseless/caseless-tests.ts +++ b/types/caseless/caseless-tests.ts @@ -1,4 +1,4 @@ -import caseless, { Caseless, httpify } from "caseless"; +import caseless, { Caseless, httpify, Httpified } from "caseless"; new Caseless(); // $ExpectError @@ -38,3 +38,20 @@ httpify({}, 1); // $ExpectError httpify({}, "2"); // $ExpectError httpify({}, {}); // $ExpectType Caseless + +const request: Httpified = {}; // $ExpectError + +request.setHeader({}); // $ExpectType void +request.setHeader('foo', 'bar'); // $ExpectType string | false +request.setHeader('foo', 'bar', false); // $ExpectType string | false +request.setHeader('foo', new Date()); // $ExpectType string | false +request.setHeader(10, 'bar'); // $ExpectError + +request.getHeader('foo'); // $ExpectType any +request.getHeader(10); // $ExpectError + +request.hasHeader('foo'); // $ExpectType string | false +request.hasHeader(10); // $ExpectError + +request.removeHeader('foo'); // $ExpectType boolean +request.headers = {}; diff --git a/types/caseless/index.d.ts b/types/caseless/index.d.ts index db295a8f89..9b19f8a150 100644 --- a/types/caseless/index.d.ts +++ b/types/caseless/index.d.ts @@ -1,6 +1,7 @@ // Type definitions for caseless 0.12 // Project: https://github.com/mikeal/caseless // Definitions by: downace +// Matt R. Wilson // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 @@ -17,6 +18,15 @@ export interface Caseless { del(name: KeyType): boolean; } +export interface Httpified { + headers: RawDict; + setHeader(name: KeyType, value: ValueType, clobber?: boolean): KeyType | false; + setHeader(dict: RawDict): void; + hasHeader(name: KeyType): KeyType | false; + getHeader(name: KeyType): ValueType | undefined; + removeHeader(name: KeyType): boolean; +} + export function httpify(resp: object, headers: RawDict): Caseless; declare function caseless(dict?: RawDict): Caseless;