@depup/msw 3.0.0-depup.0 → 3.0.2-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/changes.json +1 -1
- package/lib/_chunks/attach-sibling-handlers.js +1 -1
- package/lib/_chunks/cookie-store.js +9 -1
- package/lib/_chunks/cookie-store.js.map +1 -1
- package/lib/_chunks/http-handler.js +14 -9
- package/lib/_chunks/http-handler.js.map +1 -1
- package/lib/_chunks/http-response.js +1 -1
- package/lib/_chunks/interceptor-source.js +15 -1
- package/lib/_chunks/interceptor-source.js.map +1 -1
- package/lib/_chunks/request-handler.js +1 -1
- package/lib/_chunks/sse.js +1 -1
- package/lib/browser/index.js +1 -1
- package/lib/graphql/index.js +1 -1
- package/lib/iife/index.js +37 -10
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +1 -1
- package/lib/node/index.js +1 -1
- package/lib/vite/index.js +10 -7
- package/lib/vite/index.js.map +1 -1
- package/lib/vite/runtime.d.ts +2 -3
- package/lib/vite/runtime.js +70 -68
- package/lib/vite/runtime.js.map +1 -1
- package/package.json +6 -6
- package/src/core/experimental/frames/http-frame.test.ts +49 -0
- package/src/core/experimental/frames/http-frame.ts +19 -0
- package/src/http/http-handler.test.ts +19 -1
- package/src/http/http-handler.ts +13 -0
- package/src/vite/plugin.test.ts +25 -7
- package/src/vite/plugin.ts +13 -10
- package/src/vite/runtime.ts +85 -85
- package/src/vite/tsconfig.build.json +1 -1
- package/src/vite/options.d.ts +0 -5
package/src/vite/runtime.ts
CHANGED
|
@@ -1,117 +1,117 @@
|
|
|
1
1
|
/// <reference types="vite/client" />
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
defineNetwork,
|
|
5
|
-
NetworkReadyState,
|
|
6
|
-
type NetworkApi,
|
|
7
|
-
} from 'msw/experimental'
|
|
8
|
-
import { defaultNetworkOptions } from 'virtual:msw/options'
|
|
3
|
+
import { defineNetwork, NetworkReadyState } from 'msw/experimental'
|
|
9
4
|
|
|
10
5
|
const hot = import.meta.hot
|
|
11
6
|
const hotData: { disposeNetwork?: () => Promise<void> } | undefined = hot?.data
|
|
12
7
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
export async function createNetwork(
|
|
9
|
+
options: Parameters<typeof defineNetwork>[0],
|
|
10
|
+
): Promise<ReturnType<typeof defineNetwork>> {
|
|
11
|
+
// SSR imports can re-evaluate the network before the old HMR listener runs.
|
|
12
|
+
while (hotData?.disposeNetwork) {
|
|
13
|
+
const disposePrevious = hotData.disposeNetwork
|
|
14
|
+
await disposePrevious()
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
if (hotData.disposeNetwork === disposePrevious) {
|
|
17
|
+
break
|
|
18
|
+
}
|
|
20
19
|
}
|
|
21
|
-
}
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
defineNetwork<typeof defaultNetworkOptions.sources>(defaultNetworkOptions)
|
|
21
|
+
const network = defineNetwork(options)
|
|
25
22
|
|
|
26
|
-
if (hot && hotData) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
if (hot && hotData) {
|
|
24
|
+
let resumeAfterUpdate = false
|
|
25
|
+
let retired = false
|
|
26
|
+
let pendingOperation: Promise<void> | undefined
|
|
27
|
+
const configure = network.configure
|
|
28
|
+
const enable = network.enable
|
|
29
|
+
const disable = network.disable
|
|
33
30
|
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
const runOperation = (action: () => void | Promise<void>) => {
|
|
32
|
+
const result = pendingOperation ? pendingOperation.then(action) : action()
|
|
36
33
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
if (result instanceof Promise) {
|
|
35
|
+
const operation = result.finally(() => {
|
|
36
|
+
if (pendingOperation === operation) {
|
|
37
|
+
pendingOperation = undefined
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
pendingOperation = operation
|
|
44
41
|
|
|
45
|
-
|
|
42
|
+
return operation
|
|
43
|
+
}
|
|
46
44
|
}
|
|
47
|
-
}
|
|
48
45
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
const stop = () => {
|
|
47
|
+
if (network.readyState === NetworkReadyState.ENABLED) {
|
|
48
|
+
return disable()
|
|
49
|
+
}
|
|
52
50
|
}
|
|
53
|
-
}
|
|
54
51
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
// An SSR entry may be re-evaluated while this module remains cached.
|
|
53
|
+
network.configure = (options) => {
|
|
54
|
+
void runOperation(() => {
|
|
55
|
+
if (retired) {
|
|
56
|
+
return
|
|
57
|
+
}
|
|
61
58
|
|
|
62
|
-
|
|
59
|
+
const stopped = stop()
|
|
63
60
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
if (stopped instanceof Promise) {
|
|
62
|
+
return stopped.then(() => configure(options))
|
|
63
|
+
}
|
|
67
64
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
65
|
+
configure(options)
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
network.enable = async () => {
|
|
69
|
+
await runOperation(() => {
|
|
70
|
+
if (!retired && network.readyState === NetworkReadyState.DISABLED) {
|
|
71
|
+
return enable()
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
network.disable = async () => {
|
|
76
|
+
await runOperation(stop)
|
|
77
|
+
}
|
|
81
78
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
79
|
+
const disableNetwork = async () => {
|
|
80
|
+
await network.disable()
|
|
81
|
+
}
|
|
85
82
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
const beforeUpdate = async () => {
|
|
84
|
+
resumeAfterUpdate = network.readyState === NetworkReadyState.ENABLED
|
|
85
|
+
await disableNetwork()
|
|
86
|
+
}
|
|
90
87
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
const afterUpdate = async () => {
|
|
89
|
+
const shouldResume = resumeAfterUpdate
|
|
90
|
+
resumeAfterUpdate = false
|
|
94
91
|
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
if (shouldResume && network.readyState === NetworkReadyState.DISABLED) {
|
|
93
|
+
await network.enable()
|
|
94
|
+
}
|
|
97
95
|
}
|
|
98
|
-
}
|
|
99
96
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
97
|
+
hot.on('vite:beforeUpdate', beforeUpdate)
|
|
98
|
+
hot.on('vite:afterUpdate', afterUpdate)
|
|
99
|
+
hot.on('vite:beforeFullReload', disableNetwork)
|
|
100
|
+
|
|
101
|
+
const disposeNetwork = async () => {
|
|
102
|
+
retired = true
|
|
103
|
+
resumeAfterUpdate = false
|
|
103
104
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
hot.off('vite:beforeUpdate', beforeUpdate)
|
|
106
|
+
hot.off('vite:afterUpdate', afterUpdate)
|
|
107
|
+
hot.off('vite:beforeFullReload', disableNetwork)
|
|
107
108
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
hot.off('vite:beforeFullReload', disableNetwork)
|
|
109
|
+
await disableNetwork()
|
|
110
|
+
}
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
hotData.disposeNetwork = disposeNetwork
|
|
113
|
+
hot.dispose(disposeNetwork)
|
|
113
114
|
}
|
|
114
115
|
|
|
115
|
-
|
|
116
|
-
hot.dispose(disposeNetwork)
|
|
116
|
+
return network
|
|
117
117
|
}
|