SDK TypeScript pour Node.js et Bun
Le même package typé fonctionne sur Node.js et Bun. Il est généré depuis le contrat OpenAPI de Spore et expose les modèles de requête et de réponse sans configuration SMTP.
Installation
Avec Node.js :
pnpm add @lalternative/spore-sdkAvec Bun :
bun add @lalternative/spore-sdkConfiguration Node.js
import { configureSporeClient } from '@lalternative/spore-sdk'
configureSporeClient({ apiKey: process.env.SPORE_API_KEY })Configuration Bun
import { configureSporeClient } from '@lalternative/spore-sdk'
configureSporeClient({ apiKey: Bun.env.SPORE_API_KEY })Envoyer un email
import { randomUUID } from 'node:crypto'
import { getSporeAPI } from '@lalternative/spore-sdk'
const result = await getSporeAPI().sendEmail(
{
from: 'hello@votredomaine.fr',
to: ['alex@example.com'],
subject: 'Bienvenue',
html: '<p>Votre compte est prêt.</p>',
},
{ headers: { 'Idempotency-Key': randomUUID() } },
)
console.log(result.messageId)Sous Bun, remplacez randomUUID() par crypto.randomUUID(). Dans une queue ou
un job, préférez une clé stable dérivée de l’action métier afin qu’un retry ne
crée pas un second message.
Gérer les erreurs
Le SDK utilise Axios. Les réponses non 2xx sont donc disponibles via
AxiosError.response : statut HTTP, corps JSON et en-têtes restent accessibles
pour décider de retenter ou non.
import axios from 'axios'
try {
await getSporeAPI().sendEmail(message)
} catch (error) {
if (axios.isAxiosError(error)) {
console.error(error.response?.status, error.response?.data)
}
}