Typy a pomocné funkce
Co dalšího balíček exportuje.
Runtime exporty
| Export | Co 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í.
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
datau kolekce vyzvedne z jeho obálky. Stránkovaný seznam ho vrací jakoitemsvedlehasMoreanextCursor,emails.sendBatchjakoitemsvedlesentafailed,tempMail.listMessagesjakoitemsvedleexpiresAtaaddresses.listjakoaddressesvedleunrestrictedadomains. 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.