From fe61074c48c55ebeadb782b21094a487b6dfce2d Mon Sep 17 00:00:00 2001 From: Gareth Jones Date: Fri, 28 Jun 2019 12:12:55 +1200 Subject: [PATCH] [tsscmp] introduce typings (#36370) --- types/tsscmp/index.d.ts | 9 +++++++++ types/tsscmp/tsconfig.json | 23 +++++++++++++++++++++++ types/tsscmp/tslint.json | 1 + types/tsscmp/tsscmp-tests.ts | 26 ++++++++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 types/tsscmp/index.d.ts create mode 100644 types/tsscmp/tsconfig.json create mode 100644 types/tsscmp/tslint.json create mode 100644 types/tsscmp/tsscmp-tests.ts diff --git a/types/tsscmp/index.d.ts b/types/tsscmp/index.d.ts new file mode 100644 index 0000000000..547280faa9 --- /dev/null +++ b/types/tsscmp/index.d.ts @@ -0,0 +1,9 @@ +// Type definitions for tsscmp 1.0 +// Project: https://github.com/suryagh/tsscmp#readme +// Definitions by: Gareth Jones +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = timeSafeCompare; + +declare function timeSafeCompare(a: number, b: number): boolean; +declare function timeSafeCompare(a: string, b: string): boolean; diff --git a/types/tsscmp/tsconfig.json b/types/tsscmp/tsconfig.json new file mode 100644 index 0000000000..d4a1282287 --- /dev/null +++ b/types/tsscmp/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "tsscmp-tests.ts" + ] +} diff --git a/types/tsscmp/tslint.json b/types/tsscmp/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/tsscmp/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/tsscmp/tsscmp-tests.ts b/types/tsscmp/tsscmp-tests.ts new file mode 100644 index 0000000000..9bab62ab85 --- /dev/null +++ b/types/tsscmp/tsscmp-tests.ts @@ -0,0 +1,26 @@ +import timeSafeCompare = require('tsscmp'); + +timeSafeCompare(); // $ExpectError +timeSafeCompare(''); // $ExpectError +timeSafeCompare(1); // $ExpectError + +timeSafeCompare('', ''); // $ExpectType boolean +timeSafeCompare(1, 1); // $ExpectType boolean + +timeSafeCompare('', 1); // $ExpectError +timeSafeCompare(1, ''); // $ExpectError + +timeSafeCompare({}, {}); // $ExpectError +timeSafeCompare([], []); // $ExpectError + +timeSafeCompare({}, ''); // $ExpectError +timeSafeCompare([], ''); // $ExpectError + +timeSafeCompare([], 1); // $ExpectError +timeSafeCompare({}, 1); // $ExpectError + +timeSafeCompare('', {}); // $ExpectError +timeSafeCompare('', []); // $ExpectError + +timeSafeCompare(1, []); // $ExpectError +timeSafeCompare(1, {}); // $ExpectError