From: Jan Date: Mon, 21 Nov 2022 21:09:58 +0000 (+0100) Subject: fix(types): implemented a workaround to be TS 4.9.x compatible (#1818) X-Git-Tag: @pinia/nuxt@0.4.5~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c42a54c5d6bf20ca4b1c619da44f18be3c84db87;p=thirdparty%2Fvuejs%2Fpinia.git fix(types): implemented a workaround to be TS 4.9.x compatible (#1818) --- diff --git a/packages/pinia/package.json b/packages/pinia/package.json index 5ed53642..aeb87df9 100644 --- a/packages/pinia/package.json +++ b/packages/pinia/package.json @@ -69,7 +69,7 @@ ], "license": "MIT", "devDependencies": { - "@microsoft/api-extractor": "7.28.6", + "@microsoft/api-extractor": "7.33.6", "@vue/test-utils": "^2.2.3" }, "dependencies": { diff --git a/packages/pinia/src/mapHelpers.ts b/packages/pinia/src/mapHelpers.ts index 2b6c7ba3..fbedb9b4 100644 --- a/packages/pinia/src/mapHelpers.ts +++ b/packages/pinia/src/mapHelpers.ts @@ -29,14 +29,17 @@ export type _StoreObject = S extends StoreDefinition< infer Actions > ? { - [Id in `${Ids}${MapStoresCustomization extends Record<'suffix', string> - ? MapStoresCustomization['suffix'] + [Id in `${Ids}${MapStoresCustomization extends Record< + 'suffix', + infer Suffix extends string + > + ? Suffix : 'Store'}`]: () => Store< Id extends `${infer RealId}${MapStoresCustomization extends Record< 'suffix', - string + infer Suffix extends string > - ? MapStoresCustomization['suffix'] + ? Suffix : 'Store'}` ? RealId : string, @@ -64,8 +67,11 @@ export let mapStoreSuffix = 'Store' * @param suffix - new suffix */ export function setMapStoreSuffix( - suffix: MapStoresCustomization extends Record<'suffix', string> - ? MapStoresCustomization['suffix'] + suffix: MapStoresCustomization extends Record< + 'suffix', + infer Suffix extends string + > + ? Suffix : string // could be 'Store' but that would be annoying for JS ): void { mapStoreSuffix = suffix diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3947411f..8fc00e98 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,7 +109,7 @@ importers: packages/pinia: specifiers: - '@microsoft/api-extractor': 7.28.6 + '@microsoft/api-extractor': 7.33.6 '@vue/devtools-api': ^6.4.5 '@vue/test-utils': ^2.2.3 vue-demi: '*' @@ -117,7 +117,7 @@ importers: '@vue/devtools-api': 6.4.5 vue-demi: 0.13.11 devDependencies: - '@microsoft/api-extractor': 7.28.6 + '@microsoft/api-extractor': 7.33.6 '@vue/test-utils': 2.2.3 packages/playground: @@ -763,30 +763,30 @@ packages: - supports-color dev: true - /@microsoft/api-extractor-model/7.22.1: - resolution: {integrity: sha512-3Bx6VC8F4ti8XlhaOCynCpwGvdXGwHD2dGBpo2xpJT9gEmPQvpAL3Ni+5gaEX0eQ27zGILVTUZDqZSRYskk/Rw==} + /@microsoft/api-extractor-model/7.25.2: + resolution: {integrity: sha512-+h1uCrLQXFAKMUdghhdDcnniDB+6UA/lS9ArlB4QZQ34UbLuXNy2oQ6fafFK8cKXU4mUPTF/yGRjv7JKD5L7eg==} dependencies: - '@microsoft/tsdoc': 0.14.1 + '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.1 - '@rushstack/node-core-library': 3.49.0 + '@rushstack/node-core-library': 3.53.2 dev: true - /@microsoft/api-extractor/7.28.6: - resolution: {integrity: sha512-RNUokJTlBGD0ax/Jo8xLPWv4s6IboqrYrcabEEh6rFadO/tVPoV/R5YHtEeZ2q4ubvwhHTtX3sRm+p4fJo/3Sg==} + /@microsoft/api-extractor/7.33.6: + resolution: {integrity: sha512-EYu1qWiMyvP/P+7na76PbE7+eOtvuYIvQa2DhZqkSQSLYP2sKLmZaSMK5Jvpgdr0fK/xLFujK5vLf3vpfcmC8g==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.22.1 - '@microsoft/tsdoc': 0.14.1 + '@microsoft/api-extractor-model': 7.25.2 + '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.1 - '@rushstack/node-core-library': 3.49.0 - '@rushstack/rig-package': 0.3.13 - '@rushstack/ts-command-line': 4.12.1 + '@rushstack/node-core-library': 3.53.2 + '@rushstack/rig-package': 0.3.17 + '@rushstack/ts-command-line': 4.13.1 colors: 1.2.5 lodash: 4.17.21 resolve: 1.17.0 - semver: 7.3.7 + semver: 7.3.8 source-map: 0.6.1 - typescript: 4.6.4 + typescript: 4.8.4 dev: true /@microsoft/tsdoc-config/0.16.1: @@ -802,6 +802,10 @@ packages: resolution: {integrity: sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw==} dev: true + /@microsoft/tsdoc/0.14.2: + resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} + dev: true + /@netlify/functions/1.3.0: resolution: {integrity: sha512-hN/Fgpz8XIOBfsBPLYUMxVKBlCopgeqGB0popayicnmkFLnvKByTTMYgF01wcF9DBtBQdV0H2h1kPFpMl34I8w==} engines: {node: '>=8.3.0'} @@ -1411,8 +1415,8 @@ packages: rollup: 3.3.0 dev: true - /@rushstack/node-core-library/3.49.0: - resolution: {integrity: sha512-yBJRzGgUNFwulVrwwBARhbGaHsxVMjsZ9JwU1uSBbqPYCdac+t2HYdzi4f4q/Zpgb0eNbwYj2yxgHYpJORNEaw==} + /@rushstack/node-core-library/3.53.2: + resolution: {integrity: sha512-FggLe5DQs0X9MNFeJN3/EXwb+8hyZUTEp2i+V1e8r4Va4JgkjBNY0BuEaQI+3DW6S4apV3UtXU3im17MSY00DA==} dependencies: '@types/node': 12.20.24 colors: 1.2.5 @@ -1420,20 +1424,19 @@ packages: import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.17.0 - semver: 7.3.7 - timsort: 0.3.0 + semver: 7.3.8 z-schema: 5.0.3 dev: true - /@rushstack/rig-package/0.3.13: - resolution: {integrity: sha512-4/2+yyA/uDl7LQvtYtFs1AkhSWuaIGEKhP9/KK2nNARqOVc5eCXmu1vyOqr5mPvNq7sHoIR+sG84vFbaKYGaDA==} + /@rushstack/rig-package/0.3.17: + resolution: {integrity: sha512-nxvAGeIMnHl1LlZSQmacgcRV4y1EYtgcDIrw6KkeVjudOMonlxO482PhDj3LVZEp6L7emSf6YSO2s5JkHlwfZA==} dependencies: resolve: 1.17.0 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line/4.12.1: - resolution: {integrity: sha512-S1Nev6h/kNnamhHeGdp30WgxZTA+B76SJ/P721ctP7DrnC+rrjAc6h/R80I4V0cA2QuEEcMdVOQCtK2BTjsOiQ==} + /@rushstack/ts-command-line/4.13.1: + resolution: {integrity: sha512-UTQMRyy/jH1IS2U+6pyzyn9xQ2iMcoUKkTcZUzOP/aaMiKlWLwCTDiBVwhw/M1crDx6apF9CwyjuWO9r1SBdJQ==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -6776,14 +6779,6 @@ packages: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - /semver/7.3.7: - resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver/7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} engines: {node: '>=10'} @@ -7337,10 +7332,6 @@ packages: readable-stream: 3.6.0 dev: true - /timsort/0.3.0: - resolution: {integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==} - dev: true - /tiny-invariant/1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: true @@ -7456,12 +7447,6 @@ packages: typescript: 4.8.4 dev: true - /typescript/4.6.4: - resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - /typescript/4.8.4: resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} engines: {node: '>=4.2.0'}