fix(UrlSearchParams): change a behavior when a param value is null or undefined (#11990)
This commit is contained in:
parent
c143fee849
commit
bf7b82b658
|
@ -102,6 +102,10 @@ export class URLSearchParams {
|
||||||
getAll(param: string): string[] { return this.paramsMap.get(param) || []; }
|
getAll(param: string): string[] { return this.paramsMap.get(param) || []; }
|
||||||
|
|
||||||
set(param: string, val: string) {
|
set(param: string, val: string) {
|
||||||
|
if (val === void 0 || val === null) {
|
||||||
|
this.delete(param);
|
||||||
|
return;
|
||||||
|
}
|
||||||
const list = this.paramsMap.get(param) || [];
|
const list = this.paramsMap.get(param) || [];
|
||||||
list.length = 0;
|
list.length = 0;
|
||||||
list.push(val);
|
list.push(val);
|
||||||
|
@ -124,6 +128,7 @@ export class URLSearchParams {
|
||||||
}
|
}
|
||||||
|
|
||||||
append(param: string, val: string): void {
|
append(param: string, val: string): void {
|
||||||
|
if (val === void 0 || val === null) return;
|
||||||
const list = this.paramsMap.get(param) || [];
|
const list = this.paramsMap.get(param) || [];
|
||||||
list.push(val);
|
list.push(val);
|
||||||
this.paramsMap.set(param, list);
|
this.paramsMap.set(param, list);
|
||||||
|
|
|
@ -149,5 +149,23 @@ export function main() {
|
||||||
expect(paramsC.toString()).toEqual('a=2&q=4%2B&c=8');
|
expect(paramsC.toString()).toEqual('a=2&q=4%2B&c=8');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should remove the parameter when set to undefined or null', () => {
|
||||||
|
const params = new URLSearchParams('q=Q');
|
||||||
|
params.set('q', undefined);
|
||||||
|
expect(params.has('q')).toBe(false);
|
||||||
|
expect(params.toString()).toEqual('');
|
||||||
|
params.set('q', null);
|
||||||
|
expect(params.has('q')).toBe(false);
|
||||||
|
expect(params.toString()).toEqual('');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should ignore the value when append undefined or null', () => {
|
||||||
|
const params = new URLSearchParams('q=Q');
|
||||||
|
params.append('q', undefined);
|
||||||
|
expect(params.toString()).toEqual('q=Q');
|
||||||
|
params.append('q', null);
|
||||||
|
expect(params.toString()).toEqual('q=Q');
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue