From e2d519f8669319a60d70eddb04fbaeb5649ad638 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Nov 2020 14:31:48 +0100 Subject: [PATCH] chore(deps): update dependency typescript to v4 (#1695) * chore(deps): update dependency typescript to v4 * fix: type errors * docs: changeset Co-authored-by: Renovate Bot Co-authored-by: Nicola Molinari --- .changeset/good-zebras-promise.md | 6 ++++++ package.json | 2 +- packages-backend/express/src/auth.ts | 17 ++++++++++------- .../src/middlewares/session-middleware.spec.ts | 4 ++-- .../use-applications-menu.ts | 15 +++++++-------- .../src/test-utils/test-utils.tsx | 2 +- yarn.lock | 8 ++++---- 7 files changed, 31 insertions(+), 23 deletions(-) create mode 100644 .changeset/good-zebras-promise.md diff --git a/.changeset/good-zebras-promise.md b/.changeset/good-zebras-promise.md new file mode 100644 index 0000000000..d8c902863f --- /dev/null +++ b/.changeset/good-zebras-promise.md @@ -0,0 +1,6 @@ +--- +"@commercetools-backend/express": patch +"@commercetools-frontend/application-shell": patch +--- + +Migrate to Typescript v4 diff --git a/package.json b/package.json index dc3ea38872..270a60f9c2 100644 --- a/package.json +++ b/package.json @@ -172,7 +172,7 @@ "stylelint-config-standard": "20.0.0", "stylelint-order": "4.1.0", "stylelint-value-no-unknown-custom-properties": "3.0.0", - "typescript": "3.9.7", + "typescript": "4.1.2", "vfile-message": "2.0.4" }, "resolutions": { diff --git a/packages-backend/express/src/auth.ts b/packages-backend/express/src/auth.ts index d001ef46b4..03a081a351 100644 --- a/packages-backend/express/src/auth.ts +++ b/packages-backend/express/src/auth.ts @@ -19,15 +19,18 @@ type TDecodedJWT = { const decodedTokenKey = 'decoded_token'; // Assign a session object to the request object. const writeSessionContext = ( - request: Request & { decoded_token: TDecodedJWT; session?: TSession } + request: Request & { decoded_token?: TDecodedJWT; session?: TSession } ) => { const decodedToken = request[decodedTokenKey]; - const publicClaimForProjectKey = `${decodedToken.iss}/claims/project_key`; - request.session = { - userId: decodedToken.sub, - projectKey: decodedToken[publicClaimForProjectKey], - }; + if (decodedToken) { + const publicClaimForProjectKey = `${decodedToken.iss}/claims/project_key`; + + request.session = { + userId: decodedToken.sub, + projectKey: decodedToken[publicClaimForProjectKey], + }; + } // Remove the field used by the JWT middleware. delete request.decoded_token; @@ -149,7 +152,7 @@ function createSessionAuthVerifier< const requestUrlPath = request.originalUrl ?? request.url; const audience = getConfiguredAudience(options, requestUrlPath); - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { expressJwtMiddleware({ // Dynamically provide a signing key based on the kid in the header // and the singing keys provided by the JWKS endpoint diff --git a/packages-backend/express/src/middlewares/session-middleware.spec.ts b/packages-backend/express/src/middlewares/session-middleware.spec.ts index e1743b7570..646cd17dc9 100644 --- a/packages-backend/express/src/middlewares/session-middleware.spec.ts +++ b/packages-backend/express/src/middlewares/session-middleware.spec.ts @@ -49,7 +49,7 @@ describe.each` originalUrl: '/foo/bar', }; const fakeResponse = {}; - await new Promise((resolve, reject) => { + await new Promise((resolve, reject) => { // @ts-ignore sessionMiddleware(fakeRequest, fakeResponse, (error) => { if (error) reject(error); @@ -83,7 +83,7 @@ describe.each` originalUrl: '/foo/bar', }; const fakeResponse = {}; - await new Promise((resolve, reject) => { + await new Promise((resolve, reject) => { // @ts-ignore sessionMiddleware(fakeRequest, fakeResponse, (error) => { if (error) reject(error); diff --git a/packages/application-shell/src/hooks/use-applications-menu/use-applications-menu.ts b/packages/application-shell/src/hooks/use-applications-menu/use-applications-menu.ts index 6a66b932de..94ac97c99d 100644 --- a/packages/application-shell/src/hooks/use-applications-menu/use-applications-menu.ts +++ b/packages/application-shell/src/hooks/use-applications-menu/use-applications-menu.ts @@ -28,7 +28,7 @@ const defaultApiUrl = window.location.origin; function useApplicationsMenu( menuKey: Key, config: Config = {} -) { +): MenuLoaderResult | undefined { const [menu, setMenu] = React.useState>(); // Trigger loading the menu from local file, for local development @@ -65,12 +65,11 @@ function useApplicationsMenu( // Return the local config if (config.skipRemoteQuery === true) { - const fakeGraphqlResponse = menu - ? Array.isArray(menu) - ? menu - : [menu] - : undefined; - return fakeGraphqlResponse; + if (menu) { + const fakeGraphqlResponse = Array.isArray(menu) ? menu : [menu]; + return fakeGraphqlResponse as MenuLoaderResult; + } + return; } // Fetch the query remotely @@ -80,7 +79,7 @@ function useApplicationsMenu( } if (menuQueryResult && menuQueryResult.applicationsMenu) { - return menuQueryResult.applicationsMenu[menuKey]; + return menuQueryResult.applicationsMenu[menuKey] as MenuLoaderResult; } return; diff --git a/packages/application-shell/src/test-utils/test-utils.tsx b/packages/application-shell/src/test-utils/test-utils.tsx index 20b4cc027a..a219e87243 100644 --- a/packages/application-shell/src/test-utils/test-utils.tsx +++ b/packages/application-shell/src/test-utils/test-utils.tsx @@ -85,7 +85,7 @@ const defaultUser = { launchdarklyTrackingTenant: 'gcp-eu', }; -const defaultEnvironment = { +const defaultEnvironment: Partial['environment']> = { applicationName: 'my-app', frontendHost: 'localhost:3001', mcApiUrl: 'https://mc-api.europe-west1.gcp.commercetools.com', diff --git a/yarn.lock b/yarn.lock index 1cb58ad98c..69087e49c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26966,10 +26966,10 @@ typeface-roboto@1.1.13: resolved "https://registry.yarnpkg.com/typeface-roboto/-/typeface-roboto-1.1.13.tgz#9c4517cb91e311706c74823e857b4bac9a764ae5" integrity sha512-YXvbd3a1QTREoD+FJoEkl0VQNJoEjewR2H11IjVv4bp6ahuIcw0yyw/3udC4vJkHw3T3cUh85FTg8eWef3pSaw== -typescript@3.9.7: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +typescript@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== typescript@^4.0: version "4.0.5"