From fb8cda584655137c57fde12911e40197d335e240 Mon Sep 17 00:00:00 2001 From: Christoph Fricke Date: Fri, 10 Apr 2026 16:17:35 +0200 Subject: [PATCH 1/3] fix: importing msw/experimental throws runtime error --- src/core/experimental/index.ts | 3 ++- src/native/index.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/experimental/index.ts b/src/core/experimental/index.ts index ea6f5c780..f49bf7e55 100644 --- a/src/core/experimental/index.ts +++ b/src/core/experimental/index.ts @@ -1,4 +1,5 @@ -export { defineNetwork, DefineNetworkOptions } from './define-network' +export { defineNetwork } from './define-network' +export type { DefineNetworkOptions } from './define-network' /* Network sources */ export { NetworkSource } from './sources/network-source' diff --git a/src/native/index.ts b/src/native/index.ts index 9334769e7..9919e8fff 100644 --- a/src/native/index.ts +++ b/src/native/index.ts @@ -4,7 +4,7 @@ import { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest' import { type AnyHandler } from '#core/experimental/handlers-controller' import { defineNetwork, - DefineNetworkOptions, + type DefineNetworkOptions, } from '#core/experimental/define-network' import { InterceptorSource } from '#core/experimental/sources/interceptor-source' import { type SetupServerCommon } from '../node/glossary' From 53976dbc0579cb3f843af1eb8cea40721f6bb155 Mon Sep 17 00:00:00 2001 From: Artem Zakharchenko Date: Thu, 16 Apr 2026 14:56:34 +0200 Subject: [PATCH 2/3] fix: use `verbatimModuleSyntax` consistently --- eslint.config.mjs | 8 ++++++ src/browser/glossary.ts | 2 +- src/browser/setup-worker.ts | 2 +- src/browser/sources/service-worker-source.ts | 7 ++--- src/core/experimental/define-network.ts | 2 +- .../experimental/frames/http-frame.test.ts | 3 ++- src/core/experimental/frames/http-frame.ts | 8 ++++-- .../frames/websocket-frame.test.ts | 6 ++--- .../experimental/frames/websocket-frame.ts | 5 ++-- src/core/experimental/index.ts | 3 +-- .../experimental/on-unhandled-frame.test.ts | 6 ++--- src/core/experimental/setup-api.ts | 6 ++--- .../sources/interceptor-source.ts | 8 ++---- src/core/graphql.ts | 16 ++++++------ src/core/handlers/GraphQLHandler.test.ts | 7 +++-- src/core/handlers/GraphQLHandler.ts | 26 +++++++++++-------- src/core/handlers/HttpHandler.test.ts | 5 ++-- src/core/handlers/HttpHandler.ts | 14 +++++----- src/core/handlers/RequestHandler.ts | 10 +++---- src/core/http.ts | 10 +++---- src/core/utils/cookieStore.ts | 2 +- src/core/utils/executeHandlers.ts | 6 ++--- src/core/utils/handleRequest.test.ts | 9 ++++--- src/core/utils/handleRequest.ts | 6 ++--- .../internal/parseGraphQLRequest.test.ts | 6 ++--- src/core/utils/internal/parseMultipartData.ts | 2 +- src/core/utils/internal/pipeEvents.ts | 3 ++- .../utils/internal/requestHandlerUtils.ts | 2 +- .../utils/request/onUnhandledRequest.test.ts | 6 ++--- src/core/ws.ts | 2 +- src/core/ws/WebSocketClientManager.test.ts | 6 ++--- src/core/ws/WebSocketClientManager.ts | 2 +- src/core/ws/WebSocketIndexedDBClientStore.ts | 8 +++--- src/core/ws/WebSocketMemoryClientStore.ts | 8 +++--- src/core/ws/handleWebSocketEvent.ts | 6 ++--- src/native/index.ts | 2 +- src/node/async-handlers-controller.ts | 4 +-- src/node/setup-server-common.ts | 8 +++--- src/node/setup-server.ts | 4 +-- .../graphql-api/custom-predicate.test.ts | 4 +-- .../graphql-api/response-patching.test.ts | 2 +- test/browser/msw-api/context/delay.mocks.ts | 3 ++- test/browser/msw-api/req/passthrough.test.ts | 4 +-- .../fallback-mode/fallback-mode.test.ts | 4 +-- .../life-cycle-events/on.mocks.ts | 9 ++----- .../removeAllListeners.test.ts | 2 +- .../life-cycle-events/removeListener.test.ts | 2 +- .../msw-api/setup-worker/listHandlers.test.ts | 4 +-- .../setup-worker/resetHandlers.test.ts | 4 +-- .../setup-worker/restoreHandlers.test.ts | 4 +-- .../scenarios/iframe/iframe.test.ts | 2 +- .../msw-api/setup-worker/start/error.test.ts | 2 +- .../setup-worker/start/find-worker.test.ts | 2 +- .../msw-api/setup-worker/start/quiet.test.ts | 2 +- .../msw-api/setup-worker/start/start.test.ts | 5 ++-- .../msw-api/setup-worker/stop/quiet.test.ts | 2 +- test/browser/msw-api/setup-worker/use.test.ts | 4 +-- test/browser/msw-api/unregister.test.ts | 2 +- test/browser/playwright.extend.ts | 13 +++++++--- test/browser/rest-api/body.mocks.ts | 2 +- .../rest-api/request/matching/all.test.ts | 2 +- .../request/matching/custom-predicate.test.ts | 4 +-- .../sse.client.send.extraneous.test.ts | 5 ++-- .../sse-api/sse.client.send.multiline.test.ts | 4 +-- test/browser/sse-api/sse.client.send.test.ts | 4 +-- test/browser/sse-api/sse.quiet.test.ts | 4 +-- test/browser/sse-api/sse.retry.test.ts | 4 +-- .../sse-api/sse.server.connect.test.ts | 4 +-- test/browser/sse-api/sse.use.test.ts | 4 +-- .../sse-api/sse.with-credentials.test.ts | 4 +-- .../batched-queries.apollo.test.ts | 10 ++----- .../batched-queries.batched-execute.test.ts | 2 +- .../life-cycle-events/on.node.test.ts | 2 +- .../msw-api/setup-server/use.node.test.ts | 4 +-- .../rest-api/cookies-inheritance.node.test.ts | 4 +-- .../third-party/axios-error-response.test.ts | 2 +- test/support/WebSocketServer.ts | 2 +- .../vitest-environment-node-websocket.ts | 2 +- test/support/graphql.ts | 2 +- test/support/utils.ts | 2 +- test/support/ws-test-utils.ts | 4 +-- test/typings/custom-handler.test-d.ts | 7 ++++- test/typings/custom-resolver.test-d.ts | 14 +++++----- test/typings/define-network.test-d.ts | 5 ++-- .../graphql-typed-document-node.test-d.ts | 2 +- .../graphql-typed-document-string.test-d.ts | 2 +- test/typings/http-custom-predicate.test-d.ts | 2 +- .../default-resolver-type.test-d.ts | 3 ++- .../request-handler-type.test-d.ts | 4 +-- .../regressions/response-body-type.test-d.ts | 3 ++- test/typings/ws.test-d.ts | 6 ++--- tsconfig.base.json | 1 + 92 files changed, 227 insertions(+), 221 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 617d6fda2..5852fdc2d 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -40,6 +40,14 @@ export default tseslint.config( }, ], '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/consistent-type-imports': [ + 'error', + { + prefer: 'type-imports', + fixStyle: 'separate-type-imports', + disallowTypeAnnotations: false, + }, + ], '@typescript-eslint/no-unused-vars': [ 'error', { diff --git a/src/browser/glossary.ts b/src/browser/glossary.ts index bde2907ec..f1fdcc46e 100644 --- a/src/browser/glossary.ts +++ b/src/browser/glossary.ts @@ -2,7 +2,7 @@ import type { LifeCycleEventEmitter, SharedOptions } from '#core/sharedOptions' import type { RequiredDeep } from '#core/typeUtils' import type { HttpNetworkFrameEventMap } from '#core/experimental/frames/http-frame' import type { WebSocketNetworkFrameEventMap } from '#core/experimental/frames/websocket-frame' -import { AnyHandler } from '#core/experimental/handlers-controller' +import type { AnyHandler } from '#core/experimental/handlers-controller' export interface StringifiedResponse extends ResponseInit { body: string | ArrayBuffer | ReadableStream | null diff --git a/src/browser/setup-worker.ts b/src/browser/setup-worker.ts index 93ccc23a1..afa51007c 100644 --- a/src/browser/setup-worker.ts +++ b/src/browser/setup-worker.ts @@ -5,7 +5,7 @@ import { defineNetwork, NetworkReadyState, } from '#core/experimental/define-network' -import { type AnyHandler } from '#core/experimental/handlers-controller' +import type { AnyHandler } from '#core/experimental/handlers-controller' import { InterceptorSource } from '#core/experimental/sources/interceptor-source' import { fromLegacyOnUnhandledRequest } from '#core/experimental/compat' import type { LifeCycleEventEmitter } from '#core/sharedOptions' diff --git a/src/browser/sources/service-worker-source.ts b/src/browser/sources/service-worker-source.ts index e6baacfb5..d1c9fd963 100644 --- a/src/browser/sources/service-worker-source.ts +++ b/src/browser/sources/service-worker-source.ts @@ -1,5 +1,5 @@ import { invariant } from 'outvariant' -import { Emitter } from 'rettime' +import type { Emitter } from 'rettime' import { DeferredPromise } from '@open-draft/deferred-promise' import { FetchResponse } from '@mswjs/interceptors' import { NetworkSource } from '#core/experimental/sources/network-source' @@ -16,8 +16,9 @@ import { supportsServiceWorker, } from '../utils/supports' import { getWorkerInstance } from '../utils/get-worker-instance' -import { WorkerChannel, WorkerChannelEventMap } from '../utils/workerChannel' -import { FindWorker } from '../glossary' +import type { WorkerChannelEventMap } from '../utils/workerChannel' +import { WorkerChannel } from '../utils/workerChannel' +import type { FindWorker } from '../glossary' import { deserializeRequest } from '../utils/deserializeRequest' import { validateWorkerScope } from '../utils/validate-worker-scope' diff --git a/src/core/experimental/define-network.ts b/src/core/experimental/define-network.ts index cdb4840c2..09fef4279 100644 --- a/src/core/experimental/define-network.ts +++ b/src/core/experimental/define-network.ts @@ -7,9 +7,9 @@ import { import { type NetworkFrameResolutionContext } from './frames/network-frame' import { type UnhandledFrameHandle } from './on-unhandled-frame' import { - AnyHandler, HandlersController, InMemoryHandlersController, + type AnyHandler, } from './handlers-controller' import { toReadonlyArray } from '../utils/internal/toReadonlyArray' diff --git a/src/core/experimental/frames/http-frame.test.ts b/src/core/experimental/frames/http-frame.test.ts index c422bb95e..5801aa629 100644 --- a/src/core/experimental/frames/http-frame.test.ts +++ b/src/core/experimental/frames/http-frame.test.ts @@ -2,7 +2,8 @@ import { http } from '../../http' import { graphql } from '../../graphql' import { ws } from '../../ws' import { bypass } from '../../bypass' -import { HttpNetworkFrame, HttpNetworkFrameEventMap } from './http-frame' +import type { HttpNetworkFrameEventMap } from './http-frame' +import { HttpNetworkFrame } from './http-frame' import { InMemoryHandlersController } from '#core/experimental/handlers-controller' beforeAll(() => { diff --git a/src/core/experimental/frames/http-frame.ts b/src/core/experimental/frames/http-frame.ts index e87770c3f..3f62e76af 100644 --- a/src/core/experimental/frames/http-frame.ts +++ b/src/core/experimental/frames/http-frame.ts @@ -1,7 +1,10 @@ import { TypedEvent } from 'rettime' import { until } from 'until-async' import { createRequestId } from '@mswjs/interceptors' -import { NetworkFrame, NetworkFrameResolutionContext } from './network-frame' +import { + NetworkFrame, + type NetworkFrameResolutionContext, +} from './network-frame' import { toPublicUrl } from '../../utils/request/toPublicUrl' import { executeHandlers } from '../../utils/executeHandlers' import { storeResponseCookies } from '../../utils/request/storeResponseCookies' @@ -11,7 +14,8 @@ import { executeUnhandledFrameHandle, type UnhandledFrameHandle, } from '../on-unhandled-frame' -import { HandlersController, AnyHandler } from '../handlers-controller' +import type { HandlersController } from '../handlers-controller' +import { type AnyHandler } from '../handlers-controller' import { type RequestHandler } from '../../handlers/RequestHandler' interface HttpNetworkFrameOptions { diff --git a/src/core/experimental/frames/websocket-frame.test.ts b/src/core/experimental/frames/websocket-frame.test.ts index 4ac311688..1dc538cec 100644 --- a/src/core/experimental/frames/websocket-frame.test.ts +++ b/src/core/experimental/frames/websocket-frame.test.ts @@ -1,10 +1,8 @@ import { http } from '../../http' import { graphql } from '../../graphql' import { ws } from '../../ws' -import { - WebSocketNetworkFrame, - WebSocketNetworkFrameEventMap, -} from './websocket-frame' +import type { WebSocketNetworkFrameEventMap } from './websocket-frame' +import { WebSocketNetworkFrame } from './websocket-frame' import { createTestWebSocketConnection } from '../../../../test/support/ws-test-utils' import { InMemoryHandlersController } from '#core/experimental/handlers-controller' diff --git a/src/core/experimental/frames/websocket-frame.ts b/src/core/experimental/frames/websocket-frame.ts index 73fb10b08..475bf3eaf 100644 --- a/src/core/experimental/frames/websocket-frame.ts +++ b/src/core/experimental/frames/websocket-frame.ts @@ -11,10 +11,11 @@ import { } from './network-frame' import { executeUnhandledFrameHandle, - UnhandledFrameHandle, + type UnhandledFrameHandle, } from '../on-unhandled-frame' import { devUtils } from '../../utils/internal/devUtils' -import { HandlersController, AnyHandler } from '../handlers-controller' +import type { HandlersController } from '../handlers-controller' +import { type AnyHandler } from '../handlers-controller' export interface WebSocketNetworkFrameOptions { connection: WebSocketConnectionData diff --git a/src/core/experimental/index.ts b/src/core/experimental/index.ts index f49bf7e55..cae9d4e02 100644 --- a/src/core/experimental/index.ts +++ b/src/core/experimental/index.ts @@ -1,5 +1,4 @@ -export { defineNetwork } from './define-network' -export type { DefineNetworkOptions } from './define-network' +export { defineNetwork, type DefineNetworkOptions } from './define-network' /* Network sources */ export { NetworkSource } from './sources/network-source' diff --git a/src/core/experimental/on-unhandled-frame.test.ts b/src/core/experimental/on-unhandled-frame.test.ts index e5514adf4..26d41f392 100644 --- a/src/core/experimental/on-unhandled-frame.test.ts +++ b/src/core/experimental/on-unhandled-frame.test.ts @@ -5,10 +5,8 @@ import type { } from '@mswjs/interceptors/WebSocket' import { HttpNetworkFrame } from './frames/http-frame' import { WebSocketNetworkFrame } from './frames/websocket-frame' -import { - executeUnhandledFrameHandle, - UnhandledFrameCallback, -} from './on-unhandled-frame' +import type { UnhandledFrameCallback } from './on-unhandled-frame' +import { executeUnhandledFrameHandle } from './on-unhandled-frame' beforeAll(() => { vi.spyOn(console, 'warn').mockImplementation(() => void 0) diff --git a/src/core/experimental/setup-api.ts b/src/core/experimental/setup-api.ts index 318559633..07e3ff016 100644 --- a/src/core/experimental/setup-api.ts +++ b/src/core/experimental/setup-api.ts @@ -1,9 +1,9 @@ import { type DefaultEventMap, Emitter } from 'rettime' -import { LifeCycleEventEmitter } from '../sharedOptions' +import { type LifeCycleEventEmitter } from '../sharedOptions' +import type { HandlersController } from './handlers-controller' import { - AnyHandler, - HandlersController, InMemoryHandlersController, + type AnyHandler, } from './handlers-controller' import { Disposable } from '../utils/internal/Disposable' import { toReadonlyArray } from '../utils/internal/toReadonlyArray' diff --git a/src/core/experimental/sources/interceptor-source.ts b/src/core/experimental/sources/interceptor-source.ts index edbb2d45d..5358658bb 100644 --- a/src/core/experimental/sources/interceptor-source.ts +++ b/src/core/experimental/sources/interceptor-source.ts @@ -1,9 +1,5 @@ -import { - BatchInterceptor, - Interceptor, - RequestController, - type HttpRequestEventMap, -} from '@mswjs/interceptors' +import type { Interceptor, RequestController } from '@mswjs/interceptors' +import { BatchInterceptor, type HttpRequestEventMap } from '@mswjs/interceptors' import type { WebSocketConnectionData, WebSocketEventMap, diff --git a/src/core/graphql.ts b/src/core/graphql.ts index aa61d5c71..ced990fbb 100644 --- a/src/core/graphql.ts +++ b/src/core/graphql.ts @@ -1,16 +1,16 @@ import type { OperationTypeNode } from 'graphql' import { - ResponseResolver, - RequestHandlerOptions, + type ResponseResolver, + type RequestHandlerOptions, } from './handlers/RequestHandler' import { GraphQLHandler, - GraphQLVariables, - GraphQLOperationType, - GraphQLResolverExtras, - GraphQLResponseBody, - GraphQLQuery, - GraphQLPredicate, + type GraphQLVariables, + type GraphQLOperationType, + type GraphQLResolverExtras, + type GraphQLResponseBody, + type GraphQLQuery, + type GraphQLPredicate, } from './handlers/GraphQLHandler' import type { Path } from './utils/matching/matchRequestUrl' diff --git a/src/core/handlers/GraphQLHandler.test.ts b/src/core/handlers/GraphQLHandler.test.ts index 6a9c9435d..ba865d7ad 100644 --- a/src/core/handlers/GraphQLHandler.test.ts +++ b/src/core/handlers/GraphQLHandler.test.ts @@ -1,14 +1,13 @@ // @vitest-environment jsdom import { createRequestId, encodeBuffer } from '@mswjs/interceptors' import { OperationTypeNode, parse } from 'graphql' -import { - GraphQLHandler, +import type { GraphQLRequestBody, GraphQLResolverExtras, - isDocumentNode, } from './GraphQLHandler' +import { GraphQLHandler, isDocumentNode } from './GraphQLHandler' import { HttpResponse } from '../HttpResponse' -import { ResponseResolver } from './RequestHandler' +import type { ResponseResolver } from './RequestHandler' const resolver: ResponseResolver> = ({ variables, diff --git a/src/core/handlers/GraphQLHandler.ts b/src/core/handlers/GraphQLHandler.ts index 9199addc0..bc0ed1cfb 100644 --- a/src/core/handlers/GraphQLHandler.ts +++ b/src/core/handlers/GraphQLHandler.ts @@ -6,30 +6,34 @@ import { type OperationTypeNode, } from 'graphql' import { - DefaultBodyType, RequestHandler, - RequestHandlerDefaultInfo, - RequestHandlerExecutionResult, - RequestHandlerOptions, - ResponseResolver, + type DefaultBodyType, + type RequestHandlerDefaultInfo, + type RequestHandlerExecutionResult, + type RequestHandlerOptions, + type ResponseResolver, } from './RequestHandler' import { getTimestamp } from '../utils/logging/getTimestamp' import { getStatusCodeColor } from '../utils/logging/getStatusCodeColor' import { serializeRequest } from '../utils/logging/serializeRequest' import { serializeResponse } from '../utils/logging/serializeResponse' -import { Match, matchRequestUrl, Path } from '../utils/matching/matchRequestUrl' import { - ParsedGraphQLRequest, - GraphQLMultipartRequestBody, + type Match, + matchRequestUrl, + type Path, +} from '../utils/matching/matchRequestUrl' +import { + type ParsedGraphQLRequest, + type GraphQLMultipartRequestBody, parseGraphQLRequest, parseDocumentNode, - ParsedGraphQLQuery, + type ParsedGraphQLQuery, } from '../utils/internal/parseGraphQLRequest' import { toPublicUrl } from '../utils/request/toPublicUrl' import { devUtils } from '../utils/internal/devUtils' import { getAllRequestCookies } from '../utils/request/getRequestCookies' -import { ResponseResolutionContext } from 'src/iife' -import { kDefaultContentType, StrictRequest } from '../HttpResponse' +import { type ResponseResolutionContext } from '../utils/executeHandlers' +import { kDefaultContentType, type StrictRequest } from '../HttpResponse' import { getAllAcceptedMimeTypes } from '../utils/request/getAllAcceptedMimeTypes' export interface DocumentTypeDecoration< diff --git a/src/core/handlers/HttpHandler.test.ts b/src/core/handlers/HttpHandler.test.ts index 8f8a3d558..70f018423 100644 --- a/src/core/handlers/HttpHandler.test.ts +++ b/src/core/handlers/HttpHandler.test.ts @@ -1,8 +1,9 @@ // @vitest-environment jsdom import { createRequestId } from '@mswjs/interceptors' -import { HttpHandler, HttpRequestResolverExtras } from './HttpHandler' +import type { HttpRequestResolverExtras } from './HttpHandler' +import { HttpHandler } from './HttpHandler' import { HttpResponse } from '..' -import { ResponseResolver } from './RequestHandler' +import type { ResponseResolver } from './RequestHandler' const resolver: ResponseResolver< HttpRequestResolverExtras<{ userId: string }> diff --git a/src/core/handlers/HttpHandler.ts b/src/core/handlers/HttpHandler.ts index 78de5caac..90c690582 100644 --- a/src/core/handlers/HttpHandler.ts +++ b/src/core/handlers/HttpHandler.ts @@ -1,4 +1,4 @@ -import { ResponseResolutionContext } from '../utils/executeHandlers' +import { type ResponseResolutionContext } from '../utils/executeHandlers' import { devUtils } from '../utils/internal/devUtils' import { isStringEqual } from '../utils/internal/isStringEqual' import { getStatusCodeColor } from '../utils/logging/getStatusCodeColor' @@ -7,18 +7,18 @@ import { serializeRequest } from '../utils/logging/serializeRequest' import { serializeResponse } from '../utils/logging/serializeResponse' import { matchRequestUrl, - Match, - Path, - PathParams, + type Match, + type Path, + type PathParams, } from '../utils/matching/matchRequestUrl' import { toPublicUrl } from '../utils/request/toPublicUrl' import { getAllRequestCookies } from '../utils/request/getRequestCookies' import { cleanUrl } from '../utils/url/cleanUrl' import { RequestHandler, - RequestHandlerDefaultInfo, - RequestHandlerOptions, - ResponseResolver, + type RequestHandlerDefaultInfo, + type RequestHandlerOptions, + type ResponseResolver, } from './RequestHandler' export type HttpHandlerMethod = string | RegExp diff --git a/src/core/handlers/RequestHandler.ts b/src/core/handlers/RequestHandler.ts index 6eca27876..a65c9abec 100644 --- a/src/core/handlers/RequestHandler.ts +++ b/src/core/handlers/RequestHandler.ts @@ -1,15 +1,15 @@ import { getCallFrame } from '../utils/internal/getCallFrame' import { - AsyncIterable, - Iterable, isIterable, + type AsyncIterable, + type Iterable, } from '../utils/internal/isIterable' import type { ResponseResolutionContext } from '../utils/executeHandlers' import type { MaybePromise } from '../typeUtils' +import type { HttpResponse } from '../HttpResponse' import { - StrictRequest, - HttpResponse, - DefaultUnsafeFetchResponse, + type StrictRequest, + type DefaultUnsafeFetchResponse, } from '../HttpResponse' import type { GraphQLRequestBody } from './GraphQLHandler' diff --git a/src/core/http.ts b/src/core/http.ts index 2d9ac7742..ff6b55706 100644 --- a/src/core/http.ts +++ b/src/core/http.ts @@ -1,13 +1,13 @@ import { - DefaultBodyType, - RequestHandlerOptions, - ResponseResolver, + type DefaultBodyType, + type RequestHandlerOptions, + type ResponseResolver, } from './handlers/RequestHandler' import { HttpMethods, HttpHandler, - HttpRequestResolverExtras, - HttpRequestPredicate, + type HttpRequestResolverExtras, + type HttpRequestPredicate, } from './handlers/HttpHandler' import type { PathParams } from './utils/matching/matchRequestUrl' diff --git a/src/core/utils/cookieStore.ts b/src/core/utils/cookieStore.ts index 671b1fd2b..5b7646ea3 100644 --- a/src/core/utils/cookieStore.ts +++ b/src/core/utils/cookieStore.ts @@ -4,7 +4,7 @@ import { Cookie, CookieJar, MemoryCookieStore, - SerializedCookie, + type SerializedCookie, type MemoryCookieStoreIndex, } from 'tough-cookie' import { jsonParse } from './internal/jsonParse' diff --git a/src/core/utils/executeHandlers.ts b/src/core/utils/executeHandlers.ts index bcbf03b2c..c740961c2 100644 --- a/src/core/utils/executeHandlers.ts +++ b/src/core/utils/executeHandlers.ts @@ -1,7 +1,5 @@ -import { - RequestHandler, - type RequestHandlerExecutionResult, -} from '../handlers/RequestHandler' +import type { RequestHandler } from '../handlers/RequestHandler' +import { type RequestHandlerExecutionResult } from '../handlers/RequestHandler' export interface HandlersExecutionResult { handler: RequestHandler diff --git a/src/core/utils/handleRequest.test.ts b/src/core/utils/handleRequest.test.ts index 8b452fa87..37e2b5790 100644 --- a/src/core/utils/handleRequest.test.ts +++ b/src/core/utils/handleRequest.test.ts @@ -1,11 +1,12 @@ // @vitest-environment jsdom import { Emitter } from 'strict-event-emitter' import { createRequestId } from '@mswjs/interceptors' -import { LifeCycleEventsMap, SharedOptions } from '../sharedOptions' -import { RequestHandler } from '../handlers/RequestHandler' +import type { LifeCycleEventsMap, SharedOptions } from '../sharedOptions' +import type { RequestHandler } from '../handlers/RequestHandler' import { http } from '../http' -import { handleRequest, HandleRequestOptions } from './handleRequest' -import { RequiredDeep } from '../typeUtils' +import type { HandleRequestOptions } from './handleRequest' +import { handleRequest } from './handleRequest' +import type { RequiredDeep } from '../typeUtils' import { HttpResponse } from '../HttpResponse' import { passthrough } from '../passthrough' diff --git a/src/core/utils/handleRequest.ts b/src/core/utils/handleRequest.ts index 72bf928e9..10252998e 100644 --- a/src/core/utils/handleRequest.ts +++ b/src/core/utils/handleRequest.ts @@ -1,7 +1,7 @@ import { until } from 'until-async' -import { Emitter } from 'strict-event-emitter' -import { LifeCycleEventsMap, SharedOptions } from '../sharedOptions' -import { RequiredDeep } from '../typeUtils' +import type { Emitter } from 'strict-event-emitter' +import type { LifeCycleEventsMap, SharedOptions } from '../sharedOptions' +import type { RequiredDeep } from '../typeUtils' import type { RequestHandler } from '../handlers/RequestHandler' import { type HandlersExecutionResult, diff --git a/src/core/utils/internal/parseGraphQLRequest.test.ts b/src/core/utils/internal/parseGraphQLRequest.test.ts index 3067ca889..dac66d252 100644 --- a/src/core/utils/internal/parseGraphQLRequest.test.ts +++ b/src/core/utils/internal/parseGraphQLRequest.test.ts @@ -3,10 +3,8 @@ */ import { encodeBuffer } from '@mswjs/interceptors' import { OperationTypeNode } from 'graphql' -import { - ParsedGraphQLRequest, - parseGraphQLRequest, -} from './parseGraphQLRequest' +import type { ParsedGraphQLRequest } from './parseGraphQLRequest' +import { parseGraphQLRequest } from './parseGraphQLRequest' test('returns true given a GraphQL-compatible request', async () => { const getRequest = new Request( diff --git a/src/core/utils/internal/parseMultipartData.ts b/src/core/utils/internal/parseMultipartData.ts index e5903ff7a..d38d6d342 100644 --- a/src/core/utils/internal/parseMultipartData.ts +++ b/src/core/utils/internal/parseMultipartData.ts @@ -1,5 +1,5 @@ import { stringToHeaders } from 'headers-polyfill' -import { DefaultRequestMultipartBody } from '../../handlers/RequestHandler' +import { type DefaultRequestMultipartBody } from '../../handlers/RequestHandler' interface ParsedContentHeaders { name: string diff --git a/src/core/utils/internal/pipeEvents.ts b/src/core/utils/internal/pipeEvents.ts index 43b57cd4e..0ccede713 100644 --- a/src/core/utils/internal/pipeEvents.ts +++ b/src/core/utils/internal/pipeEvents.ts @@ -1,4 +1,5 @@ -import { Emitter, EventMap } from 'strict-event-emitter' +import type { Emitter } from 'strict-event-emitter' +import { type EventMap } from 'strict-event-emitter' /** * Pipes all emitted events from one emitter to another. diff --git a/src/core/utils/internal/requestHandlerUtils.ts b/src/core/utils/internal/requestHandlerUtils.ts index 2b50fa29f..b875f8c5f 100644 --- a/src/core/utils/internal/requestHandlerUtils.ts +++ b/src/core/utils/internal/requestHandlerUtils.ts @@ -1,4 +1,4 @@ -import { RequestHandler } from '../../handlers/RequestHandler' +import type { RequestHandler } from '../../handlers/RequestHandler' export function use( currentHandlers: Array, diff --git a/src/core/utils/request/onUnhandledRequest.test.ts b/src/core/utils/request/onUnhandledRequest.test.ts index 7f485441d..d570a857a 100644 --- a/src/core/utils/request/onUnhandledRequest.test.ts +++ b/src/core/utils/request/onUnhandledRequest.test.ts @@ -1,8 +1,6 @@ // @vitest-environment jsdom -import { - onUnhandledRequest, - UnhandledRequestCallback, -} from './onUnhandledRequest' +import type { UnhandledRequestCallback } from './onUnhandledRequest' +import { onUnhandledRequest } from './onUnhandledRequest' const fixtures = { warningWithoutSuggestions: (url = `/api`) => `\ diff --git a/src/core/ws.ts b/src/core/ws.ts index 19ef4701d..ba34ee0d9 100644 --- a/src/core/ws.ts +++ b/src/core/ws.ts @@ -158,4 +158,4 @@ export const ws = { link: createWebSocketLinkHandler, } -export { WebSocketData } +export { type WebSocketData } diff --git a/src/core/ws/WebSocketClientManager.test.ts b/src/core/ws/WebSocketClientManager.test.ts index 05a6c666b..fc1b2d30f 100644 --- a/src/core/ws/WebSocketClientManager.test.ts +++ b/src/core/ws/WebSocketClientManager.test.ts @@ -1,10 +1,8 @@ // @vitest-environment node-websocket import { setMaxListeners } from 'node:events' import { WebSocketClientConnection } from '@mswjs/interceptors/WebSocket' -import { - WebSocketClientManager, - WebSocketBroadcastChannelMessage, -} from './WebSocketClientManager' +import type { WebSocketBroadcastChannelMessage } from './WebSocketClientManager' +import { WebSocketClientManager } from './WebSocketClientManager' import { TestWebSocketTransport } from '../../../test/support/ws-test-utils' const channel = new BroadcastChannel('test:channel') diff --git a/src/core/ws/WebSocketClientManager.ts b/src/core/ws/WebSocketClientManager.ts index 760e4a335..7ffdff4bd 100644 --- a/src/core/ws/WebSocketClientManager.ts +++ b/src/core/ws/WebSocketClientManager.ts @@ -3,7 +3,7 @@ import type { WebSocketClientConnectionProtocol, WebSocketClientEventMap, } from '@mswjs/interceptors/WebSocket' -import { WebSocketClientStore } from './WebSocketClientStore' +import type { WebSocketClientStore } from './WebSocketClientStore' import { WebSocketMemoryClientStore } from './WebSocketMemoryClientStore' import { WebSocketIndexedDBClientStore } from './WebSocketIndexedDBClientStore' diff --git a/src/core/ws/WebSocketIndexedDBClientStore.ts b/src/core/ws/WebSocketIndexedDBClientStore.ts index a3ae8d3f8..3f09ebbbf 100644 --- a/src/core/ws/WebSocketIndexedDBClientStore.ts +++ b/src/core/ws/WebSocketIndexedDBClientStore.ts @@ -1,9 +1,7 @@ import { DeferredPromise } from '@open-draft/deferred-promise' -import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket' -import { - type SerializedWebSocketClient, - WebSocketClientStore, -} from './WebSocketClientStore' +import type { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket' +import type { WebSocketClientStore } from './WebSocketClientStore' +import { type SerializedWebSocketClient } from './WebSocketClientStore' const DB_NAME = 'msw-websocket-clients' const DB_STORE_NAME = 'clients' diff --git a/src/core/ws/WebSocketMemoryClientStore.ts b/src/core/ws/WebSocketMemoryClientStore.ts index bb44583f3..722fc790f 100644 --- a/src/core/ws/WebSocketMemoryClientStore.ts +++ b/src/core/ws/WebSocketMemoryClientStore.ts @@ -1,8 +1,6 @@ -import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket' -import { - SerializedWebSocketClient, - WebSocketClientStore, -} from './WebSocketClientStore' +import type { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket' +import type { WebSocketClientStore } from './WebSocketClientStore' +import { type SerializedWebSocketClient } from './WebSocketClientStore' export class WebSocketMemoryClientStore implements WebSocketClientStore { private store: Map diff --git a/src/core/ws/handleWebSocketEvent.ts b/src/core/ws/handleWebSocketEvent.ts index 8ffd77b1f..0b4e62b15 100644 --- a/src/core/ws/handleWebSocketEvent.ts +++ b/src/core/ws/handleWebSocketEvent.ts @@ -1,10 +1,10 @@ import type { WebSocketConnectionData } from '@mswjs/interceptors/WebSocket' -import { RequestHandler } from '../handlers/RequestHandler' -import { WebSocketHandler } from '../handlers/WebSocketHandler' +import type { RequestHandler } from '../handlers/RequestHandler' +import type { WebSocketHandler } from '../handlers/WebSocketHandler' import { webSocketInterceptor } from './webSocketInterceptor' import { onUnhandledRequest, - UnhandledRequestStrategy, + type UnhandledRequestStrategy, } from '../utils/request/onUnhandledRequest' import { isHandlerKind } from '../utils/internal/isHandlerKind' diff --git a/src/native/index.ts b/src/native/index.ts index 9919e8fff..376bbb8c7 100644 --- a/src/native/index.ts +++ b/src/native/index.ts @@ -1,7 +1,7 @@ import type { Interceptor } from '@mswjs/interceptors' import { FetchInterceptor } from '@mswjs/interceptors/fetch' import { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest' -import { type AnyHandler } from '#core/experimental/handlers-controller' +import type { AnyHandler } from '#core/experimental/handlers-controller' import { defineNetwork, type DefineNetworkOptions, diff --git a/src/node/async-handlers-controller.ts b/src/node/async-handlers-controller.ts index 1d9e6fbf4..0376ff9ca 100644 --- a/src/node/async-handlers-controller.ts +++ b/src/node/async-handlers-controller.ts @@ -1,9 +1,9 @@ import { AsyncLocalStorage } from 'node:async_hooks' import { + HandlersController, type AnyHandler, type HandlersMap, - HandlersController, - HandlersControllerState, + type HandlersControllerState, } from '#core/experimental/handlers-controller' export interface AsyncHandlersControllerContext { diff --git a/src/node/setup-server-common.ts b/src/node/setup-server-common.ts index 0e5db0c63..b02723d05 100644 --- a/src/node/setup-server-common.ts +++ b/src/node/setup-server-common.ts @@ -1,12 +1,12 @@ import type { PartialDeep } from 'type-fest' -import { Interceptor } from '@mswjs/interceptors' +import type { Interceptor } from '@mswjs/interceptors' import { - type NetworkApi, NetworkReadyState, defineNetwork, + type NetworkApi, } from '#core/experimental/define-network' -import { type AnyHandler } from '#core/experimental/handlers-controller' -import { type HandlersController } from '#core/experimental/handlers-controller' +import type { AnyHandler } from '#core/experimental/handlers-controller' +import type { HandlersController } from '#core/experimental/handlers-controller' import { InterceptorSource } from '#core/experimental/sources/interceptor-source' import { fromLegacyOnUnhandledRequest } from '#core/experimental/compat' import type { ListenOptions, SetupServerCommon } from './glossary' diff --git a/src/node/setup-server.ts b/src/node/setup-server.ts index 2eff52398..35fe8a41f 100644 --- a/src/node/setup-server.ts +++ b/src/node/setup-server.ts @@ -7,9 +7,9 @@ import { defineNetwork, type DefineNetworkOptions, } from '#core/experimental/define-network' -import { type AnyHandler } from '#core/experimental/handlers-controller' +import type { AnyHandler } from '#core/experimental/handlers-controller' import { InterceptorSource } from '#core/experimental/sources/interceptor-source' -import { SetupServer } from './glossary' +import type { SetupServer } from './glossary' import { AsyncHandlersController } from './async-handlers-controller' import { defineSetupServerApi, diff --git a/test/browser/graphql-api/custom-predicate.test.ts b/test/browser/graphql-api/custom-predicate.test.ts index 3a0e4d3f2..93b7040d0 100644 --- a/test/browser/graphql-api/custom-predicate.test.ts +++ b/test/browser/graphql-api/custom-predicate.test.ts @@ -1,5 +1,5 @@ -import { graphql } from 'msw' -import { SetupWorkerApi } from 'msw/browser' +import type { graphql } from 'msw' +import type { SetupWorkerApi } from 'msw/browser' import { gql } from '../../support/graphql' import { test, expect } from '../playwright.extend' diff --git a/test/browser/graphql-api/response-patching.test.ts b/test/browser/graphql-api/response-patching.test.ts index a9f249564..5d5239b83 100644 --- a/test/browser/graphql-api/response-patching.test.ts +++ b/test/browser/graphql-api/response-patching.test.ts @@ -1,6 +1,6 @@ import type { ExecutionResult } from 'graphql' import { buildSchema, graphql } from 'graphql' -import { SetupWorkerApi } from 'msw/browser' +import type { SetupWorkerApi } from 'msw/browser' import { HttpServer } from '@open-draft/test-server/lib/http.js' import { test, expect } from '../playwright.extend' import { gql } from '../../support/graphql' diff --git a/test/browser/msw-api/context/delay.mocks.ts b/test/browser/msw-api/context/delay.mocks.ts index f8282b54f..b00690beb 100644 --- a/test/browser/msw-api/context/delay.mocks.ts +++ b/test/browser/msw-api/context/delay.mocks.ts @@ -1,4 +1,5 @@ -import { http, delay, DelayMode, HttpResponse } from 'msw' +import type { DelayMode } from 'msw' +import { http, delay, HttpResponse } from 'msw' import { setupWorker } from 'msw/browser' const worker = setupWorker( diff --git a/test/browser/msw-api/req/passthrough.test.ts b/test/browser/msw-api/req/passthrough.test.ts index e23054ea6..856d96c33 100644 --- a/test/browser/msw-api/req/passthrough.test.ts +++ b/test/browser/msw-api/req/passthrough.test.ts @@ -1,5 +1,5 @@ -import { HttpResponse, http, passthrough } from 'msw' -import { SetupWorkerApi } from 'msw/browser' +import type { HttpResponse, http, passthrough } from 'msw' +import type { SetupWorkerApi } from 'msw/browser' import { expect, test } from '../../playwright.extend' const PASSTHROUGH_EXAMPLE = new URL('./passthrough.mocks.ts', import.meta.url) diff --git a/test/browser/msw-api/setup-worker/fallback-mode/fallback-mode.test.ts b/test/browser/msw-api/setup-worker/fallback-mode/fallback-mode.test.ts index f0af4a0b7..f0c3eb1e1 100644 --- a/test/browser/msw-api/setup-worker/fallback-mode/fallback-mode.test.ts +++ b/test/browser/msw-api/setup-worker/fallback-mode/fallback-mode.test.ts @@ -1,8 +1,8 @@ import type { http, HttpResponse } from 'msw' import type { setupWorker } from 'msw/browser' import { createTeardown } from 'fs-teardown' -import { Page } from '@playwright/test' -import { HttpServer } from '@open-draft/test-server/lib/http.js' +import type { Page } from '@playwright/test' +import type { HttpServer } from '@open-draft/test-server/lib/http.js' import { fromTemp } from '../../../../support/utils' import { test, expect } from '../../../playwright.extend' diff --git a/test/browser/msw-api/setup-worker/life-cycle-events/on.mocks.ts b/test/browser/msw-api/setup-worker/life-cycle-events/on.mocks.ts index ea070cc9e..d1c79b847 100644 --- a/test/browser/msw-api/setup-worker/life-cycle-events/on.mocks.ts +++ b/test/browser/msw-api/setup-worker/life-cycle-events/on.mocks.ts @@ -1,10 +1,5 @@ -import { - HttpResponse, - http, - LifeCycleEventsMap, - passthrough, - bypass, -} from 'msw' +import type { LifeCycleEventsMap } from 'msw' +import { HttpResponse, http, passthrough, bypass } from 'msw' import { setupWorker } from 'msw/browser' const worker = setupWorker( diff --git a/test/browser/msw-api/setup-worker/life-cycle-events/removeAllListeners.test.ts b/test/browser/msw-api/setup-worker/life-cycle-events/removeAllListeners.test.ts index f8f02abbb..3838452f3 100644 --- a/test/browser/msw-api/setup-worker/life-cycle-events/removeAllListeners.test.ts +++ b/test/browser/msw-api/setup-worker/life-cycle-events/removeAllListeners.test.ts @@ -1,4 +1,4 @@ -import { SetupWorkerApi } from 'msw/browser' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/life-cycle-events/removeListener.test.ts b/test/browser/msw-api/setup-worker/life-cycle-events/removeListener.test.ts index e22847293..42a715fc0 100644 --- a/test/browser/msw-api/setup-worker/life-cycle-events/removeListener.test.ts +++ b/test/browser/msw-api/setup-worker/life-cycle-events/removeListener.test.ts @@ -1,4 +1,4 @@ -import { SetupWorkerApi } from 'msw/browser' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/listHandlers.test.ts b/test/browser/msw-api/setup-worker/listHandlers.test.ts index 64d9d6bd3..fab6b137d 100644 --- a/test/browser/msw-api/setup-worker/listHandlers.test.ts +++ b/test/browser/msw-api/setup-worker/listHandlers.test.ts @@ -1,5 +1,5 @@ -import { http, graphql } from 'msw' -import { SetupWorkerApi } from 'msw/browser' +import type { http, graphql } from 'msw' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/resetHandlers.test.ts b/test/browser/msw-api/setup-worker/resetHandlers.test.ts index a50638213..e151e5f5f 100644 --- a/test/browser/msw-api/setup-worker/resetHandlers.test.ts +++ b/test/browser/msw-api/setup-worker/resetHandlers.test.ts @@ -1,5 +1,5 @@ -import { http, HttpResponse } from 'msw' -import { SetupWorkerApi } from 'msw/browser' +import type { http, HttpResponse } from 'msw' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/restoreHandlers.test.ts b/test/browser/msw-api/setup-worker/restoreHandlers.test.ts index c77fcdc5a..a41dfa29f 100644 --- a/test/browser/msw-api/setup-worker/restoreHandlers.test.ts +++ b/test/browser/msw-api/setup-worker/restoreHandlers.test.ts @@ -1,5 +1,5 @@ -import { http, HttpResponse } from 'msw' -import { SetupWorkerApi } from 'msw/browser' +import type { http, HttpResponse } from 'msw' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/scenarios/iframe/iframe.test.ts b/test/browser/msw-api/setup-worker/scenarios/iframe/iframe.test.ts index fd08d44fc..682dd0dc7 100644 --- a/test/browser/msw-api/setup-worker/scenarios/iframe/iframe.test.ts +++ b/test/browser/msw-api/setup-worker/scenarios/iframe/iframe.test.ts @@ -1,4 +1,4 @@ -import { Frame } from '@playwright/test' +import type { Frame } from '@playwright/test' import * as express from 'express' import { test, expect } from '../../../../playwright.extend' diff --git a/test/browser/msw-api/setup-worker/start/error.test.ts b/test/browser/msw-api/setup-worker/start/error.test.ts index 38fdb3d15..04494f3fd 100644 --- a/test/browser/msw-api/setup-worker/start/error.test.ts +++ b/test/browser/msw-api/setup-worker/start/error.test.ts @@ -1,4 +1,4 @@ -import { SetupWorkerApi } from 'msw/browser' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/start/find-worker.test.ts b/test/browser/msw-api/setup-worker/start/find-worker.test.ts index 4f49f8936..75eb5a4cb 100644 --- a/test/browser/msw-api/setup-worker/start/find-worker.test.ts +++ b/test/browser/msw-api/setup-worker/start/find-worker.test.ts @@ -1,4 +1,4 @@ -import { SetupWorkerApi } from 'msw/browser' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/start/quiet.test.ts b/test/browser/msw-api/setup-worker/start/quiet.test.ts index 8908a433c..b4123e290 100644 --- a/test/browser/msw-api/setup-worker/start/quiet.test.ts +++ b/test/browser/msw-api/setup-worker/start/quiet.test.ts @@ -1,4 +1,4 @@ -import { SetupWorkerApi } from 'msw/browser' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/start/start.test.ts b/test/browser/msw-api/setup-worker/start/start.test.ts index 421880a84..15520bb23 100644 --- a/test/browser/msw-api/setup-worker/start/start.test.ts +++ b/test/browser/msw-api/setup-worker/start/start.test.ts @@ -1,5 +1,6 @@ -import { SetupWorkerApi } from 'msw/browser' -import { TestFixtures, test, expect } from '../../../playwright.extend' +import type { SetupWorkerApi } from 'msw/browser' +import type { TestFixtures } from '../../../playwright.extend' +import { test, expect } from '../../../playwright.extend' declare namespace window { export const msw: { diff --git a/test/browser/msw-api/setup-worker/stop/quiet.test.ts b/test/browser/msw-api/setup-worker/stop/quiet.test.ts index 42ccfba80..17078be38 100644 --- a/test/browser/msw-api/setup-worker/stop/quiet.test.ts +++ b/test/browser/msw-api/setup-worker/stop/quiet.test.ts @@ -1,4 +1,4 @@ -import { SetupWorkerApi } from 'msw/browser' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/setup-worker/use.test.ts b/test/browser/msw-api/setup-worker/use.test.ts index 1787df0d7..1c6f743ea 100644 --- a/test/browser/msw-api/setup-worker/use.test.ts +++ b/test/browser/msw-api/setup-worker/use.test.ts @@ -1,5 +1,5 @@ -import { http, HttpResponse } from 'msw' -import { SetupWorkerApi } from 'msw/browser' +import type { http, HttpResponse } from 'msw' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../playwright.extend' declare namespace window { diff --git a/test/browser/msw-api/unregister.test.ts b/test/browser/msw-api/unregister.test.ts index 5e0e3f0cf..688fdee27 100644 --- a/test/browser/msw-api/unregister.test.ts +++ b/test/browser/msw-api/unregister.test.ts @@ -1,4 +1,4 @@ -import { SetupWorkerApi } from 'msw/browser' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../playwright.extend' declare namespace window { diff --git a/test/browser/playwright.extend.ts b/test/browser/playwright.extend.ts index cd8909bea..ec69a800a 100644 --- a/test/browser/playwright.extend.ts +++ b/test/browser/playwright.extend.ts @@ -1,18 +1,23 @@ import url from 'node:url' import crypto from 'node:crypto' -import { test as base, expect, type Response, Page } from '@playwright/test' +import { + test as base, + expect, + type Response, + type Page, +} from '@playwright/test' import { Headers, headersToObject, flattenHeadersObject, type FlatHeadersObject, } from 'headers-polyfill' -import { spyOnConsole, ConsoleMessages } from 'page-with' +import { spyOnConsole, type ConsoleMessages } from 'page-with' import { HttpServer, - HttpServerMiddleware, + type HttpServerMiddleware, } from '@open-draft/test-server/lib/http.js' -import { +import type { Compilation, CompilationOptions, WebpackHttpServer, diff --git a/test/browser/rest-api/body.mocks.ts b/test/browser/rest-api/body.mocks.ts index 4a9294515..d0dc92da3 100644 --- a/test/browser/rest-api/body.mocks.ts +++ b/test/browser/rest-api/body.mocks.ts @@ -1,4 +1,4 @@ -import { http, HttpResponse, ResponseResolver } from 'msw' +import { http, HttpResponse, type ResponseResolver } from 'msw' import { setupWorker } from 'msw/browser' const forwardRequestBody: ResponseResolver = async ({ request }) => { diff --git a/test/browser/rest-api/request/matching/all.test.ts b/test/browser/rest-api/request/matching/all.test.ts index e0e473de2..ac8d3c01b 100644 --- a/test/browser/rest-api/request/matching/all.test.ts +++ b/test/browser/rest-api/request/matching/all.test.ts @@ -1,7 +1,7 @@ /** * @vitest-environment node */ -import { Response } from '@playwright/test' +import { type Response } from '@playwright/test' import { test, expect } from '../../../playwright.extend' function forEachMethod( diff --git a/test/browser/rest-api/request/matching/custom-predicate.test.ts b/test/browser/rest-api/request/matching/custom-predicate.test.ts index be4a89ef9..babc926b4 100644 --- a/test/browser/rest-api/request/matching/custom-predicate.test.ts +++ b/test/browser/rest-api/request/matching/custom-predicate.test.ts @@ -1,5 +1,5 @@ -import { http } from 'msw' -import { SetupWorkerApi } from 'msw/browser' +import type { http } from 'msw' +import type { SetupWorkerApi } from 'msw/browser' import { test, expect } from '../../../playwright.extend' declare namespace window { diff --git a/test/browser/sse-api/sse.client.send.extraneous.test.ts b/test/browser/sse-api/sse.client.send.extraneous.test.ts index 3cf05396d..7c800e18d 100644 --- a/test/browser/sse-api/sse.client.send.extraneous.test.ts +++ b/test/browser/sse-api/sse.client.send.extraneous.test.ts @@ -1,5 +1,6 @@ -import { http, sse, type ServerSentEventMessage } from 'msw' -import { setupWorker } from 'msw/browser' +import type { http, sse } from 'msw' +import { type ServerSentEventMessage } from 'msw' +import type { setupWorker } from 'msw/browser' import { test, expect } from '../playwright.extend' declare namespace window { diff --git a/test/browser/sse-api/sse.client.send.multiline.test.ts b/test/browser/sse-api/sse.client.send.multiline.test.ts index 41985d912..289a56756 100644 --- a/test/browser/sse-api/sse.client.send.multiline.test.ts +++ b/test/browser/sse-api/sse.client.send.multiline.test.ts @@ -1,5 +1,5 @@ -import { sse } from 'msw' -import { setupWorker } from 'msw/browser' +import type { sse } from 'msw' +import type { setupWorker } from 'msw/browser' import { test, expect } from '../playwright.extend' declare namespace window { diff --git a/test/browser/sse-api/sse.client.send.test.ts b/test/browser/sse-api/sse.client.send.test.ts index 42baf1b30..42777124f 100644 --- a/test/browser/sse-api/sse.client.send.test.ts +++ b/test/browser/sse-api/sse.client.send.test.ts @@ -1,5 +1,5 @@ -import { sse } from 'msw' -import { setupWorker } from 'msw/browser' +import type { sse } from 'msw' +import type { setupWorker } from 'msw/browser' import { test, expect } from '../playwright.extend' declare namespace window { diff --git a/test/browser/sse-api/sse.quiet.test.ts b/test/browser/sse-api/sse.quiet.test.ts index 811122832..83517b9eb 100644 --- a/test/browser/sse-api/sse.quiet.test.ts +++ b/test/browser/sse-api/sse.quiet.test.ts @@ -1,5 +1,5 @@ -import { sse } from 'msw' -import { setupWorker } from 'msw/browser' +import type { sse } from 'msw' +import type { setupWorker } from 'msw/browser' import { test, expect } from '../playwright.extend' declare namespace window { diff --git a/test/browser/sse-api/sse.retry.test.ts b/test/browser/sse-api/sse.retry.test.ts index 13374fe03..ee3ee292a 100644 --- a/test/browser/sse-api/sse.retry.test.ts +++ b/test/browser/sse-api/sse.retry.test.ts @@ -1,5 +1,5 @@ -import { sse } from 'msw' -import { setupWorker } from 'msw/browser' +import type { sse } from 'msw' +import type { setupWorker } from 'msw/browser' import { test, expect } from '../playwright.extend' declare namespace window { diff --git a/test/browser/sse-api/sse.server.connect.test.ts b/test/browser/sse-api/sse.server.connect.test.ts index bd1741901..90a3554ab 100644 --- a/test/browser/sse-api/sse.server.connect.test.ts +++ b/test/browser/sse-api/sse.server.connect.test.ts @@ -1,5 +1,5 @@ -import { sse } from 'msw' -import { setupWorker } from 'msw/browser' +import type { sse } from 'msw' +import type { setupWorker } from 'msw/browser' import { createTestHttpServer } from '@epic-web/test-server/http' import { test, expect } from '../playwright.extend' diff --git a/test/browser/sse-api/sse.use.test.ts b/test/browser/sse-api/sse.use.test.ts index 346416604..b254cf4b2 100644 --- a/test/browser/sse-api/sse.use.test.ts +++ b/test/browser/sse-api/sse.use.test.ts @@ -1,5 +1,5 @@ -import { sse } from 'msw' -import { setupWorker } from 'msw/browser' +import type { sse } from 'msw' +import type { setupWorker } from 'msw/browser' import { test, expect } from '../playwright.extend' declare namespace window { diff --git a/test/browser/sse-api/sse.with-credentials.test.ts b/test/browser/sse-api/sse.with-credentials.test.ts index 98f9cee8c..aa34cfd04 100644 --- a/test/browser/sse-api/sse.with-credentials.test.ts +++ b/test/browser/sse-api/sse.with-credentials.test.ts @@ -1,5 +1,5 @@ -import { sse } from 'msw' -import { setupWorker } from 'msw/browser' +import type { sse } from 'msw' +import type { setupWorker } from 'msw/browser' import { test, expect } from '../playwright.extend' declare namespace window { diff --git a/test/node/graphql-api/batched-queries.apollo.test.ts b/test/node/graphql-api/batched-queries.apollo.test.ts index d8599d919..548770468 100644 --- a/test/node/graphql-api/batched-queries.apollo.test.ts +++ b/test/node/graphql-api/batched-queries.apollo.test.ts @@ -4,14 +4,8 @@ * @see https://github.com/mswjs/msw/issues/510 * @see https://www.apollographql.com/docs/router/executing-operations/query-batching */ -import { - http, - graphql, - bypass, - HttpResponse, - getResponse, - RequestHandler, -} from 'msw' +import type { RequestHandler } from 'msw' +import { http, graphql, bypass, HttpResponse, getResponse } from 'msw' import { setupServer } from 'msw/node' import { HttpServer } from '@open-draft/test-server/http' diff --git a/test/node/graphql-api/batched-queries.batched-execute.test.ts b/test/node/graphql-api/batched-queries.batched-execute.test.ts index 88ba33382..e3bf6b2e8 100644 --- a/test/node/graphql-api/batched-queries.batched-execute.test.ts +++ b/test/node/graphql-api/batched-queries.batched-execute.test.ts @@ -10,7 +10,7 @@ import { print, defaultFieldResolver, } from 'graphql' -import { http, HttpResponse, GraphQLVariables, bypass } from 'msw' +import { http, HttpResponse, type GraphQLVariables, bypass } from 'msw' import { setupServer } from 'msw/node' import { HttpServer } from '@open-draft/test-server/http' import { createGraphQLClient } from '../../support/graphql' diff --git a/test/node/msw-api/setup-server/life-cycle-events/on.node.test.ts b/test/node/msw-api/setup-server/life-cycle-events/on.node.test.ts index 8f795ecbc..892a64cb2 100644 --- a/test/node/msw-api/setup-server/life-cycle-events/on.node.test.ts +++ b/test/node/msw-api/setup-server/life-cycle-events/on.node.test.ts @@ -1,6 +1,6 @@ // @vitest-environment node import { HttpResponse, http } from 'msw' -import { SetupServerApi, setupServer } from 'msw/node' +import { type SetupServerApi, setupServer } from 'msw/node' import { HttpServer } from '@open-draft/test-server/http' const httpServer = new HttpServer((app) => { diff --git a/test/node/msw-api/setup-server/use.node.test.ts b/test/node/msw-api/setup-server/use.node.test.ts index 22dcc189c..dc1a7cbf1 100644 --- a/test/node/msw-api/setup-server/use.node.test.ts +++ b/test/node/msw-api/setup-server/use.node.test.ts @@ -2,8 +2,8 @@ * @vitest-environment node */ import { HttpResponse, http } from 'msw' -import { SetupServer, setupServer } from 'msw/node' -import { RequestHandler as ExpressRequestHandler } from 'express' +import { type SetupServer, setupServer } from 'msw/node' +import type { RequestHandler as ExpressRequestHandler } from 'express' import { HttpServer } from '@open-draft/test-server/http' const httpServer = new HttpServer((app) => { diff --git a/test/node/rest-api/cookies-inheritance.node.test.ts b/test/node/rest-api/cookies-inheritance.node.test.ts index 5fe3babd3..005f420df 100644 --- a/test/node/rest-api/cookies-inheritance.node.test.ts +++ b/test/node/rest-api/cookies-inheritance.node.test.ts @@ -2,9 +2,9 @@ * @vitest-environment jsdom */ import { HttpResponse, http } from 'msw' -import { setupServer, SetupServer } from 'msw/node' +import { setupServer, type SetupServer } from 'msw/node' import { HttpServer } from '@open-draft/test-server/http' -import { RequestHandler as ExpressRequestHandler } from 'express' +import type { RequestHandler as ExpressRequestHandler } from 'express' let server: SetupServer diff --git a/test/node/third-party/axios-error-response.test.ts b/test/node/third-party/axios-error-response.test.ts index 123ccfa60..491043d0d 100644 --- a/test/node/third-party/axios-error-response.test.ts +++ b/test/node/third-party/axios-error-response.test.ts @@ -1,5 +1,5 @@ // @vitest-environment node -import axios, { AxiosError } from 'axios' +import axios, { type AxiosError } from 'axios' import { http, HttpResponse } from 'msw' import { setupServer } from 'msw/node' diff --git a/test/support/WebSocketServer.ts b/test/support/WebSocketServer.ts index 0cbb960cd..b73d0cf3b 100644 --- a/test/support/WebSocketServer.ts +++ b/test/support/WebSocketServer.ts @@ -1,6 +1,6 @@ import { invariant } from 'outvariant' import { Emitter } from 'strict-event-emitter' -import fastify, { FastifyInstance } from 'fastify' +import fastify, { type FastifyInstance } from 'fastify' import fastifyWebSocket, { type WebSocket as FastifySocket, } from '@fastify/websocket' diff --git a/test/support/environments/vitest-environment-node-websocket.ts b/test/support/environments/vitest-environment-node-websocket.ts index 869d4c096..e81f372fc 100644 --- a/test/support/environments/vitest-environment-node-websocket.ts +++ b/test/support/environments/vitest-environment-node-websocket.ts @@ -1,7 +1,7 @@ /** * Node.js environment superset that has a global WebSocket API. */ -import { builtinEnvironments, Environment } from 'vitest/environments' +import { builtinEnvironments, type Environment } from 'vitest/environments' import { WebSocket } from 'undici' export default { diff --git a/test/support/graphql.ts b/test/support/graphql.ts index 84f1a8218..c0b6e0fbc 100644 --- a/test/support/graphql.ts +++ b/test/support/graphql.ts @@ -1,5 +1,5 @@ import { parse, type ExecutionResult } from 'graphql' -import { +import type { DocumentTypeDecoration, TypedDocumentNode, } from '@graphql-typed-document-node/core' diff --git a/test/support/utils.ts b/test/support/utils.ts index ec800beaa..213d2e3bf 100644 --- a/test/support/utils.ts +++ b/test/support/utils.ts @@ -1,6 +1,6 @@ import url from 'node:url' import path from 'node:path' -import { ClientRequest, IncomingMessage } from 'http' +import type { ClientRequest, IncomingMessage } from 'http' export function sleep(duration: number) { return new Promise((resolve) => { diff --git a/test/support/ws-test-utils.ts b/test/support/ws-test-utils.ts index 69338483a..b61bb563d 100644 --- a/test/support/ws-test-utils.ts +++ b/test/support/ws-test-utils.ts @@ -1,9 +1,9 @@ +import type { WebSocketConnectionData } from '@mswjs/interceptors/WebSocket' import { WebSocketClientConnection, - WebSocketConnectionData, WebSocketServerConnection, } from '@mswjs/interceptors/WebSocket' -import { +import type { WebSocketTransport, WebSocketData, } from '@mswjs/interceptors/WebSocket' diff --git a/test/typings/custom-handler.test-d.ts b/test/typings/custom-handler.test-d.ts index c2cddfa4d..8f4f18aa5 100644 --- a/test/typings/custom-handler.test-d.ts +++ b/test/typings/custom-handler.test-d.ts @@ -1,5 +1,10 @@ import { it } from 'vitest' -import { http, HttpRequestHandler, GraphQLRequestHandler, graphql } from 'msw' +import { + http, + graphql, + type HttpRequestHandler, + type GraphQLRequestHandler, +} from 'msw' import { setupWorker } from 'msw/browser' import { setupServer } from 'msw/node' diff --git a/test/typings/custom-resolver.test-d.ts b/test/typings/custom-resolver.test-d.ts index 18d30a6e4..801efa16c 100644 --- a/test/typings/custom-resolver.test-d.ts +++ b/test/typings/custom-resolver.test-d.ts @@ -1,15 +1,15 @@ import { it, expectTypeOf } from 'vitest' import { http, - HttpResponseResolver, + graphql, delay, - PathParams, - DefaultBodyType, HttpResponse, - graphql, - GraphQLQuery, - GraphQLVariables, - GraphQLResponseResolver, + type HttpResponseResolver, + type PathParams, + type DefaultBodyType, + type GraphQLQuery, + type GraphQLVariables, + type GraphQLResponseResolver, } from 'msw' it('custom http resolver has correct parameters type', () => { diff --git a/test/typings/define-network.test-d.ts b/test/typings/define-network.test-d.ts index b2866bbf8..d00f5681d 100644 --- a/test/typings/define-network.test-d.ts +++ b/test/typings/define-network.test-d.ts @@ -1,5 +1,6 @@ -import { DefaultEventMap, Emitter, TypedEvent } from 'rettime' -import { defineNetwork, NetworkSource, NetworkFrame } from 'msw/experimental' +import type { DefaultEventMap, Emitter, TypedEvent } from 'rettime' +import type { NetworkFrame } from 'msw/experimental' +import { defineNetwork, NetworkSource } from 'msw/experimental' it('uses an empty event map when no sources were provided', () => { expectTypeOf( diff --git a/test/typings/graphql-typed-document-node.test-d.ts b/test/typings/graphql-typed-document-node.test-d.ts index 81139ba1c..291c4705f 100644 --- a/test/typings/graphql-typed-document-node.test-d.ts +++ b/test/typings/graphql-typed-document-node.test-d.ts @@ -1,5 +1,5 @@ import { graphql, HttpResponse } from 'msw' -import { TypedDocumentNode } from '@graphql-typed-document-node/core' +import { type TypedDocumentNode } from '@graphql-typed-document-node/core' const GetUserQuery = {} as TypedDocumentNode< { diff --git a/test/typings/graphql-typed-document-string.test-d.ts b/test/typings/graphql-typed-document-string.test-d.ts index f5b996c9f..de81ca5d8 100644 --- a/test/typings/graphql-typed-document-string.test-d.ts +++ b/test/typings/graphql-typed-document-string.test-d.ts @@ -1,5 +1,5 @@ import { graphql, HttpResponse } from 'msw' -import { DocumentTypeDecoration } from '@graphql-typed-document-node/core' +import type { DocumentTypeDecoration } from '@graphql-typed-document-node/core' declare function createTypedDocumentString( query: string, diff --git a/test/typings/http-custom-predicate.test-d.ts b/test/typings/http-custom-predicate.test-d.ts index 47d4a320b..16f070ec4 100644 --- a/test/typings/http-custom-predicate.test-d.ts +++ b/test/typings/http-custom-predicate.test-d.ts @@ -1,4 +1,4 @@ -import { http, HttpResponseResolver } from 'msw' +import { http, type HttpResponseResolver } from 'msw' const resolver: HttpResponseResolver = () => void 0 diff --git a/test/typings/regressions/default-resolver-type.test-d.ts b/test/typings/regressions/default-resolver-type.test-d.ts index ba9abfa9b..c0bbcbc1d 100644 --- a/test/typings/regressions/default-resolver-type.test-d.ts +++ b/test/typings/regressions/default-resolver-type.test-d.ts @@ -1,7 +1,8 @@ /** * @see https://github.com/mswjs/msw/issues/2506 */ -import { http, HttpResponse, HttpResponseResolver } from 'msw' +import type { HttpResponseResolver } from 'msw' +import { http, HttpResponse } from 'msw' it('supports a union of the matching explicit and implicit response resolvers', () => { function handle(resolver?: HttpResponseResolver) { diff --git a/test/typings/regressions/request-handler-type.test-d.ts b/test/typings/regressions/request-handler-type.test-d.ts index 8ed76b7ff..8fd74f5b5 100644 --- a/test/typings/regressions/request-handler-type.test-d.ts +++ b/test/typings/regressions/request-handler-type.test-d.ts @@ -4,9 +4,9 @@ import { http, graphql, - HttpHandler, ws, - RequestHandler, + type HttpHandler, + type RequestHandler, type AnyHandler, type WebSocketHandler, type GraphQLHandler, diff --git a/test/typings/regressions/response-body-type.test-d.ts b/test/typings/regressions/response-body-type.test-d.ts index d4718701b..6ffa07588 100644 --- a/test/typings/regressions/response-body-type.test-d.ts +++ b/test/typings/regressions/response-body-type.test-d.ts @@ -1,7 +1,8 @@ /** * @see https://github.com/mswjs/msw/issues/1823 */ -import { http, Path, HttpResponse, DefaultBodyType } from 'msw' +import type { Path, DefaultBodyType } from 'msw' +import { http, HttpResponse } from 'msw' it('accepts custom response body generic argument', () => { function myHandler( diff --git a/test/typings/ws.test-d.ts b/test/typings/ws.test-d.ts index 05b4f103b..a72fd14f5 100644 --- a/test/typings/ws.test-d.ts +++ b/test/typings/ws.test-d.ts @@ -1,11 +1,11 @@ import { it, expectTypeOf } from 'vitest' -import { +import type { WebSocketData, WebSocketLink, WebSocketHandlerConnection, - ws, } from 'msw' -import { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket' +import { ws } from 'msw' +import type { WebSocketClientConnectionProtocol } from '@mswjs/interceptors/WebSocket' it('supports URL as the link argument', () => { expectTypeOf(ws.link('ws://localhost')).toEqualTypeOf() diff --git a/tsconfig.base.json b/tsconfig.base.json index 39ca0d911..7e0982c77 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -7,6 +7,7 @@ "strictNullChecks": true, "skipLibCheck": true, "allowSyntheticDefaultImports": false, + "verbatimModuleSyntax": true, "paths": { "#core": ["./src/core"], "#core/*": ["./src/core/*"] From 128812f20d92f938116376b84dd6e138496f375e Mon Sep 17 00:00:00 2001 From: Artem Zakharchenko Date: Thu, 16 Apr 2026 17:10:32 +0200 Subject: [PATCH 3/3] fix(deserializeRequest): remove non-existing type --- src/browser/utils/deserializeRequest.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/browser/utils/deserializeRequest.ts b/src/browser/utils/deserializeRequest.ts index db82d2156..a6320ffd1 100644 --- a/src/browser/utils/deserializeRequest.ts +++ b/src/browser/utils/deserializeRequest.ts @@ -1,5 +1,4 @@ import { pruneGetRequestBody } from './pruneGetRequestBody' -import type { ServiceWorkerIncomingRequest } from '../glossary' /** * Converts a given request received from the Service Worker