• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

afuh / rick-and-morty-api-node / 3862419784

pending completion
3862419784

Pull #32

github

GitHub
<a href="https://github.com/afuh/rick-and-morty-api-node/commit/<a class=hub.com/afuh/rick-and-morty-api-node/commit/<a class="double-link" href="https://git"><a class=hub.com/afuh/rick-and-morty-api-node/commit/<a class="double-link" href="https://git"><a class=hub.com/afuh/rick-and-morty-api-node/commit/<a class="double-link" href="https://git"><a class=hub.com/afuh/rick-and-morty-api-node/commit/ecf9aeb9927221ad2d2581c15143448f4107810e">ecf9aeb99">&lt;a href=&quot;https://github.com/afuh/rick-and-morty-api-node/commit/</a><a class="double-link" href="https://github.com/afuh/rick-and-morty-api-node/commit/&lt;a class=&quot;double-link&quot; href=&quot;https://git">&lt;a class=</a>hub.com/afuh/rick-and-morty-api-node/commit/&lt;a class=&quot;double-link&quot; href=&quot;https://git">&lt;a class=</a>hub.com/afuh/rick-and-morty-api-node/commit/&lt;a class=&quot;double-link&quot; href=&quot;https://git">&lt;a class=</a>hub.com/afuh/rick-and-morty-api-node/commit/&lt;a class=&quot;double-link&quot; href=&quot;https://git">&lt;a class=</a>hub.com/afuh/rick-and-morty-api-node/commit/&lt;a class=&quot;double-link&quot; href=&quot;https://git">&lt;a class=</a>hub.com/afuh/rick-and-morty-api-node/commit/ecf9aeb9927221ad2d2581c15143448f4107810e">ecf9aeb99</a><a href="https://github.com/afuh/rick-and-morty-api-node/commit/ecf9aeb9927221ad2d2581c15143448f4107810e">&quot;&gt;&amp;lt;a href=&amp;quot;https://github.com/afuh/rick-and-morty-api-node/commit/&lt;/a&gt;&lt;a class=&quot;double-link&quot; href=&quot;https://github.com/afuh/rick-and-morty-api-node/commit/&amp;lt;a class=&amp;quot;double-link&amp;quot; href=&amp;quot;https://git&quot;&gt;&amp;lt;a class=&lt;/a&gt;hub.com/afuh/rick-and-morty-api-node/commit/&amp;lt;a class=&amp;quot;double-link&amp;quot; href=&amp;quot;https://git&quot;&gt;&amp;lt;a class=&lt;/a&gt;hub.com/afuh/rick-and-morty-api-node/commit/&amp;lt;a class=&amp;quot;double-link&amp;quot; href=&amp;quot;https://git&quot;&gt;&amp;lt;a class=&lt;/a&gt;hub.com/afuh/rick-and-morty-api-node/commit/ecf9aeb9927221ad2d2581c15143448f4107810e&quot;&gt;ecf9aeb99&lt;/a&gt;&lt;a href=&quot;https://github.com/afuh/rick-and-morty-api-node/commit/ecf9aeb9927221ad2d2581c15143448f4107810e&quot;&gt;&amp;lt;a href=&amp;quot;https://github.com/afuh/rick-and-morty-api-node/commit/ecf9aeb9927221ad2d2581c... (continued)
Pull Request #32: types: re-export interfaces

32 of 32 branches covered (100.0%)

Branch coverage included in aggregate %.

47 of 47 relevant lines covered (100.0%)

7.89 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/src/utils/generateQueryString.ts
1
import { GetResource } from './getResource'
2

3
export const errorMessage = {
5✔
4
  required: 'You are using an invalid argument. As an argument use an integer (Id) or an array of integers (Ids).',
5
  optional: 'You are using an invalid argument. As an argument use a filter object or leave it blank.',
6
}
7

8
const isInteger = (val: unknown) => typeof val === 'number' && Number.isInteger(val)
27✔
9

10
export const isArrayOfIntegers = (val: unknown): boolean => Array.isArray(val) && val.every(isInteger)
12✔
11

12
const generateQueryString = (query: GetResource['options'], isIdRequired?: boolean): string => {
5✔
13
  if (isIdRequired && isInteger(query)) {
28✔
14
    return `/${query}`
4✔
15
  }
16

17
  if (isIdRequired && isArrayOfIntegers(query)) {
24✔
18
    const arrayOfIds = query as number[]
5✔
19

20
    /**
21
     * [0] forces the API to return an empty array.
22
     * This should be addressed in the next API codebase update.
23
     */
24
    return `/${arrayOfIds.length ? arrayOfIds : '[0]'}`
5✔
25
  }
26

27
  if (!isIdRequired && typeof query === 'object' && !Array.isArray(query)) {
19✔
28
    const params = new URLSearchParams(query as Record<string, string>).toString()
12✔
29
    return `/?${params}`
12✔
30
  }
31

32
  throw new Error(errorMessage[isIdRequired ? 'required' : 'optional'])
7✔
33
}
34

35
export default generateQueryString
5✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc