Przejdź do dokumentacji
SDK

Typy i funkcje pomocnicze

Co jeszcze eksportuje pakiet.

Eksporty runtime

EksportCo to jest
`init`, `openemail`Skonfiguruj współdzielonego klienta raz, a potem importuj openemail gdziekolwiek. Jeśli init nigdy się nie wykonało, klient zbuduje się sam na podstawie OPENEMAIL_API_KEY.
`getClient`, `resetClient`Sam współdzielony klient oraz sposób na jego porzucenie, tak by kolejne wywołanie zbudowało nowego — a tego właśnie potrzebuje test pomiędzy przypadkami.
`createOpenEmail`, `createClient`, `OpenEmail`Osobny klient. createOpenEmail odczytuje ze środowiska wszystko, czego nie podasz (createClient to ta sama funkcja), a new OpenEmail (będący też domyślnym eksportem) bierze wyłącznie to, co przekażesz.
`createTempMail`Klient jednorazowych skrzynek, który nie niesie klucza API — jedyna część pakietu działająca w przeglądarce.
`OpenEmailApiError`, `OpenEmailNetworkError`Dwie klasy błędów.
`verifyWebhookSignature`Porównanie w stałym czasie, z oknem powtórzeń. Zwraca sparsowany payload, a przy każdym niepowodzeniu rzuca wyjątek.
`toBase64`Porcjowane, do bajtów załączników.
`isApiKey`Czy ciąg znaków ma kształt oe_live_ albo oe_test_. To sprawdzenie kształtu, a nie dowód, że klucz nadal działa.
`isSealed`, `MESSAGE_ENCRYPTION_FORMATS`Czy treść wiadomości jest szyfrogramem, oraz pięć kopert, które potrafi nazwać przyjmowanie poczty. isSealed jest false dla dwóch formatów SIGNED, których treści przyszły otwartym tekstem — i właśnie dlatego trafia do pakietu, zamiast zostawiać wywołującemu wyprowadzanie tego z unii.
`LANGUAGES`, `resolveLanguage`, `languageByCode`, `isRtlLanguage`Dołączona tablica języków oraz wyszukiwania, których potrzebuje selektor języka.
`API_SCOPES`Słownik scope'ów, na ekran tworzenia klucza.
`WEBHOOK_EVENTS`, `WEBHOOK_SIGNATURE_HEADERS`Zdarzenia, które endpoint może subskrybować, oraz nazwy nagłówków niesionych przez dostarczenie.
`RULE_FIELDS`, `RULE_OPERATORS`, `RULE_ACTIONS`Słownik, z którego budowane są warunki i akcje reguły.
`PAGE_LIMITS`Największy i domyślny limit na stronicowanej liście: 100 i 25.
`ERROR_TYPES`Zamrożony słownik błędów.
`VERSION`Wersja pakietu.

Typy

