import { requireRecord, requireStringField, vote } from './client.ts' import type { VoteInput } from './client.ts' /** * Cast or dry-run a Reddit upvote, downvote, or clear. Voting requires confirm: true. * @example * import vote from 'kody:@kody/reddit/vote' * const preview = await vote({ id: 't3_abc123', direction: 'up', dryRun: true }) * // => { dryRun: true, method: 'POST', url: 'https://oauth.reddit.com/api/vote', requiresConfirm: true } */ export default async function voteEntrypoint( params: Partial & Record = {}, ) { const input = requireRecord(params, 'vote') requireStringField(input, 'id', 'vote') if (input.direction === undefined || input.direction === null || input.direction === '') { throw new Error('vote requires params.direction.') } return vote(input as VoteInput) }