Open mnpenner opened 2 months ago
We just encountered the same issue in our code and were surprised about undefined being serialized into "undefined", would be pretty cool to have a custom param serializer, like in axios for example
I also encountered this issue. IMO undefined and null params should be sanitized from the request as Axios does it.
here is what I use
import { Static, t } from "elysia";
const T = t
.Transform(t.String())
.Decode((value) => {
if (value === "null" || value === "undefined" || value === "") return null;
return value;
})
.Encode((value) => {
if (value === null) return "null";
if (value === undefined) return "undefined";
return value;
});
export const pageable = t.Object({
cursor: t.Optional(t.Nullable(T)),
});
export type Pageable = Static<typeof pageable>;
undefined
is getting serialized to the string "undefined" instead of omitted from the query params, I believe because of this line:https://github.com/elysiajs/eden/blob/8a0f7b6194ea336b18a1c80d9a7dd6d2b1afbba2/src/treaty2/index.ts#L188C38-L188C56
I would like to omit such params.
I tried using the
fetcher
option but the URL has already been built by that point.onRequest
also doesn't give me access to the query params it seems.An option like
serializeQuery(query: Record<string,any>): string
or similar that lets me provide a custom implementation would be great.