Każde żądanie i każda odpowiedź ma swój typ, a wszystkie są eksportowane z korzenia pakietu. Nie ma głębokich importów, więc układ plików pozostaje szczegółem implementacyjnym, który może się zmienić bez wersji głównej. …Resource to, co zwraca API, …Create, …Patch, …Input i …Send to, co przekazujesz, a …Options mieści filtry i opcje pojedynczego wywołania.

  • Klient: ClientOptions, TempMailOptions, TransportOptions, RequestOptions, RequestScope, SendScope, InboxScope, ListOptions, Page, ApiKeyMode, FetchLike.
  • Błędy: ErrorType, ApiErrorPayload, ApiErrorProps.
  • E-maile: EmailSend, EmailListOptions, EmailTranslate, EmailResource, SentEmailResource, EmailRecipientResource, EmailEventResource, EmailStatus, EmailSource, EmailTransport, EmailTrackingSummary, EmailTranslationResource, TranslationResource, RecipientStatus, BatchItemResource, BatchResultResource.
  • Szablony: TemplateCreate, TemplatePatch, TemplateContent, TemplateListOptions, TemplatePreviewInput, TemplateSend, TemplateResource, TemplateDetailResource, TemplateVersionResource, TemplatePreviewResource, SentTemplateEmailResource, DeletedTemplateResource, TemplateEngine, TemplateProp, TemplateSlot, TemplateStatus, TemplateValueKind.
  • Śledzenie: TrackingListOptions, TrackingStatsOptions, TrackingHitOptions, TrackingResource, TrackingSummary, TrackingRecipientResource, TrackingLinkResource, TrackingOpenResource, TrackingClickResource, TrackingStatsResource, TrackingGrain.
  • Wątki i wersje robocze: ThreadListOptions, ThreadPatch, ThreadResource, ThreadSummaryResource, UpdatedThreadResource, TrashedThreadResource, SnoozedThreadResource, DraftInput, DraftListOptions, DraftResource, DraftSummaryResource, SavedDraftResource, DeletedDraftResource.
  • Etykiety, kontakty, domeny i adresy: LabelInput, LabelColor, LabelResource, SavedLabelResource, DeletedLabelResource, ContactCreate, ContactPatch, ContactListOptions, ContactSource, ContactResource, ContactDetailResource, ContactAudienceResource, DeletedContactResource, DomainPatch, DomainResource, DomainDetailResource, DomainSendingState, DomainTracking, DomainTrackingState, AddressBookResource, AddressResource, SendableDomainResource.
  • Reguły: RuleCreate, RulePatch, RuleListOptions, RuleRunListOptions, RuleTestInput, RuleResource, RuleRunResource, RuleTestResource, DeletedRuleResource, RuleCondition, RuleConditionInput, RuleAction, RuleActionType, RuleField, RuleOperator.
  • Webhooki: WebhookCreate, WebhookPatch, WebhookResource, CreatedWebhookResource, DeletedWebhookResource, WebhookDeliveryResource, WebhookTestResource, WebhookEvent, WebhookPayload, EmailOpenedData, EmailClickedData, EmailDownloadedData, VerifyWebhookProps, WebhookSignatureHeaders.
  • Kalendarz i ustawienia: CalendarRangeOptions, CalendarOccurrenceResource, CalendarEventResource, CalendarAttendeeResource, SettingsPatch, SettingsResource.
  • Role, członkowie i klucze: RoleCreate, RolePatch, RoleDeleteOptions, RoleResource, DeletedRoleResource, PermissionResource, MemberAdd, MemberPatch, MemberAddressGrant, MemberResource, MemberAddressResource, RemovedMemberResource, MemberAccess, KeyResource, PingResource.
  • Jednorazowe skrzynki: TempInboxCreate, TempMessageListOptions, TempInboxResource, CreatedTempInboxResource, DeletedTempInboxResource, TempDomainResource, TempMessageResource, TempMessagesResource, TempMessageDetailResource, DeletedTempMessageResource.
  • Wspólne: RecipientInput, AttachmentInput, AttachmentResource, MessageResource, MessageEncryption, MessageEncryptionFormat, TrackingRequest, TranslateOptions, SendTranslateOptions, LanguageResource, ApiScope, Permission, BuiltinRole, HitKind.

Endpoint, którego to jeszcze nie opakowuje

Wydanie SDK nigdy nie powinno stać między tobą a endpointem, który już działa. openemail.raw.request() przyjmuje ścieżkę i opcje, a zwraca sparsowaną treść odpowiedzi — z kluczem klienta, bazowym URL-em, timeoutem i polityką ponawiania.

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

GET jest ponawiany jak każdy inny odczyt. Każda inna metoda wysyłana jest raz, chyba że przekażesz repeatable: true — to twoje oświadczenie, że wolno ją wysłać dwa razy. query pomija wartości undefined, a signal działa tak samo jak przy każdej innej metodzie.

Czego celowo nie robi

  • Nie waliduje żadnej treści żądania. Schemat serwera jest jedyną kopią reguł, a druga kopia tutaj prędzej czy później odrzuciłaby adres, który nowszy serwer przyjmuje — w wersji przypiętej przez kogoś dwa lata temu.
  • Nie dostarcza zod ani w ogóle żadnych zależności runtime.
  • Przekształca odpowiedź tylko w jeden sposób: tablica data kolekcji jest wyjmowana ze swojej koperty. Stronicowana lista oddaje ją jako items obok hasMore i nextCursor, emails.sendBatch jako items obok sent i failed, tempMail.listMessages jako items obok expiresAt, a addresses.list jako addresses obok unrestricted i domains. Wszędzie indziej jest to zwykła tablica. Każdy zasób w środku zachowuje udokumentowany kształt HTTP.

Pilnuje tego kontrola zgodności w pakiecie. Przerywa build, gdy udokumentowana operacja nie ma metody, gdy metoda wskazuje na operację, której dokument OpenAPI nie zawiera, albo wysyła inne żądanie, oraz gdy metoda deklaruje scope'y, których operacja nie wymaga.