Přejít na dokumentaci
SDK

Typy a pomocné funkce

Co dalšího balíček exportuje.

Runtime exporty

ExportCo to je
`init`, `openemail`Nakonfigurujte sdíleného klienta jednou a pak openemail importujte kdekoli. Pokud init nikdy neproběhl, sestaví se sám z OPENEMAIL_API_KEY.
`getClient`, `resetClient`Samotný sdílený klient a způsob, jak ho zahodit, aby další volání sestavilo nový – což je přesně to, co potřebuje test mezi jednotlivými případy.
`createOpenEmail`, `createClient`, `OpenEmail`Samostatný klient. createOpenEmail dočte cokoli, co vynecháte, z prostředí (createClient je tatáž funkce), zatímco new OpenEmail (zároveň výchozí export) bere jen to, co mu předáte.
`createTempMail`Klient pro jednorázové schránky, který nenese žádný API klíč, a jediná část balíčku, která běží v prohlížeči.
`OpenEmailApiError`, `OpenEmailNetworkError`Obě třídy chyb.
`verifyWebhookSignature`Porovnání v konstantním čase, s oknem proti replay útokům. Resolvuje na naparsovaný payload a při jakémkoli selhání vyhodí výjimku.
`toBase64`Po blocích, pro bajty příloh.
`isApiKey`Zda řetězec má tvar oe_live_ nebo oe_test_. Kontrola tvaru, nikoli důkaz, že klíč ještě funguje.
`isSealed`, `MESSAGE_ENCRYPTION_FORMATS`Zda je tělo zprávy šifrovaný text, a pět obálek, které umí příjem pojmenovat. Pro oba formáty SIGNED je isSealed false, protože jejich těla dorazila nešifrovaná – proto se dodává, místo aby si ho volající odvozoval z unionu sám.
`LANGUAGES`, `resolveLanguage`, `languageByCode`, `isRtlLanguage`Přibalená tabulka jazyků a vyhledávací funkce, které potřebuje přepínač jazyka.
`API_SCOPES`Slovník scopes, pro obrazovku vytváření klíče.
`WEBHOOK_EVENTS`, `WEBHOOK_SIGNATURE_HEADERS`Události, k nimž se endpoint může přihlásit, a názvy hlaviček, které doručení nese.
`RULE_FIELDS`, `RULE_OPERATORS`, `RULE_ACTIONS`Slovník, z něhož se skládají podmínky a akce pravidla.
`PAGE_LIMITS`Největší a výchozí limit stránkovaného seznamu: 100 a 25.
`ERROR_TYPES`Zmrazený slovník chyb.
`VERSION`Verze balíčku.

Typy

