From 83c39c3fa674709e1d5f74d3198ec0ea63e15917 Mon Sep 17 00:00:00 2001 From: Ivan Hofer Date: Sun, 11 Sep 2022 19:57:35 +0200 Subject: [PATCH 1/4] feat: better esm support fixes #1267 --- src/context/status.ts | 2 +- src/node/createSetupServer.ts | 3 ++- src/node/setupServer.ts | 4 ++-- src/utils/matching/matchRequestUrl.ts | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/context/status.ts b/src/context/status.ts index e8113519c..c2985f031 100644 --- a/src/context/status.ts +++ b/src/context/status.ts @@ -1,4 +1,4 @@ -import statuses from 'statuses/codes.json' +import statuses from 'statuses/codes.json' assert { type: 'json' } import { ResponseTransformer } from '../response' /** diff --git a/src/node/createSetupServer.ts b/src/node/createSetupServer.ts index 56b501ace..dc3ee55d7 100644 --- a/src/node/createSetupServer.ts +++ b/src/node/createSetupServer.ts @@ -1,4 +1,5 @@ -import { bold } from 'chalk' +import chalk from 'chalk' +const { bold } = chalk import { isNodeProcess } from 'is-node-process' import { StrictEventEmitter } from 'strict-event-emitter' import { diff --git a/src/node/setupServer.ts b/src/node/setupServer.ts index b8de95938..3b3426528 100644 --- a/src/node/setupServer.ts +++ b/src/node/setupServer.ts @@ -1,5 +1,5 @@ -import { ClientRequestInterceptor } from '@mswjs/interceptors/lib/interceptors/ClientRequest' -import { XMLHttpRequestInterceptor } from '@mswjs/interceptors/lib/interceptors/XMLHttpRequest' +import { ClientRequestInterceptor } from '@mswjs/interceptors/lib/interceptors/ClientRequest/index.js' +import { XMLHttpRequestInterceptor } from '@mswjs/interceptors/lib/interceptors/XMLHttpRequest/index.js' import { createSetupServer } from './createSetupServer' /** diff --git a/src/utils/matching/matchRequestUrl.ts b/src/utils/matching/matchRequestUrl.ts index c97466a44..8d5d25cfc 100644 --- a/src/utils/matching/matchRequestUrl.ts +++ b/src/utils/matching/matchRequestUrl.ts @@ -1,5 +1,5 @@ import { match } from 'path-to-regexp' -import { getCleanUrl } from '@mswjs/interceptors/lib/utils/getCleanUrl' +import { getCleanUrl } from '@mswjs/interceptors/lib/utils/getCleanUrl.js' import { normalizePath } from './normalizePath' export type Path = string | RegExp From 7f42f5b164e7dd321e5d53c9883102956a72e99c Mon Sep 17 00:00:00 2001 From: Ivan Hofer Date: Tue, 13 Sep 2022 18:09:29 +0200 Subject: [PATCH 2/4] refactor: add workaround for `useFetch` --- src/context/fetch.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/context/fetch.ts b/src/context/fetch.ts index a596d43d7..0121fdeb7 100644 --- a/src/context/fetch.ts +++ b/src/context/fetch.ts @@ -3,7 +3,12 @@ import { Headers } from 'headers-polyfill' import { MockedRequest } from '../utils/request/MockedRequest' const useFetch: (input: RequestInfo, init?: RequestInit) => Promise = - isNodeProcess() ? require('node-fetch') : window.fetch + isNodeProcess() + ? (input, init) => + import('node-fetch').then(({ default: nodeFetch }) => + (nodeFetch as unknown as typeof window.fetch)(input, init), + ) + : window.fetch export const augmentRequestInit = (requestInit: RequestInit): RequestInit => { const headers = new Headers(requestInit.headers) From d2c6e938b8b91ff2f3b6ab05ce2429c018aa0fcc Mon Sep 17 00:00:00 2001 From: Ivan Hofer Date: Tue, 13 Sep 2022 18:12:43 +0200 Subject: [PATCH 3/4] refactor: move `statuses` to `devDependencies` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 835e26535..7a451ce75 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,6 @@ "node-fetch": "^2.6.7", "outvariant": "^1.3.0", "path-to-regexp": "^6.2.0", - "statuses": "^2.0.0", "strict-event-emitter": "^0.2.0", "type-fest": "^2.19.0", "yargs": "^17.3.1" @@ -139,6 +138,7 @@ "regenerator-runtime": "^0.13.9", "rimraf": "^3.0.2", "simple-git-hooks": "^2.8.0", + "statuses": "^2.0.0", "ts-jest": "26", "ts-loader": "^9.2.6", "ts-node": "^10.1.0", From 818a27bf03afe8d62829ab882a6fe8698cad3efa Mon Sep 17 00:00:00 2001 From: Ivan Hofer Date: Tue, 13 Sep 2022 18:19:04 +0200 Subject: [PATCH 4/4] fix: remove unneeded type assertion again --- src/context/status.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/context/status.ts b/src/context/status.ts index c2985f031..e8113519c 100644 --- a/src/context/status.ts +++ b/src/context/status.ts @@ -1,4 +1,4 @@ -import statuses from 'statuses/codes.json' assert { type: 'json' } +import statuses from 'statuses/codes.json' import { ResponseTransformer } from '../response' /**