msw-dev-tool 1.0.13 → 1.0.14

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.
@@ -30,7 +30,7 @@ const useHandlerStore = zustand.create((set, get) => ({
30
30
  }
31
31
  state.handlerMap[url][method].checked = isChecked;
32
32
  }));
33
- updateEnableHandler();
33
+ get().updateEnableHandlers();
34
34
  },
35
35
  toggleIsChecked: (url, method) => {
36
36
  set(immer.produce((state) => {
@@ -41,37 +41,33 @@ const useHandlerStore = zustand.create((set, get) => ({
41
41
  state.handlerMap[url][method].checked =
42
42
  !state.handlerMap[url][method].checked;
43
43
  }));
44
- updateEnableHandler();
44
+ get().updateEnableHandlers();
45
+ },
46
+ getWorker: () => {
47
+ const worker = get().worker;
48
+ if (!worker)
49
+ throw new Error("Worker is not initialized");
50
+ return worker;
51
+ },
52
+ getTotalEnableHandlers: () => {
53
+ const handlerMapList = util.flatHandlerMap(get().handlerMap);
54
+ const checkedHttpHandlers = handlerMapList
55
+ .filter((h) => h.checked)
56
+ .map((h) => h.handler);
57
+ const otherProtocolHandlers = get().restHandlers;
58
+ return [...checkedHttpHandlers, ...otherProtocolHandlers];
59
+ },
60
+ updateEnableHandlers: () => {
61
+ const worker = get().getWorker();
62
+ const totalEnableHandlers = get().getTotalEnableHandlers();
63
+ if (totalEnableHandlers.length === 0) {
64
+ worker.resetHandlers(handler.dummyHandler);
65
+ return;
66
+ }
67
+ worker.resetHandlers(...totalEnableHandlers);
45
68
  },
46
69
  }));
47
70
  const initMSWDevTool = useHandlerStore.getState().initMSWDevTool;
48
- const getHandlerMap = () => useHandlerStore.getState().handlerMap;
49
- const getWorker = () => {
50
- const worker = useHandlerStore.getState().worker;
51
- if (!worker)
52
- throw new Error("Worker is not initialized");
53
- return worker;
54
- };
55
- const getUnsupportedHandlers = () => useHandlerStore.getState().restHandlers;
56
- const updateEnableHandler = () => {
57
- const handlerMap = getHandlerMap();
58
- const worker = getWorker();
59
- const checkedHttpHandlers = util.flatHandlerMap(handlerMap)
60
- .filter((h) => h.checked)
61
- .map((h) => h.handler);
62
- const otherProtocolHandlers = getUnsupportedHandlers();
63
- const totalHandlers = [...checkedHttpHandlers, ...otherProtocolHandlers];
64
- /**
65
- * This has to do with `msw` internal workings.
66
- * If I spread an empty array in `resetHandlers`, it will be replaced by `initialHandler`.
67
- * Therefore, I proposed the `clear` method, but unfortunately it was not accepted!
68
- */
69
- if (totalHandlers.length === 0) {
70
- worker.resetHandlers(handler.dummyHandler);
71
- return;
72
- }
73
- worker.resetHandlers(...totalHandlers);
74
- };
75
71
 
76
72
  exports.initMSWDevTool = initMSWDevTool;
77
73
  exports.useHandlerStore = useHandlerStore;
@@ -1 +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":["create","convertHandlers","produce","flatHandlerMap","dummyHandler"],"mappings":"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"}
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\";\nimport { HttpHandler } from \"msw\";\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 getWorker: () => SetupWorker;\n getTotalEnableHandlers: () => (Handler | HttpHandler)[];\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 updateEnableHandlers: () => 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 get().updateEnableHandlers();\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 get().updateEnableHandlers();\n },\n getWorker: () => {\n const worker = get().worker;\n if (!worker) throw new Error(\"Worker is not initialized\");\n return worker;\n },\n getTotalEnableHandlers: () => {\n const handlerMapList = flatHandlerMap(get().handlerMap);\n const checkedHttpHandlers = handlerMapList\n .filter((h) => h.checked)\n .map((h) => h.handler);\n const otherProtocolHandlers = get().restHandlers;\n return [...checkedHttpHandlers, ...otherProtocolHandlers];\n },\n updateEnableHandlers: () => {\n const worker = get().getWorker();\n const totalEnableHandlers = get().getTotalEnableHandlers();\n if (totalEnableHandlers.length === 0) {\n worker.resetHandlers(dummyHandler);\n return;\n }\n\n worker.resetHandlers(...totalEnableHandlers);\n },\n}));\n\nexport const initMSWDevTool = useHandlerStore.getState().initMSWDevTool;\n"],"names":["create","convertHandlers","produce","flatHandlerMap","dummyHandler"],"mappings":"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"}
@@ -28,7 +28,7 @@ const useHandlerStore = create((set, get) => ({
28
28
  }
29
29
  state.handlerMap[url][method].checked = isChecked;
30
30
  }));
