From 84d5133f5d09312f93922b5e5042fec199767189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomek=20=C5=81aziuk?= Date: Tue, 7 Feb 2017 00:23:17 +0100 Subject: [PATCH 1/2] range-parser --- range-parser/index.d.ts | 26 ++++++++++++++++++++++++++ range-parser/range-parser-tests.ts | 9 +++++++++ range-parser/tsconfig.json | 20 ++++++++++++++++++++ range-parser/tslint.json | 1 + 4 files changed, 56 insertions(+) create mode 100644 range-parser/index.d.ts create mode 100644 range-parser/range-parser-tests.ts create mode 100644 range-parser/tsconfig.json create mode 100644 range-parser/tslint.json diff --git a/range-parser/index.d.ts b/range-parser/index.d.ts new file mode 100644 index 0000000000..ceb5e17ff6 --- /dev/null +++ b/range-parser/index.d.ts @@ -0,0 +1,26 @@ +// Type definitions for range-parser 1.2 +// Project: https://github.com/jshttp/range-parser +// Definitions by: Tomek Łaziuk +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare const RangeParser: RangeParser.RangeParser; + +declare namespace RangeParser { + export interface Ranges extends Array { + type: string; + } + export interface Range { + start: number; + end: number; + } + export interface Options { + combine?: boolean; + } + export const enum Result { + invaild = -2, + unsatisifiable = -1, + } + export type RangeParser = (size: number, str: string, options?: Options) => Result | Ranges; +} + +export = RangeParser; diff --git a/range-parser/range-parser-tests.ts b/range-parser/range-parser-tests.ts new file mode 100644 index 0000000000..d3d70563bb --- /dev/null +++ b/range-parser/range-parser-tests.ts @@ -0,0 +1,9 @@ +import * as RangeParser from 'range-parser'; + +console.assert(RangeParser(200, `malformed`) === RangeParser.Result.invaild); +console.assert(RangeParser(200, `bytes=500-20`) === RangeParser.Result.unsatisifiable); + +const range = RangeParser(1000, `bytes=0-499`); + +console.assert(range.type === `bytes`); +console.assert(range.length === 1); diff --git a/range-parser/tsconfig.json b/range-parser/tsconfig.json new file mode 100644 index 0000000000..7c7f4ffd03 --- /dev/null +++ b/range-parser/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "range-parser-tests.ts" + ] +} diff --git a/range-parser/tslint.json b/range-parser/tslint.json new file mode 100644 index 0000000000..377cc837d4 --- /dev/null +++ b/range-parser/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" } From 0deee581f54a47beeb1ebc35f0755145e7a358a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomek=20=C5=81aziuk?= Date: Tue, 7 Feb 2017 09:52:44 +0100 Subject: [PATCH 2/2] cannot redeclare block-scoped variable fix --- range-parser/index.d.ts | 3 +-- range-parser/range-parser-tests.ts | 6 ++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/range-parser/index.d.ts b/range-parser/index.d.ts index ceb5e17ff6..e90f448e11 100644 --- a/range-parser/index.d.ts +++ b/range-parser/index.d.ts @@ -3,7 +3,7 @@ // Definitions by: Tomek Łaziuk // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -declare const RangeParser: RangeParser.RangeParser; +declare function RangeParser(size: number, str: string, options?: RangeParser.Options): RangeParser.Result | RangeParser.Ranges; declare namespace RangeParser { export interface Ranges extends Array { @@ -20,7 +20,6 @@ declare namespace RangeParser { invaild = -2, unsatisifiable = -1, } - export type RangeParser = (size: number, str: string, options?: Options) => Result | Ranges; } export = RangeParser; diff --git a/range-parser/range-parser-tests.ts b/range-parser/range-parser-tests.ts index d3d70563bb..77dab456c1 100644 --- a/range-parser/range-parser-tests.ts +++ b/range-parser/range-parser-tests.ts @@ -5,5 +5,7 @@ console.assert(RangeParser(200, `bytes=500-20`) === RangeParser.Result.unsatisif const range = RangeParser(1000, `bytes=0-499`); -console.assert(range.type === `bytes`); -console.assert(range.length === 1); +if (typeof range !== 'number') { + console.assert(range.type === `bytes`); + console.assert(range.length === 1); +}