thiagobustamante / typescript-rest

This is a lightweight annotation-based expressjs extension for typescript.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

One-element array in a query parameter not parsed correctly

mz8i opened this issue · comments

When a query parameter is an Array, but the query contains just one element
(for example /path?words=foo as opposed to /path?words=foo&words=bar) then at run-time the parameter passed to the controller is actually a string, not a one-element array.

In my controller, I solved it by code that feels like it could be included in the library code which parses the parameters?

@GET
@Path('endpoint')
public endpoint(@QueryParam('words') words: string[]): void {
    let wordsArray = words;
    if (typeof wordsArray === 'string') {
        wordsArray = [wordsArray];
    }

    // do something with wordsArray
}

I can confirm this bug too.

this happened to me too, it just works the right way if you send more than one item in the array, otherwise it parses for "type" instead of "type []"

commented

I have submitted a PR (#147) to address this issue.