Kiểu dữ liệu và tiện ích
Gói này còn export những gì.
Các export lúc chạy
| Export | Nó là gì |
|---|---|
| `init`, `openemail` | Cấu hình client dùng chung một lần duy nhất, rồi import openemail ở bất cứ đâu. Nó tự dựng từ OPENEMAIL_API_KEY nếu init chưa từng chạy. |
| `getClient`, `resetClient` | Chính client dùng chung, và một cách để bỏ nó đi để lời gọi kế tiếp dựng một client mới, đúng thứ mà một bài kiểm thử cần giữa các trường hợp. |
| `createOpenEmail`, `createClient`, `OpenEmail` | Một client riêng. createOpenEmail đọc biến môi trường cho bất cứ thứ gì bạn bỏ trống (createClient là cùng một hàm), còn new OpenEmail (cũng là default export) chỉ nhận đúng những gì bạn truyền vào. |
| `createTempMail` | Một client hộp thư dùng một lần không mang API key, và là phần duy nhất của gói chạy được trong trình duyệt. |
| `OpenEmailApiError`, `OpenEmailNetworkError` | Hai lớp lỗi. |
| `verifyWebhookSignature` | Thời gian hằng số, kèm một cửa sổ chống phát lại. Trả về payload đã phân tích và ném lỗi với mọi thất bại. |
| `toBase64` | Chia theo khối, dành cho các byte tệp đính kèm. |
| `isApiKey` | Một chuỗi có đúng hình dạng oe_live_ hoặc oe_test_ hay không. Đây là kiểm tra hình dạng, không phải bằng chứng khoá vẫn còn hiệu lực. |
| `isSealed`, `MESSAGE_ENCRYPTION_FORMATS` | Phần thân của một thông điệp có phải bản mã hay không, và năm loại phong bì mà khâu tiếp nhận có thể nêu tên. isSealed là false với hai định dạng SIGNED, vốn có phần thân tới dưới dạng rõ, và đó là lý do nó được phát hành sẵn thay vì để người gọi tự suy ra từ union. |
| `LANGUAGES`, `resolveLanguage`, `languageByCode`, `isRtlLanguage` | Bảng ngôn ngữ đóng gói sẵn, và các hàm tra cứu mà một bộ chọn ngôn ngữ cần. |
| `API_SCOPES` | Bộ từ vựng scope, dùng cho màn hình tạo khoá. |
| `WEBHOOK_EVENTS`, `WEBHOOK_SIGNATURE_HEADERS` | Các sự kiện mà một endpoint có thể đăng ký, và tên các header mà một lần gửi mang theo. |
| `RULE_FIELDS`, `RULE_OPERATORS`, `RULE_ACTIONS` | Bộ từ vựng dùng để dựng nên điều kiện và hành động của một quy tắc. |
| `PAGE_LIMITS` | Giá trị limit lớn nhất và mặc định trên một danh sách phân trang: 100 và 25. |
| `ERROR_TYPES` | Bộ từ vựng lỗi đã đóng băng. |
| `VERSION` | Phiên bản của gói. |
Kiểu dữ liệu
Mọi yêu cầu và phản hồi đều có một kiểu, và chúng được export từ gốc của gói. Không có deep import, nên bố cục tệp vẫn là chi tiết cài đặt có thể thay đổi mà không cần một phiên bản major. …Resource là thứ API trả về, …Create, …Patch, …Input và …Send là thứ bạn truyền vào, còn …Options chứa bộ lọc và các tuỳ chọn theo từng lời gọi.
- Client:
ClientOptions,TempMailOptions,TransportOptions,RequestOptions,RequestScope,SendScope,InboxScope,ListOptions,Page,ApiKeyMode,FetchLike. - Lỗi:
ErrorType,ApiErrorPayload,ApiErrorProps. - Email:
EmailSend,EmailListOptions,EmailTranslate,EmailResource,SentEmailResource,EmailRecipientResource,EmailEventResource,EmailStatus,EmailSource,EmailTransport,EmailTrackingSummary,EmailTranslationResource,TranslationResource,RecipientStatus,BatchItemResource,BatchResultResource. - Mẫu:
TemplateCreate,TemplatePatch,TemplateContent,TemplateListOptions,TemplatePreviewInput,TemplateSend,TemplateResource,TemplateDetailResource,TemplateVersionResource,TemplatePreviewResource,SentTemplateEmailResource,DeletedTemplateResource,TemplateEngine,TemplateProp,TemplateSlot,TemplateStatus,TemplateValueKind. - Theo dõi:
TrackingListOptions,TrackingStatsOptions,TrackingHitOptions,TrackingResource,TrackingSummary,TrackingRecipientResource,TrackingLinkResource,TrackingOpenResource,TrackingClickResource,TrackingStatsResource,TrackingGrain. - Luồng thư và bản nháp:
ThreadListOptions,ThreadPatch,ThreadResource,ThreadSummaryResource,UpdatedThreadResource,TrashedThreadResource,SnoozedThreadResource,DraftInput,DraftListOptions,DraftResource,DraftSummaryResource,SavedDraftResource,DeletedDraftResource. - Nhãn, danh bạ, tên miền và địa chỉ:
LabelInput,LabelColor,LabelResource,SavedLabelResource,DeletedLabelResource,ContactCreate,ContactPatch,ContactListOptions,ContactSource,ContactResource,ContactDetailResource,ContactAudienceResource,DeletedContactResource,DomainPatch,DomainResource,DomainDetailResource,DomainSendingState,DomainTracking,DomainTrackingState,AddressBookResource,AddressResource,SendableDomainResource. - Quy tắc:
RuleCreate,RulePatch,RuleListOptions,RuleRunListOptions,RuleTestInput,RuleResource,RuleRunResource,RuleTestResource,DeletedRuleResource,RuleCondition,RuleConditionInput,RuleAction,RuleActionType,RuleField,RuleOperator. - Webhook:
WebhookCreate,WebhookPatch,WebhookResource,CreatedWebhookResource,DeletedWebhookResource,WebhookDeliveryResource,WebhookTestResource,WebhookEvent,WebhookPayload,EmailOpenedData,EmailClickedData,EmailDownloadedData,VerifyWebhookProps,WebhookSignatureHeaders. - Lịch và thiết lập:
CalendarRangeOptions,CalendarOccurrenceResource,CalendarEventResource,CalendarAttendeeResource,SettingsPatch,SettingsResource. - Vai trò, thành viên và khoá:
RoleCreate,RolePatch,RoleDeleteOptions,RoleResource,DeletedRoleResource,PermissionResource,MemberAdd,MemberPatch,MemberAddressGrant,MemberResource,MemberAddressResource,RemovedMemberResource,MemberAccess,KeyResource,PingResource. - Hộp thư dùng một lần:
TempInboxCreate,TempMessageListOptions,TempInboxResource,CreatedTempInboxResource,DeletedTempInboxResource,TempDomainResource,TempMessageResource,TempMessagesResource,TempMessageDetailResource,DeletedTempMessageResource. - Dùng chung:
RecipientInput,AttachmentInput,AttachmentResource,MessageResource,MessageEncryption,MessageEncryptionFormat,TrackingRequest,TranslateOptions,SendTranslateOptions,LanguageResource,ApiScope,Permission,BuiltinRole,HitKind.
Một endpoint mà SDK này chưa bao bọc
Một bản phát hành SDK không bao giờ nên là thứ chắn giữa bạn và một endpoint vốn đã hoạt động. openemail.raw.request() nhận một đường dẫn cùng các tuỳ chọn và trả về body đã phân tích, với khoá, base URL, thời gian chờ và chính sách thử lại của client được áp dụng.
const result = await openemail.raw.request<Whatever>('/something-new', { method: 'POST', query: { dryRun: true }, body: { name: 'Invoices' }, repeatable: true,})Một GET được thử lại như mọi thao tác đọc khác. Mọi phương thức khác chỉ được gửi một lần trừ khi bạn truyền repeatable: true, tức là bạn khẳng định rằng nó có thể được gửi hai lần. query bỏ qua các giá trị undefined, và signal hoạt động y như trên mọi phương thức khác.
Những gì nó cố tình không làm
- Nó không kiểm tra body của yêu cầu. Schema của máy chủ là bản sao duy nhất của các quy tắc, và một bản sao thứ hai ở đây rồi sẽ từ chối một địa chỉ mà máy chủ mới hơn chấp nhận, trong một phiên bản mà ai đó đã ghim từ hai năm trước.
- Nó không kèm zod và hoàn toàn không có phụ thuộc runtime nào.
- Nó chỉ biến đổi hình dạng phản hồi theo đúng một cách: mảng
datacủa một tập hợp được nhấc ra khỏi phong bì của nó. Một danh sách phân trang trả nó về dưới tênitemsbên cạnhhasMorevànextCursor,emails.sendBatchtrả vềitemsbên cạnhsentvàfailed,tempMail.listMessagestrả vềitemsbên cạnhexpiresAt, cònaddresses.listtrả vềaddressesbên cạnhunrestrictedvàdomains. Ở mọi nơi khác nó là một mảng thuần. Mọi tài nguyên bên trong vẫn giữ đúng hình dạng HTTP như tài liệu mô tả.
Bài kiểm tra tương đương của gói giữ cho điều này trung thực. Nó làm hỏng build khi một thao tác có trong tài liệu mà không có phương thức, khi một phương thức trỏ tới một thao tác không có trong tài liệu OpenAPI hoặc gửi một yêu cầu khác, và khi một phương thức khai báo các scope mà thao tác đó không đòi hỏi.