From d0f49ccdead51b8fbd13cd13867b558a252af73d Mon Sep 17 00:00:00 2001 From: Thomas Roberts Date: Thu, 20 May 2021 19:15:54 +0100 Subject: [PATCH] Change updateCartFromApi to TypeScript --- .../{update-cart-from-api.js => update-cart-from-api.ts} | 9 +++++++-- packages/tsconfig.json | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) rename packages/checkout/utils/{update-cart-from-api.js => update-cart-from-api.ts} (58%) diff --git a/packages/checkout/utils/update-cart-from-api.js b/packages/checkout/utils/update-cart-from-api.ts similarity index 58% rename from packages/checkout/utils/update-cart-from-api.js rename to packages/checkout/utils/update-cart-from-api.ts index 0fcf12f5795..0be5514ee01 100644 --- a/packages/checkout/utils/update-cart-from-api.js +++ b/packages/checkout/utils/update-cart-from-api.ts @@ -3,17 +3,22 @@ */ import { CART_STORE_KEY } from '@woocommerce/block-data'; import { select, dispatch } from '@wordpress/data'; +import type { CartResponse } from '@woocommerce/type-defs/cart-response'; /** * When executed, this will invalidate the getCartData selector, causing a request to be made * to the API. This is in place to allow extensions to signal that they have modified the cart, * and that it needs to be reloaded in the client. */ -export const updateCartFromApi = () => { +export const updateCartFromApi = (): void => { const { getCartData } = select( CART_STORE_KEY ); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore - Can't figure out why invalidateResolutionForStoreSelector isn't available + // but it's a standard action dispatched by @wordpress/data. const { invalidateResolutionForStoreSelector, receiveCart } = dispatch( CART_STORE_KEY ); invalidateResolutionForStoreSelector( 'getCartData' ); - receiveCart( getCartData() ); + const cartData = ( getCartData() as unknown ) as CartResponse; + receiveCart( cartData ); }; diff --git a/packages/tsconfig.json b/packages/tsconfig.json index 89b029a2675..8fb8bfbe2e4 100644 --- a/packages/tsconfig.json +++ b/packages/tsconfig.json @@ -10,7 +10,8 @@ "../assets/js/base/hooks", "../settings/shared/index.ts", "../settings/blocks/index.ts", - "../type-defs" + "../type-defs", + "../assets/js/data" ], "exclude": [ "**/test/**" ] }