From 22bd4fdb7e2b5f3151d647458a54b56e9f274d41 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 6 Feb 2019 13:51:36 +0100 Subject: [PATCH 1/5] jscookie: small changes to make it more correct. Might break existing code? --- types/js-cookie/index.d.ts | 7 ++++--- types/js-cookie/js-cookie-tests.ts | 9 ++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/types/js-cookie/index.d.ts b/types/js-cookie/index.d.ts index 6cd3c89169..5b871f8265 100644 --- a/types/js-cookie/index.d.ts +++ b/types/js-cookie/index.d.ts @@ -79,7 +79,7 @@ declare namespace Cookies { * or SDK. Note: The noConflict method is not necessary when using * AMD or CommonJS, thus it is not exposed in those environments. */ - noConflict(): CookiesStatic; + noConflict?(): CookiesStatic; /** * Create a new instance of the api that overrides the default @@ -88,10 +88,11 @@ declare namespace Cookies { * will run the converter first for each cookie. The returned * string will be used as the cookie value. */ - withConverter(converter: CookieConverter | { write: CookieConverter; read: CookieConverter; }): CookiesStatic; + withConverter(converter: CookieReadConverter | { write: CookieWriteConverter; read: CookieReadConverter; }): CookiesStatic; } - type CookieConverter = (value: string, name: string) => string; + type CookieWriteConverter = (value: string | object, name: string) => string; + type CookieReadConverter = (value: string, name: string) => string; } declare const Cookies: Cookies.CookiesStatic; diff --git a/types/js-cookie/js-cookie-tests.ts b/types/js-cookie/js-cookie-tests.ts index 683b401d8b..a1b15957c6 100644 --- a/types/js-cookie/js-cookie-tests.ts +++ b/types/js-cookie/js-cookie-tests.ts @@ -19,8 +19,7 @@ Cookies.get(); Cookies.remove('name'); Cookies.remove('name', { path: '' }); -const Cookies2 = Cookies.noConflict(); -Cookies2; // $ExpectType CookiesStatic +const Cookies2: Cookies.CookiesStatic = (Cookies.noConflict as () => Cookies.CookiesStatic)(); Cookies.set('name', { foo: 'bar' }); @@ -41,11 +40,11 @@ Cookies.defaults.path = ''; delete Cookies.defaults.path; const PHPCookies = Cookies.withConverter({ - write(value) { - return encodeURIComponent(value) + write(value: string | object) { + return encodeURIComponent(value as string) .replace(/%(23|24|26|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); }, - read(value) { + read(value: string) { return value .replace(/\+/g, ' ') .replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); From bc19168ce7aa68c9f314c2f28e7a4f29ed23bdee Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 6 Feb 2019 17:37:51 +0100 Subject: [PATCH 2/5] jscookie: changed tests --- types/js-cookie/js-cookie-tests.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/types/js-cookie/js-cookie-tests.ts b/types/js-cookie/js-cookie-tests.ts index a1b15957c6..a281041ceb 100644 --- a/types/js-cookie/js-cookie-tests.ts +++ b/types/js-cookie/js-cookie-tests.ts @@ -19,7 +19,8 @@ Cookies.get(); Cookies.remove('name'); Cookies.remove('name', { path: '' }); -const Cookies2: Cookies.CookiesStatic = (Cookies.noConflict as () => Cookies.CookiesStatic)(); +const Cookies2 = (Cookies.noConflict as () => Cookies.CookiesStatic)(); +Cookies2; // $ExpectType CookiesStatic Cookies.set('name', { foo: 'bar' }); @@ -40,11 +41,13 @@ Cookies.defaults.path = ''; delete Cookies.defaults.path; const PHPCookies = Cookies.withConverter({ - write(value: string | object) { + write(value) { + value; // $ExpectType string | object return encodeURIComponent(value as string) .replace(/%(23|24|26|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); }, - read(value: string) { + read(value) { + value; // $ExpectType string return value .replace(/\+/g, ' ') .replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); From a6e6a509f952987489b9d9442842e39050b18ef8 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 6 Feb 2019 18:32:38 +0100 Subject: [PATCH 3/5] js-cookie: bang --- types/js-cookie/js-cookie-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/js-cookie/js-cookie-tests.ts b/types/js-cookie/js-cookie-tests.ts index a281041ceb..c173daa558 100644 --- a/types/js-cookie/js-cookie-tests.ts +++ b/types/js-cookie/js-cookie-tests.ts @@ -19,7 +19,7 @@ Cookies.get(); Cookies.remove('name'); Cookies.remove('name', { path: '' }); -const Cookies2 = (Cookies.noConflict as () => Cookies.CookiesStatic)(); +const Cookies2 = Cookies.noConflict!(); Cookies2; // $ExpectType CookiesStatic Cookies.set('name', { foo: 'bar' }); From 08a32bb40326ee7366a938912ec8b17520293f6c Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Wed, 6 Feb 2019 18:35:40 +0100 Subject: [PATCH 4/5] js-cookie: parameterized set value --- types/js-cookie/index.d.ts | 8 ++++---- types/js-cookie/js-cookie-tests.ts | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/types/js-cookie/index.d.ts b/types/js-cookie/index.d.ts index 5b871f8265..9f05f25016 100644 --- a/types/js-cookie/index.d.ts +++ b/types/js-cookie/index.d.ts @@ -33,7 +33,7 @@ declare namespace Cookies { secure?: boolean; } - interface CookiesStatic { + interface CookiesStatic { /** * Allows default cookie attributes to be accessed, changed, or reset */ @@ -42,7 +42,7 @@ declare namespace Cookies { /** * Create a cookie */ - set(name: string, value: string | object, options?: CookieAttributes): void; + set(name: string, value: string | T, options?: CookieAttributes): void; /** * Read cookie @@ -88,10 +88,10 @@ declare namespace Cookies { * will run the converter first for each cookie. The returned * string will be used as the cookie value. */ - withConverter(converter: CookieReadConverter | { write: CookieWriteConverter; read: CookieReadConverter; }): CookiesStatic; + withConverter(converter: CookieReadConverter | { write: CookieWriteConverter; read: CookieReadConverter; }): CookiesStatic; } - type CookieWriteConverter = (value: string | object, name: string) => string; + type CookieWriteConverter = (value: string | T, name: string) => string; type CookieReadConverter = (value: string, name: string) => string; } diff --git a/types/js-cookie/js-cookie-tests.ts b/types/js-cookie/js-cookie-tests.ts index c173daa558..26bc055a90 100644 --- a/types/js-cookie/js-cookie-tests.ts +++ b/types/js-cookie/js-cookie-tests.ts @@ -20,7 +20,7 @@ Cookies.remove('name'); Cookies.remove('name', { path: '' }); const Cookies2 = Cookies.noConflict!(); -Cookies2; // $ExpectType CookiesStatic +Cookies2; // $ExpectType CookiesStatic Cookies.set('name', { foo: 'bar' }); From dfd742bfd246909063bd468ed24d36f9375c140b Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Fri, 8 Feb 2019 13:18:40 +0100 Subject: [PATCH 5/5] js-cookie: last review fixes #32830 --- types/js-cookie/index.d.ts | 4 ++-- types/js-cookie/js-cookie-tests.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/types/js-cookie/index.d.ts b/types/js-cookie/index.d.ts index 9f05f25016..7b90b4ecd5 100644 --- a/types/js-cookie/index.d.ts +++ b/types/js-cookie/index.d.ts @@ -79,7 +79,7 @@ declare namespace Cookies { * or SDK. Note: The noConflict method is not necessary when using * AMD or CommonJS, thus it is not exposed in those environments. */ - noConflict?(): CookiesStatic; + noConflict?(): CookiesStatic; /** * Create a new instance of the api that overrides the default @@ -88,7 +88,7 @@ declare namespace Cookies { * will run the converter first for each cookie. The returned * string will be used as the cookie value. */ - withConverter(converter: CookieReadConverter | { write: CookieWriteConverter; read: CookieReadConverter; }): CookiesStatic; + withConverter(converter: CookieReadConverter | { write: CookieWriteConverter; read: CookieReadConverter; }): CookiesStatic; } type CookieWriteConverter = (value: string | T, name: string) => string; diff --git a/types/js-cookie/js-cookie-tests.ts b/types/js-cookie/js-cookie-tests.ts index 26bc055a90..df30d90975 100644 --- a/types/js-cookie/js-cookie-tests.ts +++ b/types/js-cookie/js-cookie-tests.ts @@ -40,7 +40,7 @@ cookies.get('escaped'); Cookies.defaults.path = ''; delete Cookies.defaults.path; -const PHPCookies = Cookies.withConverter({ +const PHPCookies = Cookies.withConverter({ write(value) { value; // $ExpectType string | object return encodeURIComponent(value as string)