Skip to content

src/index.ts

54 lines · 1.3 KB · TypeScript
Raw
import {
	COMMAND_EXPORTS,
	DISCOVERY_EXPORTS,
	KODY_ID,
	PACKAGE_NAME,
	PUBLIC_URL,
	tokenSetupUrl,
} from './helpers.ts'

export type RaycastDescribeResult = {
	name: string
	kodyId: string
	description: string
	publicUrl: string
	tokenSetupUrl: string
	exports: string[]
	preferredAuth: 'minted-webhooks'
	configPath: string
	safety: {
		invokeSupportsDryRun: true
		jobsEnabledByDefault: false
		noBakedInTokens: true
		noPersonalPackageLists: true
	}
}

/**
 * Describe the official Raycast launcher package (execute commands + discovery).
 *
 * @returns Package metadata, share URL, and export names.
 *
 * @example
 * import describe from 'kody:@kody/raycast'
 * const info = await describe()
 */
export default async function describe(): Promise<RaycastDescribeResult> {
	return {
		name: PACKAGE_NAME,
		kodyId: KODY_ID,
		description:
			'Raycast launcher: store execute commands in package storage and run them over minted webhooks.',
		publicUrl: PUBLIC_URL,
		tokenSetupUrl: tokenSetupUrl(),
		exports: [...COMMAND_EXPORTS, ...DISCOVERY_EXPORTS],
		preferredAuth: 'minted-webhooks',
		configPath: '~/.config/kody/raycast.json',
		safety: {
			invokeSupportsDryRun: true,
			jobsEnabledByDefault: false,
			noBakedInTokens: true,
			noPersonalPackageLists: true,
		},
	}
}