From 5f2ef68fae908eb4e24335807683d0385e5b5598 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Fri, 6 Apr 2018 13:39:02 -0400 Subject: [PATCH] Add whatwg-mimetype definition. --- types/whatwg-mimetype/index.d.ts | 22 +++++++++++++++++ types/whatwg-mimetype/tsconfig.json | 23 ++++++++++++++++++ types/whatwg-mimetype/tslint.json | 1 + .../whatwg-mimetype/whatwg-mimetype-tests.ts | 24 +++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 types/whatwg-mimetype/index.d.ts create mode 100644 types/whatwg-mimetype/tsconfig.json create mode 100644 types/whatwg-mimetype/tslint.json create mode 100644 types/whatwg-mimetype/whatwg-mimetype-tests.ts diff --git a/types/whatwg-mimetype/index.d.ts b/types/whatwg-mimetype/index.d.ts new file mode 100644 index 0000000000..b30fe64f67 --- /dev/null +++ b/types/whatwg-mimetype/index.d.ts @@ -0,0 +1,22 @@ +// Type definitions for whatwg-mimetype 2.1 +// Project: https://github.com/jsdom/whatwg-mimetype#readme +// Definitions by: Pete Johanson +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = MIMEType; + +declare class MIMEType { + type: string; + subtype: string; + + readonly essence: string; + readonly parameters: Map; + + static parse(s: string): MIMEType | null; + + constructor(s: string); + + isHTML(): boolean; + isXML(): boolean; + isJavaScript(opts?: { allowParameters?: boolean }): boolean; +} diff --git a/types/whatwg-mimetype/tsconfig.json b/types/whatwg-mimetype/tsconfig.json new file mode 100644 index 0000000000..ca1583f063 --- /dev/null +++ b/types/whatwg-mimetype/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", + "whatwg-mimetype-tests.ts" + ] +} diff --git a/types/whatwg-mimetype/tslint.json b/types/whatwg-mimetype/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/whatwg-mimetype/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/whatwg-mimetype/whatwg-mimetype-tests.ts b/types/whatwg-mimetype/whatwg-mimetype-tests.ts new file mode 100644 index 0000000000..5b5ab0f8ab --- /dev/null +++ b/types/whatwg-mimetype/whatwg-mimetype-tests.ts @@ -0,0 +1,24 @@ +/// +import assert = require("assert"); +import MIMEType = require('whatwg-mimetype'); + +const mt = MIMEType.parse("text/plain"); + +assert(mt !== null); +if (mt) { + assert(mt.type === "text"); + assert(mt.subtype === "plain"); + assert(mt.essence === "text/plain"); + assert(mt.parameters.size === 0); + assert(!mt.isXML()); + assert(!mt.isHTML()); + assert(!mt.isJavaScript()); +} + +const mt2 = new MIMEType("application/javascript; charset=utf8"); + +assert(mt2.type === "text"); +assert(mt2.subtype === "plain"); +assert(mt2.essence === "text/plain"); +assert(mt2.parameters.get("charset") === "utf8"); +assert(mt2.isJavaScript({ allowParameters: true }));