@mswjs/source
Para crear mocks de red automáticamente a partir de especificaciones OpenAPI o grabaciones de tráfico HAR.
Genera handlers de Mock Service Worker a partir de archivos HAR y documentos OpenAPI.
Notas y contexto
Qué es
@mswjs/source es una librerÃa de la familia Mock Service Worker (MSW) que genera automáticamente los request handlers de mocking a partir de fuentes ya existentes. Está escrita en TypeScript y mantenida por el equipo de mswjs. En lugar de escribir cada handler a mano, lo deriva de un documento OpenAPI/Swagger o de una grabación de tráfico en formato HAR.
Para qué sirve
- Generar handlers de MSW a partir de un documento OpenAPI (2.0 o 3.0) sin escribirlos uno a uno.
- Reproducir tráfico real grabado en un archivo HAR como mocks deterministas.
- Acelerar la puesta en marcha del mocking en proyectos con APIs grandes ya documentadas.
- Mantener los mocks alineados con la especificación de la API de origen.
Cuándo usarlo
Útil cuando ya usas MSW y tienes una fuente de verdad (un contrato OpenAPI o capturas HAR) de la que partir, en lugar de definir los handlers manualmente. Si tu API es pequeña o no tienes esas fuentes, escribir los handlers directamente con MSW puede ser más simple. Requiere MSW como dependencia, ya que solo produce los handlers que luego consume setupServer o setupWorker.
Ejemplo
npm install @mswjs/source
// A partir de un documento OpenAPI
import { fromOpenApi } from '@mswjs/source/open-api';
import { setupServer } from 'msw/node';
import api from './api.json';
const handlers = await fromOpenApi(api);
const server = setupServer(...handlers);
server.listen();
// A partir de una grabación de tráfico HAR
import { fromTraffic } from '@mswjs/source/traffic';
import { setupServer } from 'msw/node';
import traffic from './recording.har';
const handlers = fromTraffic(traffic);
const server = setupServer(...handlers);
Puntos clave
- Soporta como fuentes documentos OpenAPI 2.0/3.0 y archivos HAR.
- Entradas de importación separadas por fuente:
@mswjs/source/open-apiy@mswjs/source/traffic. - Al reproducir tráfico HAR respeta el orden de las peticiones y los tiempos de respuesta grabados.
- Proyecto open source con licencia MIT, escrito Ãntegramente en TypeScript.
Ten en cuenta
No reemplaza a MSW: es complementario y necesita que MSW esté instalado para usar los handlers generados. La calidad de los mocks depende de la fuente (un OpenAPI incompleto o un HAR parcial dará handlers limitados). Es un proyecto activo pero todavÃa en versión 0.x (v0.6.1), por lo que la API puede cambiar entre versiones.