← Public packages
@kody/mailroom
Offline-first PWA for your Kody mailbox: sent and received threads, copy-prompt for agents, no send.
src/list.ts
27 lines · 898 B · TypeScriptimport { listMail } from './mail.ts'
import { filterThreads, groupMessages } from './threads.ts'
import type { MailDirection, MailThread } from './types.ts'
/**
* List the package owner's mailbox as threads, newest first.
* Received uses inbound messages; Sent uses outbound. No send.
*
* @example
* import list from 'kody:@kody/mailroom/list'
*
* const { threads } = await list({ direction: 'inbound', limit: 50 })
*/
export default async function list(input: {
direction?: MailDirection
query?: string
limit?: number
} = {}): Promise<{ direction: MailDirection; threads: Array<MailThread> }> {
const direction = input.direction === 'outbound' ? 'outbound' : 'inbound'
const messages = await listMail({
direction,
query: input.query,
limit: input.limit,
})
const threads = filterThreads(groupMessages(messages, direction), input.query || '')
return { direction, threads }
}