Skip to content

Built for people who want to own their automations. Join the waitlist for an invite.

Package listing

@kody/reddit

src/submit-post.ts

23 lines · 869 B · TypeScript
import { requireRecord, requireStringField, submitPost } from './client.ts'
import type { SubmitPostInput } from './client.ts'

/**
 * Create or dry-run a Reddit self or link post. Publishing requires confirm: true.
 * @example
 * import submitPost from 'kody:@kody/reddit/submit-post'
 * const preview = await submitPost({
 *   subreddit: 'test',
 *   title: 'Hello from Kody',
 *   text: 'Draft body',
 *   dryRun: true,
 * })
 * // => { dryRun: true, method: 'POST', url: 'https://oauth.reddit.com/api/submit', requiresConfirm: true }
 */
export default async function submitPostEntrypoint(
	params: Partial<SubmitPostInput> & Record<string, unknown> = {},
) {
	const input = requireRecord(params, 'submit-post')
	requireStringField(input, 'subreddit', 'submit-post')
	requireStringField(input, 'title', 'submit-post')
	return submitPost(input as SubmitPostInput)
}