From b6ded2b97e5785e0120aaef2b1fa75691067bc0c Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Wed, 4 Mar 2020 16:12:34 -0800 Subject: [PATCH] Add just-map-values and just-safe-set types (#42739) * Add some just functions * Fix some tests * Fixes for code review * Fix tests --- types/just-map-values/index.d.ts | 8 +++++++ .../just-map-values/just-map-values-tests.ts | 11 +++++++++ types/just-map-values/tsconfig.json | 23 +++++++++++++++++++ types/just-map-values/tslint.json | 1 + types/just-safe-set/index.d.ts | 8 +++++++ types/just-safe-set/just-safe-set-tests.ts | 22 ++++++++++++++++++ types/just-safe-set/tsconfig.json | 23 +++++++++++++++++++ types/just-safe-set/tslint.json | 1 + 8 files changed, 97 insertions(+) create mode 100644 types/just-map-values/index.d.ts create mode 100644 types/just-map-values/just-map-values-tests.ts create mode 100644 types/just-map-values/tsconfig.json create mode 100644 types/just-map-values/tslint.json create mode 100644 types/just-safe-set/index.d.ts create mode 100644 types/just-safe-set/just-safe-set-tests.ts create mode 100644 types/just-safe-set/tsconfig.json create mode 100644 types/just-safe-set/tslint.json diff --git a/types/just-map-values/index.d.ts b/types/just-map-values/index.d.ts new file mode 100644 index 0000000000..777bed40ac --- /dev/null +++ b/types/just-map-values/index.d.ts @@ -0,0 +1,8 @@ +// Type definitions for just-map-values 1.1 +// Project: https://github.com/angus-c/just#readme +// Definitions by: Roman Lerchster +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare function map(item: T, callback: (value: any, key: string, object: T) => any): {}; + +export = map; diff --git a/types/just-map-values/just-map-values-tests.ts b/types/just-map-values/just-map-values-tests.ts new file mode 100644 index 0000000000..85e8ce8d13 --- /dev/null +++ b/types/just-map-values/just-map-values-tests.ts @@ -0,0 +1,11 @@ +import map = require("just-map-values"); + +const obj = {foo: {bar: []}}; + +map(obj, (value) => value); // $ExpectType {} +map(obj, (value, key, object) => ''); // $ExpectType {} + +// Incorrect argument +map(); // $ExpectError +map(obj); // $ExpectError +map(obj, ''); // $ExpectError diff --git a/types/just-map-values/tsconfig.json b/types/just-map-values/tsconfig.json new file mode 100644 index 0000000000..4087203d42 --- /dev/null +++ b/types/just-map-values/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", + "just-map-values-tests.ts" + ] +} diff --git a/types/just-map-values/tslint.json b/types/just-map-values/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/just-map-values/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/just-safe-set/index.d.ts b/types/just-safe-set/index.d.ts new file mode 100644 index 0000000000..8cdc111b0f --- /dev/null +++ b/types/just-safe-set/index.d.ts @@ -0,0 +1,8 @@ +// Type definitions for just-safe-set 2.1 +// Project: https://github.com/angus-c/just#readme +// Definitions by: Roman Lerchster +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare function set(item: any[] | {}, target: string | symbol | Array, value: any): boolean; + +export = set; diff --git a/types/just-safe-set/just-safe-set-tests.ts b/types/just-safe-set/just-safe-set-tests.ts new file mode 100644 index 0000000000..a62860e214 --- /dev/null +++ b/types/just-safe-set/just-safe-set-tests.ts @@ -0,0 +1,22 @@ +import set = require("just-safe-set"); + +const arr = ['one', 'two']; +const obj = {foo: {bar: arr}}; + +// Pass single `object`. +set(arr, '0', {}); // $ExpectType boolean +set(arr, ['0'], ''); // $ExpectType boolean +set(obj, 'foo.bar', 0); // $ExpectType boolean +set(obj, 'foo.bar.0', 1); // $ExpectType boolean + +// Incorrect argument +set(); // $ExpectError +set(obj); // $ExpectError +set([]); // $ExpectError +set({}); // $ExpectError +set(obj, 3); // $ExpectError +set(obj, [3]); // $ExpectError +set(false); // $ExpectError +set(null); // $ExpectError +set(undefined); // $ExpectError +set(obj, 'foo.bar'); // $ExpectError diff --git a/types/just-safe-set/tsconfig.json b/types/just-safe-set/tsconfig.json new file mode 100644 index 0000000000..ffb5f1db83 --- /dev/null +++ b/types/just-safe-set/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", + "just-safe-set-tests.ts" + ] +} diff --git a/types/just-safe-set/tslint.json b/types/just-safe-set/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/just-safe-set/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }