Skip to content

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

Package listing

@kody/kit

src/scheduled-account-health.ts

31 lines · 1.0 KB · TypeScript
import { getAccount, getAccountGrowthStats } from './account.ts'
import { listBroadcasts } from './broadcasts.ts'
import { listSequences } from './sequences.ts'
import { listSubscribers } from './subscribers.ts'

/**
 * No-argument scheduled wrapper. Reads account health only — no writes and
 * no sends. The `account-health` job is **disabled** by default.
 * @example
 * import scheduledAccountHealth from 'kody:@kody/kit/scheduled-account-health'
 * const snapshot = await scheduledAccountHealth()
 */
export default async function scheduledAccountHealth() {
	const [account, growth, broadcasts, sequences, subscribers] = await Promise.all([
		getAccount(),
		getAccountGrowthStats().catch((error: unknown) => ({
			skipped: true,
			reason: error instanceof Error ? error.message : String(error),
		})),
		listBroadcasts({ maxItems: 5 }),
		listSequences({ maxItems: 5 }),
		listSubscribers({ maxItems: 5 }),
	])
	return {
		account,
		growth,
		broadcastCount: broadcasts.length,
		sequenceCount: sequences.length,
		subscriberSampleCount: subscribers.length,
	}
}