Ga direct naar de documentatie
SDK

Types en helpers

Wat het package verder exporteert.

Runtime-exports

ExportWat het is
`init`, `openemail`Configureer de gedeelde client één keer en importeer openemail daarna overal. Hij bouwt zichzelf op uit OPENEMAIL_API_KEY als init nooit gedraaid heeft.
`getClient`, `resetClient`De gedeelde client zelf, en een manier om hem weg te gooien zodat de volgende aanroep een verse bouwt, wat een test tussen twee cases nodig heeft.
`createOpenEmail`, `createClient`, `OpenEmail`Een aparte client. createOpenEmail leest alles wat je weglaat uit de omgeving (createClient is dezelfde functie), en new OpenEmail (tevens de default export) neemt alleen wat je zelf meegeeft.
`createTempMail`Een client voor wegwerpinboxen die geen API-sleutel meedraagt, en het enige deel van het package dat in een browser draait.
`OpenEmailApiError`, `OpenEmailNetworkError`De twee foutklassen.
`verifyWebhookSignature`Vergelijkt in constante tijd, met een replay-venster. Resolvet naar de geparste payload en gooit een fout zodra er iets misgaat.
`toBase64`In blokken, voor de bytes van bijlagen.
`isApiKey`Of een string de vorm oe_live_ of oe_test_ heeft. Een vormcontrole, geen bewijs dat de sleutel nog werkt.
`isSealed`, `MESSAGE_ENCRYPTION_FORMATS`Of de body van een bericht ciphertext is, en de vijf envelopes die ingest kan noemen. isSealed is false voor de twee SIGNED-formaten, waarvan de bodies onversleuteld binnenkwamen, en daarom wordt de helper meegeleverd in plaats van hem aan de aanroeper over te laten om uit de union af te leiden.
`LANGUAGES`, `resolveLanguage`, `languageByCode`, `isRtlLanguage`De meegeleverde taaltabel, en de lookups die een taalkiezer nodig heeft.
`API_SCOPES`Het scope-vocabulaire, voor een scherm waarop sleutels worden aangemaakt.
`WEBHOOK_EVENTS`, `WEBHOOK_SIGNATURE_HEADERS`De events waarop een endpoint zich kan abonneren, en de namen van de headers die een delivery meedraagt.
`RULE_FIELDS`, `RULE_OPERATORS`, `RULE_ACTIONS`Het vocabulaire waaruit de condities en acties van een regel worden opgebouwd.
`PAGE_LIMITS`De grootste en de standaard limit op een gepagineerde lijst: 100 en 25.
`ERROR_TYPES`Het bevroren foutvocabulaire.
`VERSION`De versie van het package.

Types

