From e425a450ce884bd766df19abec0065a0b2596d0f Mon Sep 17 00:00:00 2001 From: Louis-Dominique Dubeau Date: Tue, 31 Jul 2018 18:43:02 -0400 Subject: [PATCH] node: add the 3rd parameter to URLSearchParams.forEach (#27732) The documentation for [URLSearchParams.forEach][1] shows that the callback function will be called with 3 parameters. This has been true since Node 6. This commit adds a definition for the 3rd parameter to the definition files for Node 6, 7, 8, 9 and 10. [1]: https://nodejs.org/api/url.html#url_urlsearchparams_foreach_fn_thisarg --- types/node/index.d.ts | 2 +- types/node/node-tests.ts | 3 ++- types/node/v6/index.d.ts | 2 +- types/node/v6/node-tests.ts | 3 ++- types/node/v7/index.d.ts | 2 +- types/node/v7/node-tests.ts | 3 ++- types/node/v8/index.d.ts | 2 +- types/node/v8/node-tests.ts | 3 ++- types/node/v9/index.d.ts | 2 +- types/node/v9/node-tests.ts | 3 ++- 10 files changed, 15 insertions(+), 10 deletions(-) diff --git a/types/node/index.d.ts b/types/node/index.d.ts index ba1fd14d5d..bb4b54efa7 100644 --- a/types/node/index.d.ts +++ b/types/node/index.d.ts @@ -2510,7 +2510,7 @@ declare module "url" { append(name: string, value: string): void; delete(name: string): void; entries(): IterableIterator<[string, string]>; - forEach(callback: (value: string, name: string) => void): void; + forEach(callback: (value: string, name: string, searchParams: this) => void): void; get(name: string): string | null; getAll(name: string): string[]; has(name: string): boolean; diff --git a/types/node/node-tests.ts b/types/node/node-tests.ts index c3a23dc094..aae5512702 100644 --- a/types/node/node-tests.ts +++ b/types/node/node-tests.ts @@ -690,9 +690,10 @@ namespace url_tests { const searchParams = new url.URLSearchParams('abc=123'); assert.equal(searchParams.toString(), 'abc=123'); - searchParams.forEach((value: string, name: string): void => { + searchParams.forEach((value: string, name: string, me: url.URLSearchParams): void => { assert.equal(name, 'abc'); assert.equal(value, '123'); + assert.equal(me, searchParams); }); assert.equal(searchParams.get('abc'), '123'); diff --git a/types/node/v6/index.d.ts b/types/node/v6/index.d.ts index 9cceb11e71..de1b280260 100644 --- a/types/node/v6/index.d.ts +++ b/types/node/v6/index.d.ts @@ -2002,7 +2002,7 @@ declare module "url" { append(name: string, value: string): void; delete(name: string): void; entries(): Iterator; - forEach(callback: (value: string, name: string) => void): void; + forEach(callback: (value: string, name: string, searchParams: this) => void): void; get(name: string): string | null; getAll(name: string): string[]; has(name: string): boolean; diff --git a/types/node/v6/node-tests.ts b/types/node/v6/node-tests.ts index 6ab45137c4..43441e9840 100644 --- a/types/node/v6/node-tests.ts +++ b/types/node/v6/node-tests.ts @@ -538,9 +538,10 @@ namespace url_tests { const searchParams = new url.URLSearchParams('abc=123'); assert.equal(searchParams.toString(), 'abc=123'); - searchParams.forEach((value: string, name: string): void => { + searchParams.forEach((value: string, name: string, me: url.URLSearchParams): void => { assert.equal(name, 'abc'); assert.equal(value, '123'); + assert.equal(me, searchParams); }); assert.equal(searchParams.get('abc'), '123'); diff --git a/types/node/v7/index.d.ts b/types/node/v7/index.d.ts index b93c70017b..a40d713dcf 100644 --- a/types/node/v7/index.d.ts +++ b/types/node/v7/index.d.ts @@ -2045,7 +2045,7 @@ declare module "url" { append(name: string, value: string): void; delete(name: string): void; entries(): Iterator; - forEach(callback: (value: string, name: string) => void): void; + forEach(callback: (value: string, name: string, searchParams: this) => void): void; get(name: string): string | null; getAll(name: string): string[]; has(name: string): boolean; diff --git a/types/node/v7/node-tests.ts b/types/node/v7/node-tests.ts index a74a438665..4549ab7062 100644 --- a/types/node/v7/node-tests.ts +++ b/types/node/v7/node-tests.ts @@ -520,9 +520,10 @@ namespace url_tests { const searchParams = new url.URLSearchParams('abc=123'); assert.equal(searchParams.toString(), 'abc=123'); - searchParams.forEach((value: string, name: string): void => { + searchParams.forEach((value: string, name: string, me: url.URLSearchParams): void => { assert.equal(name, 'abc'); assert.equal(value, '123'); + assert.equal(me, searchParams); }); assert.equal(searchParams.get('abc'), '123'); diff --git a/types/node/v8/index.d.ts b/types/node/v8/index.d.ts index 6acb0c62a7..8e6c649d00 100644 --- a/types/node/v8/index.d.ts +++ b/types/node/v8/index.d.ts @@ -2378,7 +2378,7 @@ declare module "url" { append(name: string, value: string): void; delete(name: string): void; entries(): IterableIterator<[string, string]>; - forEach(callback: (value: string, name: string) => void): void; + forEach(callback: (value: string, name: string, searchParams: this) => void): void; get(name: string): string | null; getAll(name: string): string[]; has(name: string): boolean; diff --git a/types/node/v8/node-tests.ts b/types/node/v8/node-tests.ts index 318062648a..9cec14a88e 100644 --- a/types/node/v8/node-tests.ts +++ b/types/node/v8/node-tests.ts @@ -654,9 +654,10 @@ namespace url_tests { const searchParams = new url.URLSearchParams('abc=123'); assert.equal(searchParams.toString(), 'abc=123'); - searchParams.forEach((value: string, name: string): void => { + searchParams.forEach((value: string, name: string, me: url.URLSearchParams): void => { assert.equal(name, 'abc'); assert.equal(value, '123'); + assert.equal(me, searchParams); }); assert.equal(searchParams.get('abc'), '123'); diff --git a/types/node/v9/index.d.ts b/types/node/v9/index.d.ts index 7d9b0dbb29..19259316b8 100644 --- a/types/node/v9/index.d.ts +++ b/types/node/v9/index.d.ts @@ -2459,7 +2459,7 @@ declare module "url" { append(name: string, value: string): void; delete(name: string): void; entries(): IterableIterator<[string, string]>; - forEach(callback: (value: string, name: string) => void): void; + forEach(callback: (value: string, name: string, searchParams: this) => void): void; get(name: string): string | null; getAll(name: string): string[]; has(name: string): boolean; diff --git a/types/node/v9/node-tests.ts b/types/node/v9/node-tests.ts index 30b0666773..3d7861f532 100644 --- a/types/node/v9/node-tests.ts +++ b/types/node/v9/node-tests.ts @@ -680,9 +680,10 @@ namespace url_tests { const searchParams = new url.URLSearchParams('abc=123'); assert.equal(searchParams.toString(), 'abc=123'); - searchParams.forEach((value: string, name: string): void => { + searchParams.forEach((value: string, name: string, me: url.URLSearchParams): void => { assert.equal(name, 'abc'); assert.equal(value, '123'); + assert.equal(me, searchParams); }); assert.equal(searchParams.get('abc'), '123');