{"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"]}