Elk request en elke response heeft er een, en ze worden geëxporteerd vanaf de root van het package. Er zijn geen deep imports, dus de bestandsindeling blijft een implementatiedetail dat kan verschuiven zonder een major versie. …Resource is wat de API teruggeeft, …Create, …Patch, …Input en …Send zijn wat je meegeeft, en …Options bevat filters en opties per aanroep.

  • Client: ClientOptions, TempMailOptions, TransportOptions, RequestOptions, RequestScope, SendScope, InboxScope, ListOptions, Page, ApiKeyMode, FetchLike.
  • Fouten: ErrorType, ApiErrorPayload, ApiErrorProps.
  • E-mails: EmailSend, EmailListOptions, EmailTranslate, EmailResource, SentEmailResource, EmailRecipientResource, EmailEventResource, EmailStatus, EmailSource, EmailTransport, EmailTrackingSummary, EmailTranslationResource, TranslationResource, RecipientStatus, BatchItemResource, BatchResultResource.
  • Templates: TemplateCreate, TemplatePatch, TemplateContent, TemplateListOptions, TemplatePreviewInput, TemplateSend, TemplateResource, TemplateDetailResource, TemplateVersionResource, TemplatePreviewResource, SentTemplateEmailResource, DeletedTemplateResource, TemplateEngine, TemplateProp, TemplateSlot, TemplateStatus, TemplateValueKind.
  • Tracking: TrackingListOptions, TrackingStatsOptions, TrackingHitOptions, TrackingResource, TrackingSummary, TrackingRecipientResource, TrackingLinkResource, TrackingOpenResource, TrackingClickResource, TrackingStatsResource, TrackingGrain.
  • Threads en concepten: ThreadListOptions, ThreadPatch, ThreadResource, ThreadSummaryResource, UpdatedThreadResource, TrashedThreadResource, SnoozedThreadResource, DraftInput, DraftListOptions, DraftResource, DraftSummaryResource, SavedDraftResource, DeletedDraftResource.
  • Labels, contacten, domeinen en adressen: LabelInput, LabelColor, LabelResource, SavedLabelResource, DeletedLabelResource, ContactCreate, ContactPatch, ContactListOptions, ContactSource, ContactResource, ContactDetailResource, ContactAudienceResource, DeletedContactResource, DomainPatch, DomainResource, DomainDetailResource, DomainSendingState, DomainTracking, DomainTrackingState, AddressBookResource, AddressResource, SendableDomainResource.
  • Regels: 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.
  • Agenda en instellingen: CalendarRangeOptions, CalendarOccurrenceResource, CalendarEventResource, CalendarAttendeeResource, SettingsPatch, SettingsResource.
  • Rollen, leden en sleutels: RoleCreate, RolePatch, RoleDeleteOptions, RoleResource, DeletedRoleResource, PermissionResource, MemberAdd, MemberPatch, MemberAddressGrant, MemberResource, MemberAddressResource, RemovedMemberResource, MemberAccess, KeyResource, PingResource.
  • Wegwerpinboxen: TempInboxCreate, TempMessageListOptions, TempInboxResource, CreatedTempInboxResource, DeletedTempInboxResource, TempDomainResource, TempMessageResource, TempMessagesResource, TempMessageDetailResource, DeletedTempMessageResource.
  • Gedeeld: RecipientInput, AttachmentInput, AttachmentResource, MessageResource, MessageEncryption, MessageEncryptionFormat, TrackingRequest, TranslateOptions, SendTranslateOptions, LanguageResource, ApiScope, Permission, BuiltinRole, HitKind.

Een endpoint dat hier nog niet omhuld is

Een SDK-release mag nooit datgene zijn wat tussen jou en een endpoint staat dat al werkt. openemail.raw.request() neemt een pad en opties en resolvet naar de geparste body, met de sleutel, base-URL, timeout en retry-policy van de client toegepast.

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

Een GET wordt opnieuw geprobeerd zoals elke andere leesactie. Elke andere methode wordt één keer verstuurd, tenzij je repeatable: true meegeeft, waarmee jij verklaart dat hij twee keer verstuurd mag worden. query slaat waarden over die undefined zijn, en signal werkt zoals bij elke andere methode.

Wat het bewust niet doet

  • Het valideert geen enkele request-body. Het schema van de server is de enige kopie van de regels, en een tweede kopie hier zou vroeg of laat een adres weigeren dat een nieuwere server wel accepteert, in een versie die iemand twee jaar geleden heeft vastgezet.
  • Het levert geen zod mee en helemaal geen runtime-dependencies.
  • Het hervormt een response op precies één manier: de data-array van een collectie wordt uit zijn envelope getild. Een gepagineerde lijst geeft hem terug als items naast hasMore en nextCursor, emails.sendBatch als items naast sent en failed, tempMail.listMessages als items naast expiresAt, en addresses.list als addresses naast unrestricted en domains. Overal elders is het een gewone array. Elke resource daarbinnen behoudt de gedocumenteerde HTTP-vorm.

De pariteitscontrole van het package houdt dit eerlijk. Die laat de build falen wanneer een gedocumenteerde operatie geen methode heeft, wanneer een methode wijst naar een operatie die het OpenAPI-document niet kent of een ander request verstuurt, en wanneer een methode scopes declareert die de operatie niet vereist.