From 8f009e15f15d85b01f538c7370869f59384f274d Mon Sep 17 00:00:00 2001 From: Dimitri Benin Date: Thu, 31 Jan 2019 21:35:52 +0100 Subject: [PATCH] [expired] Add types --- types/expired/expired-tests.ts | 29 +++++++++++++++++++++++++++++ types/expired/index.d.ts | 29 +++++++++++++++++++++++++++++ types/expired/tsconfig.json | 23 +++++++++++++++++++++++ types/expired/tslint.json | 1 + 4 files changed, 82 insertions(+) create mode 100644 types/expired/expired-tests.ts create mode 100644 types/expired/index.d.ts create mode 100644 types/expired/tsconfig.json create mode 100644 types/expired/tslint.json diff --git a/types/expired/expired-tests.ts b/types/expired/expired-tests.ts new file mode 100644 index 0000000000..b03818ff13 --- /dev/null +++ b/types/expired/expired-tests.ts @@ -0,0 +1,29 @@ +import expired = require('expired'); + +const headers = ` +Age: 0 +Cache-Control: public, max-age=300 +Content-Encoding: gzip +Content-Type: application/json;charset=utf-8 +Date: Fri, 23 Dec 2016 05:50:31 GMT +Last-Modified: Fri, 23 Dec 2016 05:23:23 GMT`; + +expired(headers); // $ExpectType boolean +expired.in(headers); // $ExpectType number +expired.on(headers); // $ExpectType Date + +const parsedHeaders = { + age: '0', + 'cache-control': 'public, max-age=300', + 'content-encoding': 'gzip', + 'content-type': 'application/json;charset=utf-8', + date: 'Fri, 23 Dec 2016 05:50:31 GMT', + 'last-modified': 'Fri, 23 Dec 2016 05:23:23 GMT', +}; + +expired(parsedHeaders); // $ExpectType boolean + +const date = new Date(); + +expired(headers, date); // $ExpectType boolean +expired.in(headers, date); // $ExpectType number diff --git a/types/expired/index.d.ts b/types/expired/index.d.ts new file mode 100644 index 0000000000..2ff9fad895 --- /dev/null +++ b/types/expired/index.d.ts @@ -0,0 +1,29 @@ +// Type definitions for expired 1.3 +// Project: https://github.com/lukechilds/expired +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = expired; + +declare const expired: expired; + +interface expired { + /** + * @returns A boolean relating to whether the resource has expired or not. + * `true` means it's expired, `false` means it's fresh. + */ + (headers: expired.Headers, compareWith?: Date): boolean; + /** + * @returns The amount of milliseconds from the current date until the resource will expire. + * If the resource has already expired it will return a negative integer. + */ + in(headers: expired.Headers, compareWith?: Date): number; + /** + * @returns A JavaScript `Date` object for the date the resource will expire. + */ + on(headers: expired.Headers): Date; +} + +declare namespace expired { + type Headers = string | { [header: string]: string | string[] | undefined }; +} diff --git a/types/expired/tsconfig.json b/types/expired/tsconfig.json new file mode 100644 index 0000000000..4602fb95b1 --- /dev/null +++ b/types/expired/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "expired-tests.ts" + ] +} diff --git a/types/expired/tslint.json b/types/expired/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/expired/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }