Skip to content

Commit 1b2418f

Browse files
committed
fix: Fix URL Search Parameter with falsy value gets omitted
1 parent ff2139c commit 1b2418f

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

src/adapters/serializers/flatten.spec.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,12 @@ describe("flattenForRailsQueryString", () => {
135135
`"title=some%20group&context[]=notifications&keywordsAttributes[][keyword]=my%20keyword"`,
136136
);
137137
});
138+
139+
it("encodes an object with value 0", () => {
140+
const result = flattenForRailsQueryString({
141+
limit: 0,
142+
});
143+
144+
expect(result).toBe("limit=0");
145+
});
138146
});

src/adapters/serializers/flatten.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export const flattenForRailsQueryString = (object: unknown): string => {
4646
});
4747

4848
return flatten(object)
49-
.filter(([, v]) => !!v)
49+
.filter(([, v]) => v != undefined)
5050
.map(([k, v]) => `${k}=${encodeURIComponent(v as string)}`)
5151
.join("&");
5252
};

src/adapters/serializers/serializer-native-impl.spec.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@ describe("SerializerNativeImpl", () => {
4646
);
4747
});
4848

49+
it("encodes an object with value 0 to a querystring (#1282)", () => {
50+
const data = serializer.serialize("querystring", {
51+
limit: 0,
52+
});
53+
54+
expect(data).toBe("limit=0");
55+
});
56+
4957
it("parses JSON string to an Object", () => {
5058
const data = serializer.deserialize("json", '{ "key_name": "value" }');
5159
expect(data).toEqual({ keyName: "value" });

0 commit comments

Comments
 (0)