@mostajs/transport-kit
v0.2.0
Published
Contrat N0 + primitifs purs de transport (extraits de @mostajs/net) : errorCodeToHttpStatus, composeMiddleware, enveloppe générique TransportRequest/Response, ITransport, DomainErrorCode. Zéro dépendance, partagé par @mostajs/net (N2) et @mostajs/service-
Readme
@mostajs/transport-kit
N0 · zéro dépendance — contrat + primitifs purs de transport, partagés par
@mostajs/net(N2) et@mostajs/service-kit(N1).
Extrait de @mostajs/net pour supprimer une dépendance vers le haut : lier un
service à un transport, ou mapper une erreur en statut HTTP, ne doit pas obliger
à dépendre d'un module serveur lourd (N2). L'enveloppe est générique — les
OrmRequest/OrmResponse de @mostajs/orm en deviennent des spécialisations.
Installation
npm install @mostajs/transport-kitExemple minimal
import {
errorCodeToHttpStatus,
composeMiddleware,
type TransportMiddleware,
} from '@mostajs/transport-kit';
// 1) Mapping d'erreur uniforme (par code-chaîne)
errorCodeToHttpStatus('NOT_FOUND'); // 404
errorCodeToHttpStatus('VALIDATION'); // 422
errorCodeToHttpStatus(); // 500
// 2) Pipeline de middlewares, générique sur l'enveloppe
const auth: TransportMiddleware = async (req, ctx, next) =>
ctx.apiKey ? next() : { status: 'error', code: 'UNAUTHORIZED' };
const run = composeMiddleware([auth], async (req) => ({ status: 'ok', data: req.op }));
await run({ op: 'ping' }, { transport: 'http' }); // { status: 'ok', data: 'ping' }Référence API
| Export | Type | Rôle |
|---|---|---|
| errorCodeToHttpStatus(code?) | (string?) => number | code d'erreur → statut HTTP (surensemble rétro-compatible de net) |
| composeMiddleware(mws, handler) | fonction | compose une chaîne de middlewares |
| loggingMiddleware | TransportMiddleware | trace requête/réponse |
| TransportRequest/Response/Context | types | enveloppe générique |
| ITransport, TransportBinding, TransportMiddleware | types | contrat d'adaptateur de transport |
| DomainErrorCode, ServiceDialect | types | vocabulaire service/erreur |
Niveau & dépendances
N0 · nature: primitif · depend_de: []. Voir llms.txt pour la fiche dense.
Auteur : Dr Hamid MADANI [email protected] · Licence : AGPL-3.0-or-later
