From a4719a48eb15940edff351210b1b200edf4c8a57 Mon Sep 17 00:00:00 2001 From: Dimitri Benin Date: Mon, 14 Jan 2019 23:15:53 +0100 Subject: [PATCH] [srcset] Add types --- types/srcset/index.d.ts | 27 +++++++++++++++++++++++++++ types/srcset/srcset-tests.ts | 8 ++++++++ types/srcset/tsconfig.json | 23 +++++++++++++++++++++++ types/srcset/tslint.json | 1 + 4 files changed, 59 insertions(+) create mode 100644 types/srcset/index.d.ts create mode 100644 types/srcset/srcset-tests.ts create mode 100644 types/srcset/tsconfig.json create mode 100644 types/srcset/tslint.json diff --git a/types/srcset/index.d.ts b/types/srcset/index.d.ts new file mode 100644 index 0000000000..afbeecd918 --- /dev/null +++ b/types/srcset/index.d.ts @@ -0,0 +1,27 @@ +// Type definitions for srcset 1.0 +// Project: https://github.com/sindresorhus/srcset#readme +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * Parse the HTML `` + * [srcset](http://mobile.smashingmagazine.com/2013/08/21/webkit-implements-srcset-and-why-its-a-good-thing/) attribute. + * + * @param srcset An srcset string. + */ +export function parse(srcset: string): SrcSetDefinition[]; + +/** + * Stringify a list of `SrcSetDefinition`s. + * + * @param srcSetDefinitions An array of `SrcSetDefinition` object. + * @returns A srcset string. + */ +export function stringify(srcSetDefinitions: SrcSetDefinition[]): string; + +export interface SrcSetDefinition { + url: string; + width?: number; + height?: number; + density?: number; +} diff --git a/types/srcset/srcset-tests.ts b/types/srcset/srcset-tests.ts new file mode 100644 index 0000000000..b7091e1bd8 --- /dev/null +++ b/types/srcset/srcset-tests.ts @@ -0,0 +1,8 @@ +import srcset = require('srcset'); + +const parsed = srcset.parse('banner-HD.jpg 2x, banner-phone.jpg 100w'); +parsed; // $ExpectType SrcSetDefinition[] + +parsed.push({ url: 'banner-phone-HD.jpg', width: 100, density: 2 }); + +srcset.stringify(parsed); // $ExpectType string diff --git a/types/srcset/tsconfig.json b/types/srcset/tsconfig.json new file mode 100644 index 0000000000..42d580ed7e --- /dev/null +++ b/types/srcset/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", + "srcset-tests.ts" + ] +} diff --git a/types/srcset/tslint.json b/types/srcset/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/srcset/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }