import { parseAuthInput } from './auth.ts'
import { listTopics } from './domain.ts'
import {
optionalNumber,
optionalString,
optionalTopicsOrder,
requireRecord,
} from './types.ts'
/**
* List Product Hunt topics, optionally filtered by search query.
* @example
* import listTopics from 'kody:@kody/producthunt/list-topics'
* const page = await listTopics({ query: 'developer', first: 5 })
*/
export default async function listTopicsEntrypoint(
params: Record<string, unknown> = {},
) {
const input = requireRecord(params, 'list-topics')
return listTopics({
...parseAuthInput(input),
query: optionalString(input.query, 'query'),
followedByUserid: optionalString(input.followedByUserid, 'followedByUserid'),
order: optionalTopicsOrder(input.order),
first: optionalNumber(input.first, 'first'),
after: optionalString(input.after, 'after'),
})
}