From 64b25717b908d46c977de727ff74d75b056532ce Mon Sep 17 00:00:00 2001 From: Jason Dent Date: Sat, 27 Aug 2022 17:09:37 +0200 Subject: [PATCH] chore: Upgrade to TypeScript 4.8.2 (#2178) --- Spell Checker.code-workspace | 2 +- package.json | 2 +- packages/_integrationTests/package.json | 2 +- packages/_server/package.json | 2 +- packages/_serverPatternMatcher/package.json | 2 +- packages/_settingsViewer/package.json | 2 +- packages/client/package.json | 2 +- packages/client/src/util/pipe.test.ts | 3 ++- packages/client/src/util/pipe.ts | 16 ++++++++++------ packages/jest-mock-vscode-examples/package.json | 2 +- yarn.lock | 8 ++++---- 11 files changed, 24 insertions(+), 19 deletions(-) diff --git a/Spell Checker.code-workspace b/Spell Checker.code-workspace index 2e74cd9c1..c0bdb0e30 100644 --- a/Spell Checker.code-workspace +++ b/Spell Checker.code-workspace @@ -40,7 +40,7 @@ "settings": { "cSpell.import": ["${workspaceFolder:Spell Checker Root}/cSpell.json"], "cSpell.customWorkspaceDictionaries": ["cspell-words"], - "typescript.tsdk": "node_modules/typescript/lib", + "typescript.tsdk": "Spell Checker Root/node_modules/typescript/lib", "svg.preview.background": "black", "editor.formatOnSave": true, "files.eol": "\n" diff --git a/package.json b/package.json index 2e3e12225..5d4f09ee1 100644 --- a/package.json +++ b/package.json @@ -2274,7 +2274,7 @@ "eslint": "^7.32.0", "prettier": "^2.7.1", "rimraf": "^3.0.2", - "typescript": "^4.7.4", + "typescript": "^4.8.2", "vsce": "^2.10.2" }, "dependencies": { diff --git a/packages/_integrationTests/package.json b/packages/_integrationTests/package.json index d9cad2d1d..5680dc8f0 100644 --- a/packages/_integrationTests/package.json +++ b/packages/_integrationTests/package.json @@ -38,7 +38,7 @@ "kefir": "^3.8.8", "mocha": "^10.0.0", "rimraf": "^3.0.2", - "typescript": "^4.7.4" + "typescript": "^4.8.2" }, "peerDependenciesMeta": {}, "dependencies": {} diff --git a/packages/_server/package.json b/packages/_server/package.json index 592414cc9..53bb666a2 100644 --- a/packages/_server/package.json +++ b/packages/_server/package.json @@ -45,7 +45,7 @@ "ts-jest": "^28.0.8", "ts-json-schema-generator": "^1.0.1-next.1", "ts-loader": "^9.3.1", - "typescript": "^4.7.4", + "typescript": "^4.8.2", "vscode-languageserver": "^8.0.2", "vscode-languageserver-textdocument": "^1.0.5", "vscode-uri": "^3.0.3", diff --git a/packages/_serverPatternMatcher/package.json b/packages/_serverPatternMatcher/package.json index 9c1769ae0..cc4827bd3 100644 --- a/packages/_serverPatternMatcher/package.json +++ b/packages/_serverPatternMatcher/package.json @@ -31,7 +31,7 @@ "jest": "^28.1.3", "ts-jest": "^28.0.8", "ts-loader": "^9.3.1", - "typescript": "^4.7.4", + "typescript": "^4.8.2", "vscode-languageserver": "^8.0.2", "vscode-languageserver-textdocument": "^1.0.5", "vscode-uri": "^3.0.3", diff --git a/packages/_settingsViewer/package.json b/packages/_settingsViewer/package.json index 33c7ed815..421ac272f 100644 --- a/packages/_settingsViewer/package.json +++ b/packages/_settingsViewer/package.json @@ -49,7 +49,7 @@ "terser": "^5.15.0", "ts-jest": "^28.0.8", "ts-loader": "^9.3.1", - "typescript": "^4.7.4", + "typescript": "^4.8.2", "url-loader": "^4.1.1", "vscode-uri": "^3.0.3", "webpack": "^5.74.0", diff --git a/packages/client/package.json b/packages/client/package.json index 708043a12..8c9fe784e 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -53,7 +53,7 @@ "source-map-support": "^0.5.21", "ts-jest": "^28.0.8", "ts-loader": "^9.3.1", - "typescript": "^4.7.4", + "typescript": "^4.8.2", "vscode-languageclient": "^8.0.2", "vscode-uri": "^3.0.3", "webpack": "^5.74.0", diff --git a/packages/client/src/util/pipe.test.ts b/packages/client/src/util/pipe.test.ts index b8ef764ff..af33bd2c8 100644 --- a/packages/client/src/util/pipe.test.ts +++ b/packages/client/src/util/pipe.test.ts @@ -43,7 +43,8 @@ describe('Validate Pipe', () => { expect(pipe(student2, extract('address'), extract('postcode'), defaultTo('90210'))).toBe('90211'); }); test('extract', () => { - expect(pipe(student2, extract('address', 'postcode'))).toBe('90211'); + const postcode = pipe(student2, extract('address', 'postcode')); + expect(postcode).toBe('90211'); expect(pipe(business2, extract('owner', 'address', 'postcode'))).toBe('90211'); expect(pipe(business2, extract('owner', 'friends', 0, 'name'))).toBe(student1.name); expect(pipe(business2, extract('owner', 'friends', 1, 'name'))).toBeUndefined(); diff --git a/packages/client/src/util/pipe.ts b/packages/client/src/util/pipe.ts index 8135ce2fa..64f356ad2 100644 --- a/packages/client/src/util/pipe.ts +++ b/packages/client/src/util/pipe.ts @@ -2,27 +2,31 @@ export function defaultTo(value: T): (v: T | undefined) => T { return (v: T | undefined) => (v === undefined ? value : v); } -export type Nested = Exclude; +// eslint-disable-next-line @typescript-eslint/ban-types +type Obj = {}; + +// eslint-disable-next-line @typescript-eslint/ban-types +export type Nested = T extends {} ? Exclude : never; export type NestedKey = keyof Nested; -export function extract(key: K): (t: T | undefined) => T[K] | undefined; -export function extract>( +export function extract(key: K): (t: T | undefined) => T[K] | undefined; +export function extract>( key: K, k2: K2 ): (t: T | undefined) => Nested[K2] | undefined; -export function extract, K3 extends NestedKey, K2>>( +export function extract, K3 extends NestedKey, K2>>( key: K, k2: K2, k3: K3 ): (t: T | undefined) => Nested, K2>[K3] | undefined; export function extract< - T, + T extends Obj, K extends keyof T, K2 extends NestedKey, K3 extends NestedKey, K2>, K4 extends NestedKey, K2>, K3> >(key: K, k2: K2, k3: K3, k4: K4): (t: T | undefined) => Nested, K2>, K3>[K4] | undefined; -export function extract(key: K): (t: T | undefined) => T[K] | undefined { +export function extract(key: K): (t: T | undefined) => T[K] | undefined { if (arguments.length > 1) { // eslint-disable-next-line prefer-rest-params const args = [...arguments]; diff --git a/packages/jest-mock-vscode-examples/package.json b/packages/jest-mock-vscode-examples/package.json index 369ab4c70..48f32b533 100644 --- a/packages/jest-mock-vscode-examples/package.json +++ b/packages/jest-mock-vscode-examples/package.json @@ -20,6 +20,6 @@ "jest-mock-vscode": "^1.1.0", "jest-when": "^3.5.1", "ts-jest": "^28.0.8", - "typescript": "^4.7.4" + "typescript": "^4.8.2" } } diff --git a/yarn.lock b/yarn.lock index 8dc524461..b9464712f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7277,10 +7277,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.7.4: - version "4.7.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== +typescript@^4.8.2: + version "4.8.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" + integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== typescript@~4.6.2: version "4.6.4"