msw-dev-tool 1.0.10 → 1.0.12
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/dist/cjs/const/handler.js +10 -0
- package/dist/cjs/const/handler.js.map +1 -0
- package/dist/cjs/index.js +5 -14458
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/handlerStore.js +78 -0
- package/dist/cjs/lib/handlerStore.js.map +1 -0
- package/dist/cjs/lib/util.js +33 -0
- package/dist/cjs/lib/util.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/immer@10.1.1/node_modules/immer/dist/immer.js +717 -0
- package/dist/cjs/node_modules/.pnpm/immer@10.1.1/node_modules/immer/dist/immer.js.map +1 -0
- package/dist/cjs/store/uiControlStore.js +13 -0
- package/dist/cjs/store/uiControlStore.js.map +1 -0
- package/dist/cjs/ui/DevToolContent/DevToolContentContainer.js +18 -0
- package/dist/cjs/ui/DevToolContent/DevToolContentContainer.js.map +1 -0
- package/dist/cjs/ui/DevToolContent/HttpControl.js +28 -0
- package/dist/cjs/ui/DevToolContent/HttpControl.js.map +1 -0
- package/dist/cjs/ui/MSWDevTool.js +16 -0
- package/dist/cjs/ui/MSWDevTool.js.map +1 -0
- package/dist/cjs/utils/handlerMap.js +13 -0
- package/dist/cjs/utils/handlerMap.js.map +1 -0
- package/dist/esm/const/handler.js +7 -0
- package/dist/esm/const/handler.js.map +1 -0
- package/dist/esm/index.js +2 -14459
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/handlerStore.js +75 -0
- package/dist/esm/lib/handlerStore.js.map +1 -0
- package/dist/esm/lib/util.js +30 -0
- package/dist/esm/lib/util.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/immer@10.1.1/node_modules/immer/dist/immer.js +708 -0
- package/dist/esm/node_modules/.pnpm/immer@10.1.1/node_modules/immer/dist/immer.js.map +1 -0
- package/dist/esm/store/uiControlStore.js +11 -0
- package/dist/esm/store/uiControlStore.js.map +1 -0
- package/dist/esm/ui/DevToolContent/DevToolContentContainer.js +16 -0
- package/dist/esm/ui/DevToolContent/DevToolContentContainer.js.map +1 -0
- package/dist/esm/ui/DevToolContent/HttpControl.js +26 -0
- package/dist/esm/ui/DevToolContent/HttpControl.js.map +1 -0
- package/dist/esm/ui/MSWDevTool.js +14 -0
- package/dist/esm/ui/MSWDevTool.js.map +1 -0
- package/dist/esm/utils/handlerMap.js +11 -0
- package/dist/esm/utils/handlerMap.js.map +1 -0
- package/package.json +6 -5
- package/dist/cjs/types/const/handler.d.ts +0 -2
- package/dist/cjs/types/index.d.ts +0 -4
- package/dist/cjs/types/lib/handlerStore.d.ts +0 -22
- package/dist/cjs/types/lib/index.d.ts +0 -5
- package/dist/cjs/types/lib/type.d.ts +0 -6
- package/dist/cjs/types/lib/util.d.ts +0 -12
- package/dist/cjs/types/store/uiControlStore.d.ts +0 -8
- package/dist/cjs/types/ui/DevToolContent/DevToolContentContainer.d.ts +0 -2
- package/dist/cjs/types/ui/DevToolContent/HttpControl.d.ts +0 -2
- package/dist/cjs/types/ui/MSWDevTool.d.ts +0 -2
- package/dist/cjs/types/utils/handlerMap.d.ts +0 -9
- package/dist/esm/types/const/handler.d.ts +0 -2
- package/dist/esm/types/index.d.ts +0 -4
- package/dist/esm/types/lib/handlerStore.d.ts +0 -22
- package/dist/esm/types/lib/index.d.ts +0 -5
- package/dist/esm/types/lib/type.d.ts +0 -6
- package/dist/esm/types/lib/util.d.ts +0 -12
- package/dist/esm/types/store/uiControlStore.d.ts +0 -8
- package/dist/esm/types/ui/DevToolContent/DevToolContentContainer.d.ts +0 -2
- package/dist/esm/types/ui/DevToolContent/HttpControl.d.ts +0 -2
- package/dist/esm/types/ui/MSWDevTool.d.ts +0 -2
- package/dist/esm/types/utils/handlerMap.d.ts +0 -9
@@ -0,0 +1,75 @@
|
|
1
|
+
import { create } from 'zustand';
|
2
|
+
import { produce } from '../node_modules/.pnpm/immer@10.1.1/node_modules/immer/dist/immer.js';
|
3
|
+
import { convertHandlers, flatHandlerMap } from './util.js';
|
4
|
+
import { dummyHandler } from '../const/handler.js';
|
5
|
+
|
6
|
+
const useHandlerStore = create((set, get) => ({
|
7
|
+
handlerMap: {},
|
8
|
+
worker: null,
|
9
|
+
restHandlers: [],
|
10
|
+
initMSWDevTool: (_worker) => {
|
11
|
+
const worker = _worker;
|
12
|
+
set({ worker });
|
13
|
+
const handlers = worker.listHandlers();
|
14
|
+
const { handlerMap, unsupportedHandlers } = convertHandlers(handlers);
|
15
|
+
set({ handlerMap });
|
16
|
+
set({ restHandlers: unsupportedHandlers });
|
17
|
+
return worker;
|
18
|
+
},
|
19
|
+
setHandlerMap: (handlerMap) => {
|
20
|
+
set({ handlerMap });
|
21
|
+
return handlerMap;
|
22
|
+
},
|
23
|
+
getIsChecked: (url, method) => { var _a; return (_a = get().handlerMap[url]) === null || _a === void 0 ? void 0 : _a[method].checked; },
|
24
|
+
setIsChecked: (url, method, isChecked) => {
|
25
|
+
set(produce((state) => {
|
26
|
+
if (!state.handlerMap[url]) {
|
27
|
+
return;
|
28
|
+
}
|
29
|
+
state.handlerMap[url][method].checked = isChecked;
|
30
|
+
}));
|
31
|
+
updateEnableHandler();
|
32
|
+
},
|
33
|
+
toggleIsChecked: (url, method) => {
|
34
|
+
set(produce((state) => {
|
35
|
+
var _a;
|
36
|
+
if (!((_a = state.handlerMap[url]) === null || _a === void 0 ? void 0 : _a[method])) {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
state.handlerMap[url][method].checked =
|
40
|
+
!state.handlerMap[url][method].checked;
|
41
|
+
}));
|
42
|
+
updateEnableHandler();
|
43
|
+
},
|
44
|
+
}));
|
45
|
+
const initMSWDevTool = useHandlerStore.getState().initMSWDevTool;
|
46
|
+
const getHandlerMap = () => useHandlerStore.getState().handlerMap;
|
47
|
+
const getWorker = () => {
|
48
|
+
const worker = useHandlerStore.getState().worker;
|
49
|
+
if (!worker)
|
50
|
+
throw new Error("Worker is not initialized");
|
51
|
+
return worker;
|
52
|
+
};
|
53
|
+
const getUnsupportedHandlers = () => useHandlerStore.getState().restHandlers;
|
54
|
+
const updateEnableHandler = () => {
|
55
|
+
const handlerMap = getHandlerMap();
|
56
|
+
const worker = getWorker();
|
57
|
+
const checkedHttpHandlers = flatHandlerMap(handlerMap)
|
58
|
+
.filter((h) => h.checked)
|
59
|
+
.map((h) => h.handler);
|
60
|
+
const otherProtocolHandlers = getUnsupportedHandlers();
|
61
|
+
const totalHandlers = [...checkedHttpHandlers, ...otherProtocolHandlers];
|
62
|
+
/**
|
63
|
+
* This has to do with `msw` internal workings.
|
64
|
+
* If I spread an empty array in `resetHandlers`, it will be replaced by `initialHandler`.
|
65
|
+
* Therefore, I proposed the `clear` method, but unfortunately it was not accepted!
|
66
|
+
*/
|
67
|
+
if (totalHandlers.length === 0) {
|
68
|
+
worker.resetHandlers(dummyHandler);
|
69
|
+
return;
|
70
|
+
}
|
71
|
+
worker.resetHandlers(...totalHandlers);
|
72
|
+
};
|
73
|
+
|
74
|
+
export { initMSWDevTool, useHandlerStore };
|
75
|
+
//# sourceMappingURL=handlerStore.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"handlerStore.js","sources":["../../../src/lib/handlerStore.ts"],"sourcesContent":["import { SetupWorker } from \"msw/browser\";\nimport { create } from \"zustand\";\nimport { produce } from \"immer\";\nimport { Handler, HandlerMap } from \"./type\";\nimport { convertHandlers, flatHandlerMap } from \"./util\";\nimport { dummyHandler } from \"../const/handler\";\n\nexport interface HandlerStoreState {\n worker: SetupWorker | null;\n /**\n * HTTP handler map\n */\n handlerMap: HandlerMap;\n /**\n * GraphQL or WebSocketHandler\n *\n * *Currently not supported*\n */\n restHandlers: Handler[];\n initMSWDevTool: (worker: SetupWorker) => SetupWorker;\n setHandlerMap: (handlers: HandlerMap) => HandlerMap;\n getIsChecked: (url: string, method: string) => boolean;\n setIsChecked: (url: string, method: string, isChecked: boolean) => void;\n toggleIsChecked: (url: string, method: string) => void;\n}\nexport const useHandlerStore = create<HandlerStoreState>((set, get) => ({\n handlerMap: {},\n worker: null,\n restHandlers: [],\n initMSWDevTool: (_worker) => {\n const worker = _worker;\n set({ worker });\n const handlers = worker.listHandlers() as Handler[];\n const { handlerMap, unsupportedHandlers } = convertHandlers(handlers);\n set({ handlerMap });\n set({ restHandlers: unsupportedHandlers });\n return worker;\n },\n setHandlerMap: (handlerMap) => {\n set({ handlerMap });\n return handlerMap;\n },\n getIsChecked: (url, method) => get().handlerMap[url]?.[method].checked,\n setIsChecked: (url, method, isChecked) => {\n set(\n produce<HandlerStoreState>((state) => {\n if (!state.handlerMap[url]) {\n return;\n }\n state.handlerMap[url][method].checked = isChecked;\n })\n );\n updateEnableHandler();\n },\n toggleIsChecked: (url, method) => {\n set(\n produce<HandlerStoreState>((state) => {\n if (!state.handlerMap[url]?.[method]) {\n return;\n }\n state.handlerMap[url][method].checked =\n !state.handlerMap[url][method].checked;\n })\n );\n updateEnableHandler();\n },\n}));\n\nexport const initMSWDevTool = useHandlerStore.getState().initMSWDevTool;\n\nconst getHandlerMap = () => useHandlerStore.getState().handlerMap;\n\nconst getWorker = () => {\n const worker = useHandlerStore.getState().worker;\n if (!worker) throw new Error(\"Worker is not initialized\");\n return worker;\n};\n\nconst getUnsupportedHandlers = () => useHandlerStore.getState().restHandlers;\n\nconst updateEnableHandler = () => {\n const handlerMap = getHandlerMap();\n const worker = getWorker();\n\n const checkedHttpHandlers = flatHandlerMap(handlerMap)\n .filter((h) => h.checked)\n .map((h) => h.handler);\n const otherProtocolHandlers = getUnsupportedHandlers();\n const totalHandlers = [...checkedHttpHandlers, ...otherProtocolHandlers];\n\n /**\n * This has to do with `msw` internal workings.\n * If I spread an empty array in `resetHandlers`, it will be replaced by `initialHandler`.\n * Therefore, I proposed the `clear` method, but unfortunately it was not accepted!\n */\n if (totalHandlers.length === 0) {\n worker.resetHandlers(dummyHandler);\n return;\n }\n\n worker.resetHandlers(...totalHandlers);\n};\n"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
const flatHandlerMap = (handlerMap) => {
|
2
|
+
return Object.entries(handlerMap).flatMap(([url, methods]) => Object.entries(methods).map(([method, { handler, checked }]) => ({
|
3
|
+
url,
|
4
|
+
method,
|
5
|
+
handler,
|
6
|
+
checked,
|
7
|
+
})));
|
8
|
+
};
|
9
|
+
const convertHandlers = (handlers) => {
|
10
|
+
const unsupportedHandlers = [];
|
11
|
+
const handlerMap = handlers.reduce((acc, _handler) => {
|
12
|
+
// Current, GraphQL & WebSocketHandler is not supported.
|
13
|
+
const handler = _handler;
|
14
|
+
if (!("info" in handler && handler.info.method && handler.info.path)) {
|
15
|
+
unsupportedHandlers.push(handler);
|
16
|
+
return acc;
|
17
|
+
}
|
18
|
+
const { method: _method, path: _path } = handler.info;
|
19
|
+
const [method, path] = [_method.toString(), _path.toString()];
|
20
|
+
if (!acc[path]) {
|
21
|
+
acc[path] = {};
|
22
|
+
}
|
23
|
+
acc[path][method] = { handler, checked: true };
|
24
|
+
return acc;
|
25
|
+
}, {});
|
26
|
+
return { handlerMap, unsupportedHandlers };
|
27
|
+
};
|
28
|
+
|
29
|
+
export { convertHandlers, flatHandlerMap };
|
30
|
+
//# sourceMappingURL=util.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../src/lib/util.ts"],"sourcesContent":["import { HttpHandler } from \"msw\";\nimport { Handler, HandlerMap } from \"./type\";\n\nexport const flatHandlerMap = (handlerMap: HandlerMap) => {\n return Object.entries(handlerMap).flatMap(([url, methods]) =>\n Object.entries(methods).map(([method, { handler, checked }]) => ({\n url,\n method,\n handler,\n checked,\n }))\n );\n};\n\nexport const convertHandlers = (\n handlers: Handler[]\n) => {\n const unsupportedHandlers: Handler[] = [];\n const handlerMap = handlers.reduce((acc, _handler) => {\n // Current, GraphQL & WebSocketHandler is not supported.\n const handler = _handler as HttpHandler;\n if (!(\"info\" in handler && handler.info.method && handler.info.path)) {\n unsupportedHandlers.push(handler);\n return acc;\n }\n const { method: _method, path: _path } = handler.info;\n const [method, path] = [_method.toString(), _path.toString()];\n if (!acc[path]) {\n acc[path] = {};\n }\n acc[path][method] = { handler, checked: true };\n return acc;\n }, {} as HandlerMap);\n return {handlerMap, unsupportedHandlers};\n};\n"],"names":[],"mappings":"AAGa,MAAA,cAAc,GAAG,CAAC,UAAsB,KAAI;AACvD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,KACvD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM;QAC/D,GAAG;QACH,MAAM;QACN,OAAO;QACP,OAAO;KACR,CAAC,CAAC,CACJ,CAAC;AACJ,EAAE;AAEW,MAAA,eAAe,GAAG,CAC7B,QAAmB,KACjB;IACF,MAAM,mBAAmB,GAAc,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAI;;QAEnD,MAAM,OAAO,GAAG,QAAuB,CAAC;AACxC,QAAA,IAAI,EAAE,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACpE,YAAA,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,YAAA,OAAO,GAAG,CAAC;SACZ;AACD,QAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;AACtD,QAAA,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACd,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAChB;AACD,QAAA,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC/C,QAAA,OAAO,GAAG,CAAC;KACZ,EAAE,EAAgB,CAAC,CAAC;AACrB,IAAA,OAAO,EAAC,UAAU,EAAE,mBAAmB,EAAC,CAAC;AAC3C;;;;"}
|