From 46412bc2c947d478f428ac37b2e3589572a1eaf2 Mon Sep 17 00:00:00 2001 From: Tobenna Date: Mon, 11 Jun 2018 00:23:28 +0100 Subject: [PATCH 1/2] Types for bencode --- types/bencode/bencode-tests.ts | 6 ++++++ types/bencode/index.d.ts | 24 ++++++++++++++++++++++++ types/bencode/tsconfig.json | 23 +++++++++++++++++++++++ types/bencode/tslint.json | 1 + 4 files changed, 54 insertions(+) create mode 100644 types/bencode/bencode-tests.ts create mode 100644 types/bencode/index.d.ts create mode 100644 types/bencode/tsconfig.json create mode 100644 types/bencode/tslint.json diff --git a/types/bencode/bencode-tests.ts b/types/bencode/bencode-tests.ts new file mode 100644 index 0000000000..9099587819 --- /dev/null +++ b/types/bencode/bencode-tests.ts @@ -0,0 +1,6 @@ +import bencode from 'bencode'; + +bencode.byteLength('abcde'); // $ExpectType number +bencode.encodingLength('abcde'); // $ExpectType number +bencode.encode([1, 2, 3, 4] , new Buffer([]), 1); // $ExpectType Buffer +bencode.decode(new Buffer('abcde'), 1, 3); // $ExpectType any diff --git a/types/bencode/index.d.ts b/types/bencode/index.d.ts new file mode 100644 index 0000000000..0efab7e2dc --- /dev/null +++ b/types/bencode/index.d.ts @@ -0,0 +1,24 @@ +// Type definitions for bencode 2.0 +// Project: https://github.com/themasch/node-bencode#readme +// Definitions by: Tobenna +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace bencode { + function byteLength(value: any): number; + function encodingLength(value: any): number; + function encode( + data: any, + buffer?: Buffer, + offset?: number + ): Buffer; + function decode( + data: Buffer, + start?: number, + end?: number, + encoding?: string + ): any; +} + +export default bencode; diff --git a/types/bencode/tsconfig.json b/types/bencode/tsconfig.json new file mode 100644 index 0000000000..47220efa5a --- /dev/null +++ b/types/bencode/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", + "bencode-tests.ts" + ] +} diff --git a/types/bencode/tslint.json b/types/bencode/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/bencode/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 6a0f1eb370be44ba44f9982bc9cf78c3366c1074 Mon Sep 17 00:00:00 2001 From: Tobenna Ndu Date: Thu, 14 Jun 2018 09:03:38 +0100 Subject: [PATCH 2/2] no default export for bencode --- types/bencode/bencode-tests.ts | 10 +++++----- types/bencode/index.d.ts | 26 +++++++++----------------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/types/bencode/bencode-tests.ts b/types/bencode/bencode-tests.ts index 9099587819..f6ad3c8292 100644 --- a/types/bencode/bencode-tests.ts +++ b/types/bencode/bencode-tests.ts @@ -1,6 +1,6 @@ -import bencode from 'bencode'; +import * as bencode from "bencode"; -bencode.byteLength('abcde'); // $ExpectType number -bencode.encodingLength('abcde'); // $ExpectType number -bencode.encode([1, 2, 3, 4] , new Buffer([]), 1); // $ExpectType Buffer -bencode.decode(new Buffer('abcde'), 1, 3); // $ExpectType any +bencode.byteLength("abcde"); // $ExpectType number +bencode.encodingLength("abcde"); // $ExpectType number +bencode.encode([1, 2, 3, 4], new Buffer([]), 1); // $ExpectType Buffer +bencode.decode(new Buffer("abcde"), 1, 3); // $ExpectType any diff --git a/types/bencode/index.d.ts b/types/bencode/index.d.ts index 0efab7e2dc..444513192c 100644 --- a/types/bencode/index.d.ts +++ b/types/bencode/index.d.ts @@ -5,20 +5,12 @@ /// -declare namespace bencode { - function byteLength(value: any): number; - function encodingLength(value: any): number; - function encode( - data: any, - buffer?: Buffer, - offset?: number - ): Buffer; - function decode( - data: Buffer, - start?: number, - end?: number, - encoding?: string - ): any; -} - -export default bencode; +export function byteLength(value: any): number; +export function encodingLength(value: any): number; +export function encode(data: any, buffer?: Buffer, offset?: number): Buffer; +export function decode( + data: Buffer, + start?: number, + end?: number, + encoding?: string +): any;