UNPKG

msw-storybook-addon

Version:

Mock APIs in Storybook using Mock Service Worker.

30 lines (29 loc) 914 B
import { isCommonAssetRequest } from "msw"; //#region src/addon.ts function isCommonStorybookRequest(request) { return /\.eot$|\.mdx$|sb-common-assets|__webpack_hmr|iframe.html|sb-vite|@vite|@react-refresh|\/virtual:|\.stories\./.test(request.url); } const defaultSetup = async () => { const { setupWorker } = await import("msw/browser"); const worker = setupWorker(); await worker.start({ quiet: true, onUnhandledRequest(request, print) { if (isCommonAssetRequest(request) || isCommonStorybookRequest(request)) return; print.warning(); } }); return worker; }; let mswInstance; function createPreviewAnnotations(setup = defaultSetup) { return { async beforeEach(context) { if (mswInstance == null) mswInstance = await setup(); context.msw = mswInstance; return () => { context.msw?.resetHandlers(); }; } }; } //#endregion export { defaultSetup as n, createPreviewAnnotations as t };