Skip to content

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

Package listing

@kentcdodds/producthunt

src/index.ts

70 lines · 1.5 KB · TypeScript
import {
	PRODUCTHUNT_ACCESS_TOKEN_SECRET,
	PRODUCTHUNT_CLIENT_SECRET_SECRET,
	PRODUCTHUNT_GRAPHQL_URL,
	PRODUCTHUNT_INTEGRATION,
} from './request.ts'
import { getConnectUrl, getSetupGuide } from './guide.ts'

/**
 * Return helper discovery metadata for kody:@kentcdodds/producthunt.
 */
export default async function productHuntToolkitOverview() {
	return {
		package: '@kentcdodds/producthunt',
		kodyId: 'producthunt',
		integration: PRODUCTHUNT_INTEGRATION,
		apiBaseUrl: PRODUCTHUNT_GRAPHQL_URL,
		auth: {
			accessTokenSecret: PRODUCTHUNT_ACCESS_TOKEN_SECRET,
			clientSecretSecret: PRODUCTHUNT_CLIENT_SECRET_SECRET,
			flow: 'confidential',
			scopes: ['public', 'private'],
		},
		connectUrl: getConnectUrl(),
		setup: getSetupGuide(),
		exports: [
			'types',
			'request',
			'smoke-test',
			'guide',
			'get-viewer',
			'get-user',
			'get-post',
			'list-posts',
			'list-comments',
			'get-collection',
			'list-collections',
			'get-topic',
			'list-topics',
		],
	}
}

export {
	PRODUCTHUNT_ACCESS_TOKEN_SECRET,
	PRODUCTHUNT_APPLICATIONS_URL,
	PRODUCTHUNT_AUTHORIZE_URL,
	PRODUCTHUNT_CLIENT_SECRET_SECRET,
	PRODUCTHUNT_GRAPHQL_URL,
	PRODUCTHUNT_INTEGRATION,
	PRODUCTHUNT_TOKEN_URL,
	ProductHuntRequestError,
	getProductHuntAuthenticatedFetch,
	request,
} from './request.ts'
export {
	clampPageSize,
	getCollection,
	getPost,
	getTopic,
	getUser,
	getViewer,
	listCollections,
	listComments,
	listPosts,
	listTopics,
	runSmokeTest,
	unwrapConnection,
} from './domain.ts'
export { DEFAULT_KODY_ORIGIN, getConnectUrl, getSetupGuide } from './guide.ts'