Každý požadavek i odpověď svůj typ má a všechny se exportují z kořene balíčku. Žádné hluboké importy neexistují, takže rozvržení souborů zůstává implementačním detailem, který se může měnit bez major verze. …Resource je to, co API vrací, …Create, …Patch, …Input a …Send je to, co předáváte, a …Options nese filtry a volby jednotlivého volání.

  • Klient: ClientOptions, TempMailOptions, TransportOptions, RequestOptions, RequestScope, SendScope, InboxScope, ListOptions, Page, ApiKeyMode, FetchLike.
  • Chyby: ErrorType, ApiErrorPayload, ApiErrorProps.
  • E-maily: EmailSend, EmailListOptions, EmailTranslate, EmailResource, SentEmailResource, EmailRecipientResource, EmailEventResource, EmailStatus, EmailSource, EmailTransport, EmailTrackingSummary, EmailTranslationResource, TranslationResource, RecipientStatus, BatchItemResource, BatchResultResource.
  • Šablony: TemplateCreate, TemplatePatch, TemplateContent, TemplateListOptions, TemplatePreviewInput, TemplateSend, TemplateResource, TemplateDetailResource, TemplateVersionResource, TemplatePreviewResource, SentTemplateEmailResource, DeletedTemplateResource, TemplateEngine, TemplateProp, TemplateSlot, TemplateStatus, TemplateValueKind.
  • Sledování: TrackingListOptions, TrackingStatsOptions, TrackingHitOptions, TrackingResource, TrackingSummary, TrackingRecipientResource, TrackingLinkResource, TrackingOpenResource, TrackingClickResource, TrackingStatsResource, TrackingGrain.
  • Konverzace a koncepty: ThreadListOptions, ThreadPatch, ThreadResource, ThreadSummaryResource, UpdatedThreadResource, TrashedThreadResource, SnoozedThreadResource, DraftInput, DraftListOptions, DraftResource, DraftSummaryResource, SavedDraftResource, DeletedDraftResource.
  • Štítky, kontakty, domény a adresy: LabelInput, LabelColor, LabelResource, SavedLabelResource, DeletedLabelResource, ContactCreate, ContactPatch, ContactListOptions, ContactSource, ContactResource, ContactDetailResource, ContactAudienceResource, DeletedContactResource, DomainPatch, DomainResource, DomainDetailResource, DomainSendingState, DomainTracking, DomainTrackingState, AddressBookResource, AddressResource, SendableDomainResource.
  • Pravidla: RuleCreate, RulePatch, RuleListOptions, RuleRunListOptions, RuleTestInput, RuleResource, RuleRunResource, RuleTestResource, DeletedRuleResource, RuleCondition, RuleConditionInput, RuleAction, RuleActionType, RuleField, RuleOperator.
  • Webhooky: WebhookCreate, WebhookPatch, WebhookResource, CreatedWebhookResource, DeletedWebhookResource, WebhookDeliveryResource, WebhookTestResource, WebhookEvent, WebhookPayload, EmailOpenedData, EmailClickedData, EmailDownloadedData, VerifyWebhookProps, WebhookSignatureHeaders.
  • Kalendář a nastavení: CalendarRangeOptions, CalendarOccurrenceResource, CalendarEventResource, CalendarAttendeeResource, SettingsPatch, SettingsResource.
  • Role, členové a klíče: RoleCreate, RolePatch, RoleDeleteOptions, RoleResource, DeletedRoleResource, PermissionResource, MemberAdd, MemberPatch, MemberAddressGrant, MemberResource, MemberAddressResource, RemovedMemberResource, MemberAccess, KeyResource, PingResource.
  • Jednorázové schránky: TempInboxCreate, TempMessageListOptions, TempInboxResource, CreatedTempInboxResource, DeletedTempInboxResource, TempDomainResource, TempMessageResource, TempMessagesResource, TempMessageDetailResource, DeletedTempMessageResource.
  • Sdílené: RecipientInput, AttachmentInput, AttachmentResource, MessageResource, MessageEncryption, MessageEncryptionFormat, TrackingRequest, TranslateOptions, SendTranslateOptions, LanguageResource, ApiScope, Permission, BuiltinRole, HitKind.

Endpoint, který tohle zatím neobaluje

Vydání SDK by nikdy nemělo stát mezi vámi a endpointem, který už funguje. openemail.raw.request() bere cestu a volby a resolvuje na naparsované tělo, s uplatněným klíčem klienta, base URL, timeoutem a politikou opakování.

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

GET se opakuje jako každé jiné čtení. Jakákoli jiná metoda se odešle jen jednou, pokud nepředáte repeatable: true, čímž tvrdíte, že ji lze odeslat dvakrát. query vynechává hodnoty, které jsou undefined, a signal funguje stejně jako u každé jiné metody.

Co záměrně nedělá

  • Nevaliduje žádné tělo požadavku. Schéma serveru je jediná kopie pravidel a druhá kopie tady by jednou odmítla adresu, kterou novější server přijímá – ve verzi, kterou si někdo před dvěma lety zafixoval.
  • Nedodává žádný zod ani žádné runtime závislosti.
  • Odpověď přetváří jediným způsobem: pole data u kolekce vyzvedne z jeho obálky. Stránkovaný seznam ho vrací jako items vedle hasMore a nextCursor, emails.sendBatch jako items vedle sent a failed, tempMail.listMessages jako items vedle expiresAt a addresses.list jako addresses vedle unrestricted a domains. Všude jinde je to prosté pole. Každý zdroj uvnitř si zachovává dokumentovaný tvar HTTP.

Poctivost tohoto přístupu hlídá kontrola parity v balíčku. Shodí build, když dokumentovaná operace nemá metodu, když metoda míří na operaci, kterou dokument OpenAPI nezná, nebo posílá jiný požadavek, a když metoda deklaruje scopes, které operace nevyžaduje.