Skip to content

Commit 2848030

Browse files
committed
refactor: move data query helper into params
1 parent 258dd76 commit 2848030

7 files changed

Lines changed: 29 additions & 36 deletions

File tree

packages/client/src/actions/activity.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { unwrap } from '@polymarket/types';
1010
import { z } from 'zod';
1111
import { parseUserInput } from '../input';
1212
import type { PolymarketClient } from '../PolymarketClient';
13-
import { toDataSearchParams } from './dataParams';
13+
import { toDataSearchParams } from './params';
1414

1515
const ActivitySortBySchema = z.enum(['TIMESTAMP', 'TOKENS', 'CASH']);
1616
const SortDirectionSchema = z.enum(['ASC', 'DESC']);

packages/client/src/actions/dataParams.ts

Lines changed: 0 additions & 29 deletions
This file was deleted.

packages/client/src/actions/events.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ import { unwrap } from '@polymarket/types';
1717
import { z } from 'zod';
1818
import { parseUserInput } from '../input';
1919
import type { PolymarketClient } from '../PolymarketClient';
20-
import { toDataSearchParams } from './dataParams';
21-
import { snakeCase, toSearchParams } from './params';
20+
import { snakeCase, toDataSearchParams, toSearchParams } from './params';
2221

2322
const ListEventsRequestSchema = z.object({
2423
ascending: z.boolean().optional(),

packages/client/src/actions/leaderboards.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { unwrap } from '@polymarket/types';
1313
import { z } from 'zod';
1414
import { parseUserInput } from '../input';
1515
import type { PolymarketClient } from '../PolymarketClient';
16-
import { toDataSearchParams } from './dataParams';
16+
import { toDataSearchParams } from './params';
1717

1818
const ListBuilderLeaderboardRequestSchema = z.object({
1919
timePeriod: TimePeriodSchema.optional(),

packages/client/src/actions/markets.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ import { unwrap } from '@polymarket/types';
1818
import { z } from 'zod';
1919
import { parseUserInput } from '../input';
2020
import type { PolymarketClient } from '../PolymarketClient';
21-
import { toDataSearchParams } from './dataParams';
22-
import { snakeCase, toSearchParams } from './params';
21+
import { snakeCase, toDataSearchParams, toSearchParams } from './params';
2322

2423
// The public markets endpoint forces active=true and archived=false server-side.
2524
const ListMarketsRequestSchema = z.object({

packages/client/src/actions/params.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,30 @@ export function snakeCase<TParams extends SearchParamsInput>(
5757
};
5858
}
5959

60+
/**
61+
* Data endpoints use camelCase query keys and comma-separated arrays.
62+
*/
63+
export function toDataSearchParams<TParams extends SearchParamsInput>(
64+
params: TParams,
65+
): URLSearchParams {
66+
const searchParams = new URLSearchParams();
67+
68+
for (const [key, value] of Object.entries(params)) {
69+
if (value === undefined) {
70+
continue;
71+
}
72+
73+
if (Array.isArray(value)) {
74+
searchParams.append(key, value.map(toSearchParamValue).join(','));
75+
continue;
76+
}
77+
78+
searchParams.append(key, toSearchParamValue(value as SearchParamPrimitive));
79+
}
80+
81+
return searchParams;
82+
}
83+
6084
function isSnakeCaseSearchParamMappings(
6185
mappings:
6286
| SearchParamMappings<SearchParamsInput>

packages/client/src/actions/portfolio.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { unwrap } from '@polymarket/types';
1212
import { z } from 'zod';
1313
import { parseUserInput } from '../input';
1414
import type { PolymarketClient } from '../PolymarketClient';
15-
import { toDataSearchParams } from './dataParams';
15+
import { toDataSearchParams } from './params';
1616

1717
const PositionSortBySchema = z.enum([
1818
'CURRENT',

0 commit comments

Comments
 (0)