Aller à la documentation
SDK

Types et utilitaires

Ce que le paquet exporte par ailleurs.

Exports à l'exécution

ExportCe que c'est
`init`, `openemail`Configurez le client partagé une fois, puis importez openemail n'importe où. Il se construit tout seul à partir de OPENEMAIL_API_KEY si init n'a jamais été appelé.
`getClient`, `resetClient`Le client partagé lui-même, et un moyen de l'abandonner pour que l'appel suivant en construise un neuf, ce qu'un test veut entre deux cas.
`createOpenEmail`, `createClient`, `OpenEmail`Un client distinct. createOpenEmail lit l'environnement pour tout ce que vous omettez (createClient est la même fonction), et new OpenEmail (également l'export par défaut) ne prend que ce que vous lui passez.
`createTempMail`Un client de boîte jetable qui ne porte aucune clé API, et la seule partie du paquet qui fonctionne dans un navigateur.
`OpenEmailApiError`, `OpenEmailNetworkError`Les deux classes d'erreur.
`verifyWebhookSignature`À temps constant, avec une fenêtre de rejeu. Résout avec la charge utile analysée et lève une erreur au moindre échec.
`toBase64`Par blocs, pour les octets des pièces jointes.
`isApiKey`Indique si une chaîne a la forme oe_live_ ou oe_test_. Une vérification de forme, pas une preuve que la clé fonctionne encore.
`isSealed`, `MESSAGE_ENCRYPTION_FORMATS`Indique si le corps d'un message est du chiffré, et les cinq enveloppes que l'ingestion peut nommer. isSealed vaut false pour les deux formats SIGNED, dont les corps sont arrivés en clair : c'est pourquoi il est fourni plutôt que laissé à l'appelant, qui devrait le déduire de l'union.
`LANGUAGES`, `resolveLanguage`, `languageByCode`, `isRtlLanguage`La table de langues intégrée, et les fonctions de recherche dont un sélecteur de langue a besoin.
`API_SCOPES`Le vocabulaire des portées, pour un écran de création de clé.
`WEBHOOK_EVENTS`, `WEBHOOK_SIGNATURE_HEADERS`Les événements auxquels un endpoint peut s'abonner, et les noms des en-têtes que porte une livraison.
`RULE_FIELDS`, `RULE_OPERATORS`, `RULE_ACTIONS`Le vocabulaire à partir duquel se construisent les conditions et les actions d'une règle.
`PAGE_LIMITS`La valeur maximale et la valeur par défaut de limit sur une liste paginée : 100 et 25.
`ERROR_TYPES`Le vocabulaire figé des erreurs.
`VERSION`La version du paquet.

Types

