From cc1df3ec682d0108666890a08c97b62ba3221b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magyar=20Bal=C3=A1zs?= Date: Sun, 6 Nov 2022 13:21:30 -0800 Subject: [PATCH 1/4] Fixed cookie value type ### Discussed in https://github.com/nuxt/framework/discussions/2576 The cookie.value is typed as string, so // @ts-ignore must be used to do this. I have fixed the types, so the cookie can be deleted without a ts error. --- packages/nuxt/src/app/composables/cookie.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index 9df2d82852e..3268fd16c7e 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -15,7 +15,9 @@ export interface CookieOptions extends _CookieOptions { default?: () => T | Ref } -export interface CookieRef extends Ref {} +export interface CookieRef extends Ref { + value: T | null | undefined; +} const CookieDefaults: CookieOptions = { path: '/', From d4211ab19e0ffdfb489aff86ea9af0eb117eb4c0 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 7 Nov 2022 11:54:53 +0000 Subject: [PATCH 2/4] fix: add `null` directly to `Ref` generic --- packages/nuxt/src/app/composables/cookie.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index 3268fd16c7e..7a7d6eb9374 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -15,9 +15,7 @@ export interface CookieOptions extends _CookieOptions { default?: () => T | Ref } -export interface CookieRef extends Ref { - value: T | null | undefined; -} +export interface CookieRef extends Ref {} const CookieDefaults: CookieOptions = { path: '/', From 8b472708d1cb6a298dc2373084abacfb2f964798 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 7 Nov 2022 11:54:58 +0000 Subject: [PATCH 3/4] test: add test for unsetting cookie --- test/fixtures/basic/types.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index 69899120afc..0d5f734d98b 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -154,8 +154,8 @@ describe('composables', () => { expectTypeOf(useState('test', () => ref('hello'))).toEqualTypeOf>() expectTypeOf(useState('test', () => 'hello')).toEqualTypeOf>() - expectTypeOf(useCookie('test', { default: () => ref(500) })).toEqualTypeOf>() - expectTypeOf(useCookie('test', { default: () => 500 })).toEqualTypeOf>() + expectTypeOf(useCookie('test', { default: () => ref(500) })).toEqualTypeOf>() + useCookie('test').value = null expectTypeOf(useAsyncData('test', () => Promise.resolve(500), { default: () => ref(500) }).data).toEqualTypeOf>() expectTypeOf(useAsyncData('test', () => Promise.resolve(500), { default: () => 500 }).data).toEqualTypeOf>() From 436d7f298f96f64db46c994a3d8924338cc80a48 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 7 Nov 2022 12:00:17 +0000 Subject: [PATCH 4/4] test: add back missed line --- test/fixtures/basic/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index 0d5f734d98b..c5cb34002b3 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -155,6 +155,7 @@ describe('composables', () => { expectTypeOf(useState('test', () => 'hello')).toEqualTypeOf>() expectTypeOf(useCookie('test', { default: () => ref(500) })).toEqualTypeOf>() + expectTypeOf(useCookie('test', { default: () => 500 })).toEqualTypeOf>() useCookie('test').value = null expectTypeOf(useAsyncData('test', () => Promise.resolve(500), { default: () => ref(500) }).data).toEqualTypeOf>()