تایپها و کمککنندهها
پکیج دیگر چه چیزهایی را export میکند.
خروجیهای زمان اجرا
| خروجی | چیست |
|---|---|
| `init`, `openemail` | کلاینت مشترک را یک بار پیکربندی کنید، سپس هر جا خواستید openemail را import کنید. اگر init هرگز اجرا نشود، خودش را از OPENEMAIL_API_KEY میسازد. |
| `getClient`, `resetClient` | خودِ کلاینت مشترک، و راهی برای کنار گذاشتنش تا فراخوانی بعدی یکی تازه بسازد، که همان چیزی است که یک تست بین کیسها میخواهد. |
| `createOpenEmail`, `createClient`, `OpenEmail` | یک کلاینت جداگانه. createOpenEmail هر چیزی را که ندهید از محیط میخواند (createClient همان تابع است)، و new OpenEmail (که خروجی پیشفرض هم هست) تنها همان چیزی را میگیرد که میدهید. |
| `createTempMail` | کلاینت صندوق یکبارمصرف که هیچ API key با خود ندارد، و تنها بخشی از پکیج که در مرورگر اجرا میشود. |
| `OpenEmailApiError`, `OpenEmailNetworkError` | دو کلاس خطا. |
| `verifyWebhookSignature` | با زمان ثابت، بههمراه یک پنجرهٔ بازپخش. به payload تجزیهشده resolve میشود و در هر شکستی throw میکند. |
| `toBase64` | تکهتکه، برای بایتهای پیوست. |
| `isApiKey` | اینکه یک رشته شکل oe_live_ یا oe_test_ دارد یا نه. بررسی شکل است، نه اثبات اینکه کلید هنوز کار میکند. |
| `isSealed`, `MESSAGE_ENCRYPTION_FORMATS` | اینکه بدنهٔ یک پیام متن رمز است یا نه، و پنج پاکتی که ingest میتواند نام ببرد. isSealed برای دو قالب SIGNED برابر false است، چون بدنهٔ آنها بدون رمز رسیده است، و دقیقاً به همین دلیل عرضه میشود بهجای آنکه استخراجش از union به عهدهٔ فراخوان بماند. |
| `LANGUAGES`, `resolveLanguage`, `languageByCode`, `isRtlLanguage` | جدول زبانهای همراه پکیج، و جستوجوهایی که یک انتخابگر زبان لازم دارد. |
| `API_SCOPES` | واژگان اسکوپها، برای صفحهٔ ساخت کلید. |
| `WEBHOOK_EVENTS`, `WEBHOOK_SIGNATURE_HEADERS` | رویدادهایی که یک اندپوینت میتواند مشترکشان شود، و نام هدرهایی که یک تحویل با خود دارد. |
| `RULE_FIELDS`, `RULE_OPERATORS`, `RULE_ACTIONS` | واژگانی که شرطها و کنشهای یک قاعده از آن ساخته میشوند. |
| `PAGE_LIMITS` | بیشینه و پیشفرض limit روی یک فهرست صفحهبندیشده: 100 و 25. |
| `ERROR_TYPES` | واژگان ثابت خطاها. |
| `VERSION` | نسخهٔ پکیج. |
تایپها
هر درخواست و پاسخی یکی دارد و همگی از ریشهٔ پکیج export میشوند. هیچ import عمیقی وجود ندارد، پس چیدمان فایلها جزئیاتی از پیادهسازی میماند که میتواند بدون تغییر نسخهٔ اصلی جابهجا شود. …Resource همان چیزی است که API برمیگرداند، …Create، …Patch، …Input و …Send آن چیزیاند که شما میدهید، و …Options فیلترها و گزینههای هر فراخوانی را نگه میدارد.
- کلاینت:
ClientOptions،TempMailOptions،TransportOptions،RequestOptions،RequestScope،SendScope،InboxScope،ListOptions،Page،ApiKeyMode،FetchLike. - خطاها:
ErrorType،ApiErrorPayload،ApiErrorProps. - ایمیلها:
EmailSend،EmailListOptions،EmailTranslate،EmailResource،SentEmailResource،EmailRecipientResource،EmailEventResource،EmailStatus،EmailSource،EmailTransport،EmailTrackingSummary،EmailTranslationResource،TranslationResource،RecipientStatus،BatchItemResource،BatchResultResource. - قالبها:
TemplateCreate،TemplatePatch،TemplateContent،TemplateListOptions،TemplatePreviewInput،TemplateSend،TemplateResource،TemplateDetailResource،TemplateVersionResource،TemplatePreviewResource،SentTemplateEmailResource،DeletedTemplateResource،TemplateEngine،TemplateProp،TemplateSlot،TemplateStatus،TemplateValueKind. - ردیابی:
TrackingListOptions،TrackingStatsOptions،TrackingHitOptions،TrackingResource،TrackingSummary،TrackingRecipientResource،TrackingLinkResource،TrackingOpenResource،TrackingClickResource،TrackingStatsResource،TrackingGrain. - رشتهها و پیشنویسها:
ThreadListOptions،ThreadPatch،ThreadResource،ThreadSummaryResource،UpdatedThreadResource،TrashedThreadResource،SnoozedThreadResource،DraftInput،DraftListOptions،DraftResource،DraftSummaryResource،SavedDraftResource،DeletedDraftResource. - برچسبها، مخاطبان، دامنهها و آدرسها:
LabelInput،LabelColor،LabelResource،SavedLabelResource،DeletedLabelResource،ContactCreate،ContactPatch،ContactListOptions،ContactSource،ContactResource،ContactDetailResource،ContactAudienceResource،DeletedContactResource،DomainPatch،DomainResource،DomainDetailResource،DomainSendingState،DomainTracking،DomainTrackingState،AddressBookResource،AddressResource،SendableDomainResource. - قواعد:
RuleCreate،RulePatch،RuleListOptions،RuleRunListOptions،RuleTestInput،RuleResource،RuleRunResource،RuleTestResource،DeletedRuleResource،RuleCondition،RuleConditionInput،RuleAction،RuleActionType،RuleField،RuleOperator. - وبهوکها:
WebhookCreate،WebhookPatch،WebhookResource،CreatedWebhookResource،DeletedWebhookResource،WebhookDeliveryResource،WebhookTestResource،WebhookEvent،WebhookPayload،EmailOpenedData،EmailClickedData،EmailDownloadedData،VerifyWebhookProps،WebhookSignatureHeaders. - تقویم و تنظیمات:
CalendarRangeOptions،CalendarOccurrenceResource،CalendarEventResource،CalendarAttendeeResource،SettingsPatch،SettingsResource. - نقشها، اعضا و کلیدها:
RoleCreate،RolePatch،RoleDeleteOptions،RoleResource،DeletedRoleResource،PermissionResource،MemberAdd،MemberPatch،MemberAddressGrant،MemberResource،MemberAddressResource،RemovedMemberResource،MemberAccess،KeyResource،PingResource. - صندوقهای یکبارمصرف:
TempInboxCreate،TempMessageListOptions،TempInboxResource،CreatedTempInboxResource،DeletedTempInboxResource،TempDomainResource،TempMessageResource،TempMessagesResource،TempMessageDetailResource،DeletedTempMessageResource. - مشترک:
RecipientInput،AttachmentInput،AttachmentResource،MessageResource،MessageEncryption،MessageEncryptionFormat،TrackingRequest،TranslateOptions،SendTranslateOptions،LanguageResource،ApiScope،Permission،BuiltinRole،HitKind.
اندپوینتی که این هنوز پوششش نمیدهد
یک انتشار SDK هرگز نباید چیزی باشد که میان شما و اندپوینتی که از پیش کار میکند بایستد. openemail.raw.request() یک مسیر و مجموعهای از گزینهها میگیرد و به بدنهٔ تجزیهشده resolve میشود، با اعمال کلید، base URL، تایماوت و سیاست تلاش مجدد کلاینت.
const result = await openemail.raw.request<Whatever>('/something-new', { method: 'POST', query: { dryRun: true }, body: { name: 'Invoices' }, repeatable: true,})یک GET مثل هر خواندن دیگری دوباره تلاش میشود. هر متد دیگری یک بار فرستاده میشود مگر آنکه repeatable: true بدهید، که ادعای شماست مبنی بر اینکه میتوان آن را دو بار فرستاد. query مقادیری را که undefined هستند رد میکند، و signal همانطور کار میکند که روی هر متد دیگری.
کارهایی که عمداً انجام نمیدهد
- هیچ بدنهٔ درخواستی را اعتبارسنجی نمیکند. اسکیمای سرور تنها نسخهٔ قواعد است، و نسخهٔ دومی اینجا سرانجام آدرسی را رد میکرد که سروری تازهتر میپذیرد، آن هم در نسخهای که کسی دو سال پیش pin کرده است.
- نه zod عرضه میکند و نه اصلاً وابستگی زمان اجرا.
- پاسخ را تنها به یک شکل بازآرایی میکند: آرایهٔ
dataدر یک مجموعه از پاکتش بیرون کشیده میشود. یک فهرست صفحهبندیشده آن را بهصورتitemsکنارhasMoreوnextCursorبازمیگرداند،emails.sendBatchبهصورتitemsکنارsentوfailed،tempMail.listMessagesبهصورتitemsکنارexpiresAt، وaddresses.listبهصورتaddressesکنارunrestrictedوdomains. در همهجای دیگر یک آرایهٔ ساده است. هر منبعی درون آن شکل مستندشدهٔ HTTP خود را نگه میدارد.
بررسی همخوانی پکیج این را صادق نگه میدارد. هر جا عملیاتی مستندشده متد نداشته باشد، متدی به عملیاتی اشاره کند که سند OpenAPI آن را ندارد یا درخواست متفاوتی بفرستد، یا متدی اسکوپهایی را اعلام کند که عملیات لازمشان ندارد، بیلد را میشکند.