Skip to content
← Public packages

@danj/hey-email

HEY.com email for Kody: search threads, read messages, download PDF attachments, and write drafts. Sending is barred until you allow it.

src/send.js

55 lines · 1.6 KB · JavaScript
Raw
import * as drafts from './drafts.js'

/**
 * Send a new HEY email. Same as `sendMessage` in `./drafts`.
 * While SENDING is 'barred', this returns the barred result and makes no
 * request. Save a draft instead of flipping SENDING.
 *
 * @param {{
 *   to: string|string[],
 *   subject: string,
 *   text?: string,
 *   html?: string,
 *   cc?: string|string[],
 *   bcc?: string|string[],
 *   confirm?: boolean,
 * }} input
 *
 * @example
 * import { sendMessage } from 'kody:@danj/hey-email/send'
 * const result = await sendMessage({ to: 'someone@example.com', subject: 'On my way', text: 'Leaving now.' })
 * // result.barred is true while SENDING is 'barred'
 */
export async function sendMessage(input) {
  return drafts.sendMessage(input)
}

/**
 * Send a reply on a thread, to the thread's direct recipients. Same as
 * `sendReply` in `./drafts`. While SENDING is 'barred', this returns the
 * barred result and makes no request.
 *
 * @param {{ entryId?: number|string, topicId?: number|string, text?: string, html?: string, subject?: string, confirm?: boolean }} input
 */
export async function sendReply(input) {
  return drafts.sendReply(input)
}

/**
 * Send an existing draft. Same as `sendDraft` in `./drafts`. While SENDING
 * is 'barred', this returns the barred result and makes no request.
 *
 * @param {{ id: number|string, to?: string|string[], confirm?: boolean }} input
 */
export async function sendDraft(input) {
  return drafts.sendDraft(input)
}

/**
 * Default export: `sendMessage`.
 *
 * @param {Parameters<typeof sendMessage>[0]} input
 */
export default async function send(input) {
  return drafts.sendMessage(input)
}