Chaque requête et chaque réponse en a un, et ils sont exportés depuis la racine du paquet. Il n'y a pas d'imports profonds : l'agencement des fichiers reste donc un détail d'implémentation qui peut bouger sans version majeure. …Resource est ce que l'API renvoie, …Create, …Patch, …Input et …Send sont ce que vous passez, et …Options regroupe les filtres et les options propres à un appel.

  • Client : ClientOptions, TempMailOptions, TransportOptions, RequestOptions, RequestScope, SendScope, InboxScope, ListOptions, Page, ApiKeyMode, FetchLike.
  • Erreurs : ErrorType, ApiErrorPayload, ApiErrorProps.
  • E-mails : EmailSend, EmailListOptions, EmailTranslate, EmailResource, SentEmailResource, EmailRecipientResource, EmailEventResource, EmailStatus, EmailSource, EmailTransport, EmailTrackingSummary, EmailTranslationResource, TranslationResource, RecipientStatus, BatchItemResource, BatchResultResource.
  • Modèles : TemplateCreate, TemplatePatch, TemplateContent, TemplateListOptions, TemplatePreviewInput, TemplateSend, TemplateResource, TemplateDetailResource, TemplateVersionResource, TemplatePreviewResource, SentTemplateEmailResource, DeletedTemplateResource, TemplateEngine, TemplateProp, TemplateSlot, TemplateStatus, TemplateValueKind.
  • Suivi : TrackingListOptions, TrackingStatsOptions, TrackingHitOptions, TrackingResource, TrackingSummary, TrackingRecipientResource, TrackingLinkResource, TrackingOpenResource, TrackingClickResource, TrackingStatsResource, TrackingGrain.
  • Conversations et brouillons : ThreadListOptions, ThreadPatch, ThreadResource, ThreadSummaryResource, UpdatedThreadResource, TrashedThreadResource, SnoozedThreadResource, DraftInput, DraftListOptions, DraftResource, DraftSummaryResource, SavedDraftResource, DeletedDraftResource.
  • Libellés, contacts, domaines et adresses : LabelInput, LabelColor, LabelResource, SavedLabelResource, DeletedLabelResource, ContactCreate, ContactPatch, ContactListOptions, ContactSource, ContactResource, ContactDetailResource, ContactAudienceResource, DeletedContactResource, DomainPatch, DomainResource, DomainDetailResource, DomainSendingState, DomainTracking, DomainTrackingState, AddressBookResource, AddressResource, SendableDomainResource.
  • Règles : RuleCreate, RulePatch, RuleListOptions, RuleRunListOptions, RuleTestInput, RuleResource, RuleRunResource, RuleTestResource, DeletedRuleResource, RuleCondition, RuleConditionInput, RuleAction, RuleActionType, RuleField, RuleOperator.
  • Webhooks : WebhookCreate, WebhookPatch, WebhookResource, CreatedWebhookResource, DeletedWebhookResource, WebhookDeliveryResource, WebhookTestResource, WebhookEvent, WebhookPayload, EmailOpenedData, EmailClickedData, EmailDownloadedData, VerifyWebhookProps, WebhookSignatureHeaders.
  • Calendrier et paramètres : CalendarRangeOptions, CalendarOccurrenceResource, CalendarEventResource, CalendarAttendeeResource, SettingsPatch, SettingsResource.
  • Rôles, membres et clés : RoleCreate, RolePatch, RoleDeleteOptions, RoleResource, DeletedRoleResource, PermissionResource, MemberAdd, MemberPatch, MemberAddressGrant, MemberResource, MemberAddressResource, RemovedMemberResource, MemberAccess, KeyResource, PingResource.
  • Boîtes jetables : TempInboxCreate, TempMessageListOptions, TempInboxResource, CreatedTempInboxResource, DeletedTempInboxResource, TempDomainResource, TempMessageResource, TempMessagesResource, TempMessageDetailResource, DeletedTempMessageResource.
  • Partagés : RecipientInput, AttachmentInput, AttachmentResource, MessageResource, MessageEncryption, MessageEncryptionFormat, TrackingRequest, TranslateOptions, SendTranslateOptions, LanguageResource, ApiScope, Permission, BuiltinRole, HitKind.

Un endpoint que ceci n'encapsule pas encore

Une version du SDK ne devrait jamais s'interposer entre vous et un endpoint qui fonctionne déjà. openemail.raw.request() prend un chemin et des options, et résout avec le corps analysé, en appliquant la clé, l'URL de base, le délai d'expiration et la politique de réessai du client.

escape-hatch.ts
const result = await openemail.raw.request<Whatever>('/something-new', {  method: 'POST',  query: { dryRun: true },  body: { name: 'Invoices' },  repeatable: true,})

Un GET est réessayé comme n'importe quelle lecture. Toute autre méthode n'est envoyée qu'une fois, sauf si vous passez repeatable: true, qui est votre affirmation qu'elle peut être envoyée deux fois. query ignore les valeurs undefined, et signal se comporte comme sur toutes les autres méthodes.

Ce qu'il ne fait délibérément pas

  • Il ne valide aucun corps de requête. Le schéma du serveur est l'unique copie des règles ; une seconde copie ici finirait par refuser une adresse qu'un serveur plus récent accepte, dans une version que quelqu'un a épinglée deux ans plus tôt.
  • Il n'embarque ni zod ni la moindre dépendance à l'exécution.
  • Il ne remodèle une réponse que d'une seule façon : le tableau data d'une collection est sorti de son enveloppe. Une liste paginée le restitue sous items, à côté de hasMore et nextCursor ; emails.sendBatch sous items, à côté de sent et failed ; tempMail.listMessages sous items, à côté de expiresAt ; et addresses.list sous addresses, à côté de unrestricted et domains. Partout ailleurs, c'est un simple tableau. Chaque ressource qu'il contient conserve la forme HTTP documentée.

Le contrôle de parité du paquet maintient tout cela honnête. Il fait échouer le build lorsqu'une opération documentée n'a pas de méthode, lorsqu'une méthode pointe vers une opération absente du document OpenAPI ou envoie une requête différente, et lorsqu'une méthode déclare des portées que l'opération n'exige pas.