From 198c91f3c4c83bfbb6fc98e79178d32ca2bf045e Mon Sep 17 00:00:00 2001 From: Daniel Suchy Date: Mon, 9 Sep 2024 14:00:11 +0200 Subject: [PATCH] feat(repo): TS 5.5 --- package.json | 4 +-- packages/connect-plugin-stellar/src/index.ts | 3 ++- .../src/custom-types/keyof-enum.ts | 26 ++++++++++++------- .../react-native-graph/src/GetYForX.ts | 2 +- yarn.lock | 18 ++++++------- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 0945f60481..678873399f 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ ] }, "resolutions": { - "typescript": "5.3.3", + "typescript": "5.5.4", "react-native": "0.75.2", "prettier": "3.2.5", "type-fest": "4.24.0", @@ -156,7 +156,7 @@ "tsconfig-paths": "^4.2.0", "tslib": "^2.6.2", "tsx": "^4.16.3", - "typescript": "5.3.3", + "typescript": "5.5.4", "version-bump-prompt": "^6.1.0" }, "dependenciesMeta": { diff --git a/packages/connect-plugin-stellar/src/index.ts b/packages/connect-plugin-stellar/src/index.ts index 77ed71fb9d..bf42c2f23e 100644 --- a/packages/connect-plugin-stellar/src/index.ts +++ b/packages/connect-plugin-stellar/src/index.ts @@ -65,7 +65,8 @@ const transformAsset = (asset: Asset) => { * @param {string} amount * @returns {string} */ -const transformAmount = (amount: number) => new BigNumber(amount).times(10000000).toString(); +const transformAmount = (amount: number | string) => + new BigNumber(amount).times(10000000).toString(); /** * Transforms Memo to TrezorConnect.StellarTransaction.Memo diff --git a/packages/schema-utils/src/custom-types/keyof-enum.ts b/packages/schema-utils/src/custom-types/keyof-enum.ts index 109408760a..2e72f18e7f 100644 --- a/packages/schema-utils/src/custom-types/keyof-enum.ts +++ b/packages/schema-utils/src/custom-types/keyof-enum.ts @@ -22,19 +22,25 @@ type LastInUnion = ? L : never; -// Build a tuple for the object -// Strategy - take the last key, add it to the tuple, and recurse on the rest -// Wrap the key in a TLiteral for Typebox -type ObjectKeysToTuple> = [T] extends [never] +// TLiteral<"a" | "b"> => TLiteral<"a"> | TLiteral<"b"> +type DistributeLiterals = T extends T + ? T extends string | number + ? TLiteral + : never + : never; + +// TLiteral<"A"> | TLiteral<"B"> => [TLiteral<"A">, TLiteral<"B".] +type UnionToTuple> = [U] extends [never] ? [] - : [Last] extends [never] - ? [] - : Last extends string | number - ? [...ObjectKeysToTuple>, TLiteral] - : []; + : [...UnionToTuple>, Last]; + +// Explicitly make sure every element is a TLiteral +type TLiteralGuard = { + [K in keyof T]: T[K] extends TLiteral ? T[K] : never; +}; export interface TKeyOfEnum> - extends TUnion> { + extends TUnion>>> { [Hint]: 'KeyOfEnum'; } diff --git a/suite-native/react-native-graph/src/GetYForX.ts b/suite-native/react-native-graph/src/GetYForX.ts index a93e100c2c..69c13d5741 100644 --- a/suite-native/react-native-graph/src/GetYForX.ts +++ b/suite-native/react-native-graph/src/GetYForX.ts @@ -77,7 +77,7 @@ const solveCubic = (a: number, b: number, c: number, d: number): number[] => { } // Convert back from depressed cubic - for (let i = 0; i < roots.length; i++) roots[i] -= b / (3 * a); + for (let i = 0; i < roots.length; i++) roots[i]! -= b / (3 * a); return roots; }; diff --git a/yarn.lock b/yarn.lock index 1274c688f5..60f590c6b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -40307,7 +40307,7 @@ __metadata: tsconfig-paths: "npm:^4.2.0" tslib: "npm:^2.6.2" tsx: "npm:^4.16.3" - typescript: "npm:5.3.3" + typescript: "npm:5.5.4" version-bump-prompt: "npm:^6.1.0" dependenciesMeta: core-js-pure: @@ -40739,23 +40739,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.3.3": - version: 5.3.3 - resolution: "typescript@npm:5.3.3" +"typescript@npm:5.5.4": + version: 5.5.4 + resolution: "typescript@npm:5.5.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/6e4e6a14a50c222b3d14d4ea2f729e79f972fa536ac1522b91202a9a65af3605c2928c4a790a4a50aa13694d461c479ba92cedaeb1e7b190aadaa4e4b96b8e18 + checksum: 10/1689ccafef894825481fc3d856b4834ba3cc185a9c2878f3c76a9a1ef81af04194849840f3c69e7961e2312771471bb3b460ca92561e1d87599b26c37d0ffb6f languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.3.3#optional!builtin": - version: 5.3.3 - resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" +"typescript@patch:typescript@npm%3A5.5.4#optional!builtin": + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=b45daf" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/c93786fcc9a70718ba1e3819bab56064ead5817004d1b8186f8ca66165f3a2d0100fee91fa64c840dcd45f994ca5d615d8e1f566d39a7470fc1e014dbb4cf15d + checksum: 10/2c065f0ef81855eac25c9b658a3c9da65ffc005260c12854c2286f40f3667e1b1ecf8bdbdd37b59aa0397920378ce7900bff8cb32e0f1c7af6fd86efc676718c languageName: node linkType: hard