31
- updateEnableHandler();
31
+ get().updateEnableHandlers();
32
32
  },
33
33
  toggleIsChecked: (url, method) => {
34
34
  set(produce((state) => {
@@ -39,37 +39,33 @@ const useHandlerStore = create((set, get) => ({
39
39
  state.handlerMap[url][method].checked =
40
40
  !state.handlerMap[url][method].checked;
41
41
  }));
42
- updateEnableHandler();
42
+ get().updateEnableHandlers();
43
+ },
44
+ getWorker: () => {
45
+ const worker = get().worker;
46
+ if (!worker)
47
+ throw new Error("Worker is not initialized");
48
+ return worker;
49
+ },
50
+ getTotalEnableHandlers: () => {
51
+ const handlerMapList = flatHandlerMap(get().handlerMap);
52
+ const checkedHttpHandlers = handlerMapList
53
+ .filter((h) => h.checked)
54
+ .map((h) => h.handler);
55
+ const otherProtocolHandlers = get().restHandlers;
56
+ return [...checkedHttpHandlers, ...otherProtocolHandlers];
57
+ },
58
+ updateEnableHandlers: () => {
59
+ const worker = get().getWorker();
60
+ const totalEnableHandlers = get().getTotalEnableHandlers();
61
+ if (totalEnableHandlers.length === 0) {
62
+ worker.resetHandlers(dummyHandler);
63
+ return;
64
+ }
65
+ worker.resetHandlers(...totalEnableHandlers);
43
66
  },
44
67
  }));
45
68
  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
69
 
74
70
  export { initMSWDevTool, useHandlerStore };
75
71
  //# sourceMappingURL=handlerStore.js.map
@@ -1 +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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"}
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\";\nimport { HttpHandler } from \"msw\";\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 getWorker: () => SetupWorker;\n getTotalEnableHandlers: () => (Handler | HttpHandler)[];\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 updateEnableHandlers: () => 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 get().updateEnableHandlers();\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 get().updateEnableHandlers();\n },\n getWorker: () => {\n const worker = get().worker;\n if (!worker) throw new Error(\"Worker is not initialized\");\n return worker;\n },\n getTotalEnableHandlers: () => {\n const handlerMapList = flatHandlerMap(get().handlerMap);\n const checkedHttpHandlers = handlerMapList\n .filter((h) => h.checked)\n .map((h) => h.handler);\n const otherProtocolHandlers = get().restHandlers;\n return [...checkedHttpHandlers, ...otherProtocolHandlers];\n },\n updateEnableHandlers: () => {\n const worker = get().getWorker();\n const totalEnableHandlers = get().getTotalEnableHandlers();\n if (totalEnableHandlers.length === 0) {\n worker.resetHandlers(dummyHandler);\n return;\n }\n\n worker.resetHandlers(...totalEnableHandlers);\n },\n}));\n\nexport const initMSWDevTool = useHandlerStore.getState().initMSWDevTool;\n"],"names":[],"mappings":"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"}
@@ -28,6 +28,14 @@ interface HandlerStoreState {
28
28
  getIsChecked: (url: string, method: string) => boolean;
29
29
  setIsChecked: (url: string, method: string, isChecked: boolean) => void;
30
30
  toggleIsChecked: (url: string, method: string) => void;
31
+ getWorker: () => SetupWorker;
32
+ getTotalEnableHandlers: () => (Handler | HttpHandler)[];
33
+ /**
34
+ * This has to do with `msw` internal workings.
35
+ * If I spread an empty array in `resetHandlers`, it will be replaced by `initialHandler`.
36
+ * Therefore, I proposed the `clear` method, but unfortunately it was not accepted!
37
+ */
38
+ updateEnableHandlers: () => void;
31
39
  }
32
40
  declare const useHandlerStore: zustand.UseBoundStore<zustand.StoreApi<HandlerStoreState>>;
33
41
  declare const initMSWDevTool: (worker: SetupWorker) => SetupWorker;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "msw-dev-tool",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",