msw
Version:
1 lines • 5.51 kB
Source Map (JSON)
{"version":3,"sources":["../../src/native/index.ts","../../src/node/setup-server-common.ts"],"sourcesContent":["import type { Interceptor } from '@mswjs/interceptors'\nimport { FetchInterceptor } from '@mswjs/interceptors/fetch'\nimport { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest'\nimport type { AnyHandler } from '#core/experimental/handlers-controller'\nimport {\n defineNetwork,\n type DefineNetworkOptions,\n} from '#core/experimental/define-network'\nimport { InterceptorSource } from '#core/experimental/sources/interceptor-source'\nimport { type SetupServerCommon } from '../node/glossary'\nimport { defineSetupServerApi } from '../node/setup-server-common'\n\nconst defaultInterceptors: Array<Interceptor<any>> = [\n new FetchInterceptor(),\n new XMLHttpRequestInterceptor(),\n]\n\nexport const defaultNetworkOptions: DefineNetworkOptions<[InterceptorSource]> =\n {\n sources: [\n new InterceptorSource({\n interceptors: defaultInterceptors,\n }),\n ],\n onUnhandledFrame: 'warn',\n context: {\n quiet: true,\n },\n }\n\n/**\n * Sets up a requests interception in React Native with the given request handlers.\n * @param {Array<AnyHandler>} handlers List of request handlers.\n *\n * @see {@link https://mswjs.io/docs/api/setup-server `setupServer()` API reference}\n */\nexport function setupServer(...handlers: Array<AnyHandler>): SetupServerCommon {\n const network = defineNetwork({\n ...defaultNetworkOptions,\n handlers,\n })\n\n return defineSetupServerApi(network)\n}\n","import type { PartialDeep } from 'type-fest'\nimport type { Interceptor } from '@mswjs/interceptors'\nimport {\n NetworkReadyState,\n defineNetwork,\n type NetworkApi,\n} from '#core/experimental/define-network'\nimport type { AnyHandler } from '#core/experimental/handlers-controller'\nimport type { HandlersController } from '#core/experimental/handlers-controller'\nimport { InterceptorSource } from '#core/experimental/sources/interceptor-source'\nimport { fromLegacyOnUnhandledRequest } from '#core/experimental/compat'\nimport type { ListenOptions, SetupServerCommon } from './glossary'\n\n/**\n * Define the common `setupServer` API around the given network.\n * This is used by both `msw/node` and `msw/native` to implement the same\n * baseline setup methods, like `.use()`, `.resetHandlers()`, `.close()`, etc.\n */\nexport function defineSetupServerApi(\n network: NetworkApi<any>,\n): SetupServerCommon {\n return {\n events: network.events,\n listen(options) {\n network.configure({\n onUnhandledFrame: fromLegacyOnUnhandledRequest(() => {\n return options?.onUnhandledRequest || 'warn'\n }),\n })\n\n network.enable()\n },\n use: network.use.bind(network),\n resetHandlers: network.resetHandlers.bind(network),\n restoreHandlers: network.restoreHandlers.bind(network),\n listHandlers: network.listHandlers.bind(network),\n close() {\n /**\n * @note Ignore closing after closed for backwards compatibility.\n */\n if (network.readyState === NetworkReadyState.DISABLED) {\n return\n }\n\n network.disable()\n },\n }\n}\n\n/**\n * @deprecated\n * Please use the `defineNetwork` API instead.\n */\nexport class SetupServerCommonApi implements SetupServerCommon {\n protected network: NetworkApi<[InterceptorSource]>\n\n constructor(\n interceptors: Array<Interceptor<any>>,\n handlers: Array<AnyHandler> | HandlersController,\n ) {\n this.network = defineNetwork({\n sources: [new InterceptorSource({ interceptors })],\n handlers,\n })\n }\n\n get events() {\n return this.network.events\n }\n\n public listen(options?: PartialDeep<ListenOptions>): void {\n this.network.configure({\n onUnhandledFrame: fromLegacyOnUnhandledRequest(() => {\n return options?.onUnhandledRequest || 'warn'\n }),\n })\n\n this.network.enable()\n }\n\n public use(...handlers: Array<AnyHandler>): void {\n this.network.use(...handlers)\n }\n\n public resetHandlers(...nextHandlers: Array<AnyHandler>): void {\n return this.network.resetHandlers(...nextHandlers)\n }\n\n public restoreHandlers(): void {\n return this.network.restoreHandlers()\n }\n\n public listHandlers(): ReadonlyArray<AnyHandler> {\n return this.network.listHandlers()\n }\n\n public close(): void {\n this.network.disable()\n }\n}\n"],"mappings":";AACA,SAAS,wBAAwB;AACjC,SAAS,iCAAiC;AAE1C;AAAA,EACE,iBAAAA;AAAA,OAEK;AACP,SAAS,qBAAAC,0BAAyB;;;ACNlC;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAGP,SAAS,yBAAyB;AAClC,SAAS,oCAAoC;AAQtC,SAAS,qBACd,SACmB;AACnB,SAAO;AAAA,IACL,QAAQ,QAAQ;AAAA,IAChB,OAAO,SAAS;AACd,cAAQ,UAAU;AAAA,QAChB,kBAAkB,6BAA6B,MAAM;AACnD,iBAAO,SAAS,sBAAsB;AAAA,QACxC,CAAC;AAAA,MACH,CAAC;AAED,cAAQ,OAAO;AAAA,IACjB;AAAA,IACA,KAAK,QAAQ,IAAI,KAAK,OAAO;AAAA,IAC7B,eAAe,QAAQ,cAAc,KAAK,OAAO;AAAA,IACjD,iBAAiB,QAAQ,gBAAgB,KAAK,OAAO;AAAA,IACrD,cAAc,QAAQ,aAAa,KAAK,OAAO;AAAA,IAC/C,QAAQ;AAIN,UAAI,QAAQ,eAAe,kBAAkB,UAAU;AACrD;AAAA,MACF;AAEA,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AACF;;;ADnCA,IAAM,sBAA+C;AAAA,EACnD,IAAI,iBAAiB;AAAA,EACrB,IAAI,0BAA0B;AAChC;AAEO,IAAM,wBACX;AAAA,EACE,SAAS;AAAA,IACP,IAAIC,mBAAkB;AAAA,MACpB,cAAc;AAAA,IAChB,CAAC;AAAA,EACH;AAAA,EACA,kBAAkB;AAAA,EAClB,SAAS;AAAA,IACP,OAAO;AAAA,EACT;AACF;AAQK,SAAS,eAAe,UAAgD;AAC7E,QAAM,UAAUC,eAAc;AAAA,IAC5B,GAAG;AAAA,IACH;AAAA,EACF,CAAC;AAED,SAAO,qBAAqB,OAAO;AACrC;","names":["defineNetwork","InterceptorSource","InterceptorSource","defineNetwork"]}