Skip to content

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

Package listing

@kody/reddit

src/index.ts

67 lines · 1.6 KB · TypeScript
import {
	REDDIT_AUTHORIZE_URL,
	REDDIT_CALLBACK_URL,
	REDDIT_CONNECT_URL,
	REDDIT_SCOPES,
	REDDIT_TOKEN_URL,
	REDDIT_USER_AGENT,
	byoConnectUrl,
} from './request.ts'

export {
	RedditApiError,
	accounts,
	getListing,
	getMe,
	getPost,
	getSubreddit,
	getUser,
	redditRequest,
	request,
	resolveIntegration,
	searchReddit,
	smokeTest,
	submitComment,
	submitPost,
	vote,
} from './client.ts'

/**
 * Return Reddit package discovery metadata: utilities, auth, and safety notes.
 */
export default async function redditOverview() {
	return {
		package: '@kody/reddit',
		description:
			'Read Reddit subreddits, listings, search, and users, and preview guarded writes through saved OAuth.',
		integration: 'reddit',
		auth: "createAuthenticatedFetch('reddit') plus Reddit User-Agent on oauth.reddit.com",
		callbackUrl: REDDIT_CALLBACK_URL,
		connectUrl: REDDIT_CONNECT_URL,
		byoConnectUrl: byoConnectUrl(),
		authorizeUrl: REDDIT_AUTHORIZE_URL,
		tokenUrl: REDDIT_TOKEN_URL,
		scopes: [...REDDIT_SCOPES],
		userAgent: REDDIT_USER_AGENT,
		utilities: [
			'accounts',
			'smoke-test',
			'get-me',
			'get-subreddit',
			'get-listing',
			'search',
			'get-user',
			'get-post',
			'request',
			'submit-post',
			'submit-comment',
			'vote',
		],
		importPattern: "import utility from 'kody:@kody/reddit/<utility-name>'",
		paramsNote: 'When importing from Kody execute, pass utility input as the function argument.',
		reconnectUrl: REDDIT_CONNECT_URL,
		jobs: false,
		safety: 'Write helpers require params.confirm = true unless params.dryRun = true.',
		identity: 'Resolved from /api/v1/me. Do not hard-code a Reddit username.',
	}
}