@mailiam/shared
v0.2.0
Published
Shared types and utilities for Mailiam SDK
Downloads
273
Readme
@mailiam/shared
Shared types, errors, constants, and utilities for Mailiam SDK packages.
This package is used internally by @mailiam/node and @mailiam/client. You typically don't need to install this directly unless you're building custom integrations.
Installation
npm install @mailiam/sharedExports
Types
SendEmailRequest- Email send request structureSendEmailResponse- Email send response structureSendBatchRequest- Batch send request structureSendBatchResponse- Batch send response structureBatchEmailResult- Individual batch resultEmailAddress- Email address typeFormSubmission- Form submission dataFormSubmissionResponse- Form submission responseMailiamErrorResponse- API error responseApiKeyType- API key typesRateLimitInfo- Rate limit information
Error Classes
MailiamError- Base error classAuthenticationError- Authentication failureRateLimitError- Rate limit exceededValidationError- Request validation failureNetworkError- Network request failureApiError- General API error
Constants
DEFAULT_API_BASE_URL- Default API URLAPI_VERSION- Current API versionDEFAULT_TIMEOUT- Default request timeoutDEFAULT_RETRY_CONFIG- Default retry configurationHTTP_STATUS- HTTP status code constantsENDPOINTS- API endpoint pathsHEADERS- Header name constantsUSER_AGENT- SDK user agent
Utilities
isValidEmail()- Validate email formatnormalizeEmailAddress()- Normalize email to stringnormalizeEmailAddresses()- Normalize array of emailsvalidateEmailContent()- Validate text/html contentsleep()- Promise-based sleepcalculateBackoff()- Calculate exponential backoffisRetryableStatusCode()- Check if status is retryableisNetworkError()- Check if error is network-related
Usage
import {
type SendEmailRequest,
AuthenticationError,
DEFAULT_API_BASE_URL,
isValidEmail
} from '@mailiam/shared';
// Use types
const request: SendEmailRequest = {
from: '[email protected]',
to: '[email protected]',
subject: 'Test',
html: '<p>Test</p>'
};
// Use utilities
if (isValidEmail('[email protected]')) {
console.log('Valid email');
}
// Use errors
throw new AuthenticationError('Invalid API key');License
MIT