msw-dev-tool 3.1.3 → 3.2.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.
Files changed (76) hide show
  1. package/dist/cjs/lib/handlerStore.js +38 -15
  2. package/dist/cjs/lib/handlerStore.js.map +1 -1
  3. package/dist/cjs/lib/types/core.js +19 -0
  4. package/dist/cjs/lib/types/core.js.map +1 -0
  5. package/dist/cjs/lib/types/http.js +71 -0
  6. package/dist/cjs/lib/types/http.js.map +1 -0
  7. package/dist/cjs/lib/types/utils.js +10 -0
  8. package/dist/cjs/lib/types/utils.js.map +1 -0
  9. package/dist/cjs/lib/{util.js → utils/index.js} +11 -10
  10. package/dist/cjs/lib/utils/index.js.map +1 -0
  11. package/dist/cjs/msw-dev-tool.css +1 -1
  12. package/dist/cjs/node_modules/@hookform/resolvers/dist/resolvers.js +9 -0
  13. package/dist/cjs/node_modules/@hookform/resolvers/dist/resolvers.js.map +1 -0
  14. package/dist/cjs/node_modules/@hookform/resolvers/zod/dist/zod.js +9 -0
  15. package/dist/cjs/node_modules/@hookform/resolvers/zod/dist/zod.js.map +1 -0
  16. package/dist/cjs/node_modules/@radix-ui/react-select/dist/index.js +81 -81
  17. package/dist/cjs/node_modules/react-hook-form/dist/index.esm.js +1930 -0
  18. package/dist/cjs/node_modules/react-hook-form/dist/index.esm.js.map +1 -0
  19. package/dist/cjs/schema/handler.js +68 -0
  20. package/dist/cjs/schema/handler.js.map +1 -0
  21. package/dist/cjs/ui/DevToolContent/Form/FormFieldBase.js +1 -1
  22. package/dist/cjs/ui/DevToolContent/Form/FormFieldBase.js.map +1 -1
  23. package/dist/cjs/ui/DevToolContent/Form/Select.js +4 -3
  24. package/dist/cjs/ui/DevToolContent/Form/Select.js.map +1 -1
  25. package/dist/cjs/ui/DevToolContent/Form/SelectFormField.js +9 -3
  26. package/dist/cjs/ui/DevToolContent/Form/SelectFormField.js.map +1 -1
  27. package/dist/cjs/ui/DevToolContent/HandlerTable/BehaviorSelect.js +4 -3
  28. package/dist/cjs/ui/DevToolContent/HandlerTable/BehaviorSelect.js.map +1 -1
  29. package/dist/cjs/ui/DevToolContent/ToolButtonGroup/HandlerForm.js +33 -35
  30. package/dist/cjs/ui/DevToolContent/ToolButtonGroup/HandlerForm.js.map +1 -1
  31. package/dist/cjs/ui/DevToolContent/ToolButtonGroup/util.js +25 -0
  32. package/dist/cjs/ui/DevToolContent/ToolButtonGroup/util.js.map +1 -1
  33. package/dist/esm/lib/handlerStore.js +31 -8
  34. package/dist/esm/lib/handlerStore.js.map +1 -1
  35. package/dist/esm/lib/types/core.js +16 -0
  36. package/dist/esm/lib/types/core.js.map +1 -0
  37. package/dist/esm/lib/types/http.js +64 -0
  38. package/dist/esm/lib/types/http.js.map +1 -0
  39. package/dist/esm/lib/types/utils.js +8 -0
  40. package/dist/esm/lib/types/utils.js.map +1 -0
  41. package/dist/esm/lib/{util.js → utils/index.js} +5 -4
  42. package/dist/esm/lib/utils/index.js.map +1 -0
  43. package/dist/esm/msw-dev-tool.css +1 -1
  44. package/dist/esm/node_modules/@hookform/resolvers/dist/resolvers.js +6 -0
  45. package/dist/esm/node_modules/@hookform/resolvers/dist/resolvers.js.map +1 -0
  46. package/dist/esm/node_modules/@hookform/resolvers/zod/dist/zod.js +7 -0
  47. package/dist/esm/node_modules/@hookform/resolvers/zod/dist/zod.js.map +1 -0
  48. package/dist/esm/node_modules/@radix-ui/react-select/dist/index.js +2 -2
  49. package/dist/esm/node_modules/react-hook-form/dist/index.esm.js +1924 -0
  50. package/dist/esm/node_modules/react-hook-form/dist/index.esm.js.map +1 -0
  51. package/dist/esm/schema/handler.js +66 -0
  52. package/dist/esm/schema/handler.js.map +1 -0
  53. package/dist/esm/ui/DevToolContent/Form/FormFieldBase.js +1 -1
  54. package/dist/esm/ui/DevToolContent/Form/FormFieldBase.js.map +1 -1
  55. package/dist/esm/ui/DevToolContent/Form/Select.js +7 -6
  56. package/dist/esm/ui/DevToolContent/Form/Select.js.map +1 -1
  57. package/dist/esm/ui/DevToolContent/Form/SelectFormField.js +10 -4
  58. package/dist/esm/ui/DevToolContent/Form/SelectFormField.js.map +1 -1
  59. package/dist/esm/ui/DevToolContent/HandlerTable/BehaviorSelect.js +2 -1
  60. package/dist/esm/ui/DevToolContent/HandlerTable/BehaviorSelect.js.map +1 -1
  61. package/dist/esm/ui/DevToolContent/ToolButtonGroup/HandlerForm.js +34 -36
  62. package/dist/esm/ui/DevToolContent/ToolButtonGroup/HandlerForm.js.map +1 -1
  63. package/dist/esm/ui/DevToolContent/ToolButtonGroup/util.js +22 -1
  64. package/dist/esm/ui/DevToolContent/ToolButtonGroup/util.js.map +1 -1
  65. package/dist/types/index.d.ts +21 -20
  66. package/package.json +6 -1
  67. package/dist/cjs/lib/type.js +0 -57
  68. package/dist/cjs/lib/type.js.map +0 -1
  69. package/dist/cjs/lib/util.js.map +0 -1
  70. package/dist/cjs/ui/DevToolContent/ToolButtonGroup/schema.js +0 -31
  71. package/dist/cjs/ui/DevToolContent/ToolButtonGroup/schema.js.map +0 -1
  72. package/dist/esm/lib/type.js +0 -52
  73. package/dist/esm/lib/type.js.map +0 -1
  74. package/dist/esm/lib/util.js.map +0 -1
  75. package/dist/esm/ui/DevToolContent/ToolButtonGroup/schema.js +0 -29
  76. package/dist/esm/ui/DevToolContent/ToolButtonGroup/schema.js.map +0 -1
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var zustand = require('zustand');
4
- var type = require('./type.js');
5
- var util = require('./util.js');
4
+ var http = require('./types/http.js');
5
+ var core = require('./types/core.js');
6
+ var index = require('./utils/index.js');
6
7
  var mswBrowser = require('../utils/mswBrowser.js');
7
8
  var middleware = require('zustand/middleware');
8
9
  var _const = require('./const.js');
@@ -15,17 +16,17 @@ const useHandlerStore = zustand.create()(middleware.persist((set, get) => ({
15
16
  handlerRowSelection: {},
16
17
  setupDevToolWorker: async (...handlers) => {
17
18
  const _handlers = handlers.map((handler) => {
18
- if (!util.isHttpHandler(handler)) {
19
+ if (!index.isHttpHandler(handler)) {
19
20
  return handler;
20
21
  }
21
22
  const originalResolver = handler.resolver;
22
23
  handler.resolver = async (args) => {
23
- const id = util.getRowId({
24
+ const id = index.getRowId({
24
25
  path: handler.info.path.toString(),
25
26
  method: handler.info.method.toString(),
26
27
  });
27
28
  const behavior = get().getHandlerBehavior(id);
28
- return await util.getHandlerResponseByBehavior(behavior, () => originalResolver(args));
29
+ return await index.getHandlerResponseByBehavior(behavior, () => originalResolver(args));
29
30
  };
30
31
  return handler;
31
32
  });
@@ -34,8 +35,8 @@ const useHandlerStore = zustand.create()(middleware.persist((set, get) => ({
34
35
  throw new Error("Fail to import 'msw/browser'. Is environment is not browser?");
35
36
  }
36
37
  const worker = setupWorker(..._handlers);
37
- const { flattenHandlers, unsupportedHandlers } = util.initMSWDevToolStore(worker);
38
- const { flattenHandlers: mergedHandlers } = util.mergeStorageData({
38
+ const { flattenHandlers, unsupportedHandlers } = index.initMSWDevToolStore(worker);
39
+ const { flattenHandlers: mergedHandlers } = index.mergeStorageData({
39
40
  flattenHandlers,
40
41
  });
41
42
  set({
@@ -48,21 +49,43 @@ const useHandlerStore = zustand.create()(middleware.persist((set, get) => ({
48
49
  resetMSWDevTool: () => {
49
50
  const _worker = get().getWorker();
50
51
  _worker.resetHandlers();
51
- const { worker, flattenHandlers, unsupportedHandlers } = util.initMSWDevToolStore(_worker);
52
+ const { worker, flattenHandlers, unsupportedHandlers } = index.initMSWDevToolStore(_worker);
52
53
  set({
53
54
  worker,
54
55
  flattenHandlers,
55
56
  restHandlers: unsupportedHandlers,
56
57
  });
57
58
  },
58
- addTempHandler: ({ method, path, response }) => {
59
- const id = util.getRowId({
60
- path: path,
61
- method: method,
59
+ addTempHandler: (arg) => {
60
+ const { data } = arg;
61
+ const { path, method, response, status, contentType, delay: _delay, statusText, header, } = data;
62
+ const contentLength = {
63
+ [http.MimeType.APPLICATION_JSON]: response
64
+ ? new Blob([response]).size.toString()
65
+ : "0",
66
+ };
67
+ const id = index.getRowId({
68
+ path,
69
+ method,
62
70
  });
63
- const handler = msw.http.get(path, async () => {
71
+ const headers = {
72
+ "Content-Type": contentType,
73
+ ...((contentLength === null || contentLength === void 0 ? void 0 : contentLength[contentType])
74
+ ? { "Content-Length": contentLength[contentType] }
75
+ : {}),
76
+ ...(header ? JSON.parse(header) : {}),
77
+ };
78
+ const res = new msw.HttpResponse(response, {
79
+ status: Number(status),
80
+ statusText: statusText,
81
+ headers,
82
+ });
83
+ const handler = msw.http[method](path, async () => {
64
84
  const behavior = get().getHandlerBehavior(id);
65
- return await util.getHandlerResponseByBehavior(behavior, () => Response.json(JSON.parse(response)));
85
+ return await index.getHandlerResponseByBehavior(behavior, async () => {
86
+ await msw.delay(_delay);
87
+ return res;
88
+ });
66
89
  });
67
90
  const worker = get().getWorker();
68
91
  worker.use(handler);
@@ -74,7 +97,7 @@ const useHandlerStore = zustand.create()(middleware.persist((set, get) => ({
74
97
  method,
75
98
  handler,
76
99
  type: "temp",
77
- behavior: type.HttpHandlerBehavior.DEFAULT,
100
+ behavior: core.HttpHandlerBehavior.DEFAULT,
78
101
  },
79
102
  ];
80
103
  set({
@@ -1 +1 @@
1
- {"version":3,"file":"handlerStore.js","sources":["../../../src/lib/handlerStore.ts"],"sourcesContent":[null],"names":["create","persist","isHttpHandler","getRowId","getHandlerResponseByBehavior","_setupWorker","initMSWDevToolStore","mergeStorageData","http","HttpHandlerBehavior","STORAGE_KEY","createJSONStorage"],"mappings":"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"}
1
+ {"version":3,"file":"handlerStore.js","sources":["../../../src/lib/handlerStore.ts"],"sourcesContent":[null],"names":["create","persist","isHttpHandler","getRowId","getHandlerResponseByBehavior","_setupWorker","initMSWDevToolStore","mergeStorageData","MimeType","HttpResponse","http","delay","HttpHandlerBehavior","STORAGE_KEY","createJSONStorage"],"mappings":";;;;;;;;;;;AA6Ca,MAAA,eAAe,GAAGA,cAAM,EAAqB,CACxDC,kBAAO,CACL,CAAC,GAAG,EAAE,GAAG,MAAM;AACb,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,mBAAmB,EAAE,EAAE;AACvB,IAAA,kBAAkB,EAAE,OAAO,GAAG,QAAmB,KAAI;QACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;AACzC,YAAA,IAAI,CAACC,mBAAa,CAAC,OAAO,CAAC,EAAE;AAC3B,gBAAA,OAAO,OAAO,CAAC;aAChB;AAED,YAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;AAC1C,YAAA,OAAO,CAAC,QAAQ,GAAG,OAAO,IAAI,KAAI;gBAChC,MAAM,EAAE,GAAGC,cAAQ,CAAC;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAClC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACvC,iBAAA,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAE9C,gBAAA,OAAO,MAAMC,kCAA4B,CAAC,QAAQ,EAAE,MAClD,gBAAgB,CAAC,IAAI,CAAC,CACvB,CAAC;AACJ,aAAC,CAAC;AACF,YAAA,OAAO,OAAO,CAAC;AACjB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,WAAW,GAAG,MAAMC,sBAAY,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;SACH;AACD,QAAA,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC;QAEzC,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAC5CC,yBAAmB,CAAC,MAAM,CAAC,CAAC;AAE9B,QAAA,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAGC,sBAAgB,CAAC;YAC3D,eAAe;AAChB,SAAA,CAAC,CAAC;AAEH,QAAA,GAAG,CAAC;YACF,MAAM;AACN,YAAA,eAAe,EAAE,cAAc;AAC/B,YAAA,YAAY,EAAE,mBAAmB;AAClC,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;KACf;IACD,eAAe,EAAE,MAAK;AACpB,QAAA,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,aAAa,EAAE,CAAC;AAExB,QAAA,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,GACpDD,yBAAmB,CAAC,OAAO,CAAC,CAAC;AAE/B,QAAA,GAAG,CAAC;YACF,MAAM;YACN,eAAe;AACf,YAAA,YAAY,EAAE,mBAAmB;AAClC,SAAA,CAAC,CAAC;KACJ;AACD,IAAA,cAAc,EAAE,CAAC,GAAG,KAAI;AACtB,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,MAAM,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,KAAK,EAAE,MAAM,EACb,UAAU,EACV,MAAM,GACP,GAAG,IAAI,CAAC;AAET,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,CAACE,aAAQ,CAAC,gBAAgB,GAAG,QAAQ;AACnC,kBAAE,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtC,kBAAE,GAAG;SACoB,CAAC;QAE9B,MAAM,EAAE,GAAGL,cAAQ,CAAC;YAClB,IAAI;YACJ,MAAM;AACP,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,cAAc,EAAE,WAAW;YAC3B,IAAI,CAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAG,WAAW,CAAC;kBAC5B,EAAE,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE;kBAChD,EAAE,CAAC;AACP,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SACtC,CAAC;AAEF,QAAA,MAAM,GAAG,GAAG,IAAIM,gBAAY,CAAC,QAAQ,EAAE;AACrC,YAAA,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AACtB,YAAA,UAAU,EAAE,UAAU;YACtB,OAAO;AACR,SAAA,CAAC,CAAC;QAEH,MAAM,OAAO,GAAGC,QAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,YAAW;YAC5C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC9C,YAAA,OAAO,MAAMN,kCAA4B,CAAC,QAAQ,EAAE,YAAW;AAC7D,gBAAA,MAAMO,SAAK,CAAC,MAAM,CAAC,CAAC;AAEpB,gBAAA,OAAO,GAAG,CAAC;AACb,aAAC,CAAC,CAAC;AACL,SAAC,CAAgB,CAAC;AAElB,QAAA,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;AACjC,QAAA,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEpB,QAAA,MAAM,kBAAkB,GAAqB;YAC3C,GAAG,GAAG,EAAE,CAAC,eAAe;AACxB,YAAA;gBACE,EAAE;gBACF,IAAI;gBACJ,MAAM;gBACN,OAAO;AACP,gBAAA,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAEC,wBAAmB,CAAC,OAAO;AACtC,aAAA;SACF,CAAC;AAEF,QAAA,GAAG,CAAC;YACF,MAAM;AACN,YAAA,eAAe,EAAE,kBAAkB;AACpC,SAAA,CAAC,CAAC;KACJ;IACD,SAAS,EAAE,MAAK;AACd,QAAA,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC1D,QAAA,OAAO,MAAM,CAAC;KACf;AACD,IAAA,qBAAqB,EAAE,CAAC,EAAU,KAAI;AACpC,QAAA,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACnE;AACD,IAAA,kBAAkB,EAAE,CAAC,EAAU,KAAI;QACjC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,SAAS,CAAC;QAC/B,OAAO,OAAO,CAAC,QAAQ,CAAC;KACzB;AACD,IAAA,kBAAkB,EAAE,CAAC,EAAU,EAAE,QAA6B,KAAI;AAChE,QAAA,GAAG,CAAC;YACF,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;AACrD,gBAAA,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;AACrB,oBAAA,OAAO,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC;iBACjC;AACD,gBAAA,OAAO,OAAO,CAAC;AACjB,aAAC,CAAC;AACH,SAAA,CAAC,CAAC;KACJ;AACF,CAAA,CAAC,EACF;AACE,IAAA,IAAI,EAAEC,kBAAW;AACjB,IAAA,OAAO,EAAEC,4BAAiB,CAAC,MAAM,cAAc,CAAC;AAChD,IAAA,UAAU,EAAE,CAAC,KAAK,MAAM;QACtB,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC;AACH,CAAA,CACF,EACD;AAEW,MAAA,kBAAkB,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,mBAAmB;AAEnE,MAAA,kBAAkB,GAAG,CAAC,EAAU,KAAI;AAC/C,IAAA,OAAO,eAAe;AACnB,SAAA,QAAQ,EAAE;AACV,SAAA,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1D;;;;;;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var http = require('./http.js');
4
+
5
+ const CustomBehavior = {
6
+ DEFAULT: "default",
7
+ DISABLE: "disable mock",
8
+ DELAY: "delay",
9
+ RETURN_NULL: "return null",
10
+ NETWORK_ERROR: "network error",
11
+ };
12
+ const HttpHandlerBehavior = {
13
+ ...CustomBehavior,
14
+ ...http.HttpErrorStatusCode,
15
+ };
16
+
17
+ exports.CustomBehavior = CustomBehavior;
18
+ exports.HttpHandlerBehavior = HttpHandlerBehavior;
19
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sources":["../../../../src/lib/types/core.ts"],"sourcesContent":[null],"names":["HttpErrorStatusCode"],"mappings":";;;;AAIa,MAAA,cAAc,GAAG;AAC5B,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,aAAa,EAAE,eAAe;EACrB;AAGE,MAAA,mBAAmB,GAAG;AACjC,IAAA,GAAG,cAAc;AACjB,IAAA,GAAGA,wBAAmB;;;;;;"}
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var utils = require('./utils.js');
4
+
5
+ /**
6
+ * Comment out rarely used status codes until the user requests them.
7
+ */
8
+ const HttpErrorStatusCode = {
9
+ // 4xx Client Error
10
+ BAD_REQUEST: 400,
11
+ UNAUTHORIZED: 401,
12
+ //PAYMENT_REQUIRED: 402,
13
+ FORBIDDEN: 403,
14
+ NOT_FOUND: 404,
15
+ METHOD_NOT_ALLOWED: 405,
16
+ NOT_ACCEPTABLE: 406,
17
+ CONFLICT: 409,
18
+ //GONE: 410,
19
+ PRECONDITION_FAILED: 412,
20
+ PAYLOAD_TOO_LARGE: 413,
21
+ UNSUPPORTED_MEDIA_TYPE: 415,
22
+ //RANGE_NOT_SATISFIABLE: 416,
23
+ TOO_MANY_REQUESTS: 429,
24
+ // 5xx Server Error
25
+ INTERNAL_SERVER_ERROR: 500,
26
+ //NOT_IMPLEMENTED: 501,
27
+ BAD_GATEWAY: 502,
28
+ SERVICE_UNAVAILABLE: 503,
29
+ GATEWAY_TIMEOUT: 504,
30
+ //HTTP_VERSION_NOT_SUPPORTED: 505,
31
+ };
32
+ const HttpSuccessStatusCode = {
33
+ OK: 200,
34
+ CREATED: 201,
35
+ ACCEPTED: 202,
36
+ NO_CONTENT: 204,
37
+ };
38
+ /**
39
+ * This is number status code to use in the msw logic.
40
+ */
41
+ const HttpStatusCode = {
42
+ ...HttpSuccessStatusCode,
43
+ ...HttpErrorStatusCode,
44
+ };
45
+ /**
46
+ * This is string status code to use in the form.
47
+ */
48
+ const StringHttpStatusCode = utils.getStringifyEnumObj(HttpStatusCode);
49
+ const HttpMethod = {
50
+ GET: "get",
51
+ POST: "post",
52
+ PUT: "put",
53
+ DELETE: "delete",
54
+ PATCH: "patch",
55
+ OPTIONS: "options",
56
+ HEAD: "head",
57
+ };
58
+ const MimeType = {
59
+ APPLICATION_JSON: "application/json",
60
+ APPLICATION_XML: "application/xml",
61
+ TEXT_PLAIN: "text/plain",
62
+ TEXT_HTML: "text/html",
63
+ };
64
+
65
+ exports.HttpErrorStatusCode = HttpErrorStatusCode;
66
+ exports.HttpMethod = HttpMethod;
67
+ exports.HttpStatusCode = HttpStatusCode;
68
+ exports.HttpSuccessStatusCode = HttpSuccessStatusCode;
69
+ exports.MimeType = MimeType;
70
+ exports.StringHttpStatusCode = StringHttpStatusCode;
71
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sources":["../../../../src/lib/types/http.ts"],"sourcesContent":[null],"names":["getStringifyEnumObj"],"mappings":";;;;AAEA;;AAEG;AACU,MAAA,mBAAmB,GAAG;;AAEjC,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,YAAY,EAAE,GAAG;;AAEjB,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,QAAQ,EAAE,GAAG;;AAEb,IAAA,mBAAmB,EAAE,GAAG;AACxB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,sBAAsB,EAAE,GAAG;;AAE3B,IAAA,iBAAiB,EAAE,GAAG;;AAGtB,IAAA,qBAAqB,EAAE,GAAG;;AAE1B,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,mBAAmB,EAAE,GAAG;AACxB,IAAA,eAAe,EAAE,GAAG;;EAEX;AAIE,MAAA,qBAAqB,GAAG;AACnC,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,UAAU,EAAE,GAAG;EACN;AAIX;;AAEG;AACU,MAAA,cAAc,GAAG;AAC5B,IAAA,GAAG,qBAAqB;AACxB,IAAA,GAAG,mBAAmB;EACb;AAIX;;AAEG;MACU,oBAAoB,GAAGA,yBAAmB,CAAC,cAAc,EAAE;AAG3D,MAAA,UAAU,GAAG;AACxB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,MAAM;EACH;AAGE,MAAA,QAAQ,GAAG;AACtB,IAAA,gBAAgB,EAAE,kBAAkB;AACpC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,SAAS,EAAE,WAAW;;;;;;;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ const getStringifyEnumObj = (enumObj) => {
4
+ return Object.entries(enumObj).reduce((acc, [key, value]) => {
5
+ return { ...acc, [key]: value.toString() };
6
+ }, {});
7
+ };
8
+
9
+ exports.getStringifyEnumObj = getStringifyEnumObj;
10
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/lib/types/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAWa,MAAA,mBAAmB,GAAG,CACjC,OAAU,KACU;AACpB,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC1D,QAAA,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC5C,EAAE,EAAsB,CAAC,CAAC;AAC7B;;;;"}
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var type = require('./type.js');
3
+ var http = require('../types/http.js');
4
+ var core = require('../types/core.js');
4
5
  var msw = require('msw');
5
- var _const = require('./const.js');
6
+ var _const = require('../const.js');
6
7
 
7
8
  const getRowId = ({ path, method }) => JSON.stringify({
8
9
  path,
@@ -24,7 +25,7 @@ const convertHandlers = (handlers) => {
24
25
  path,
25
26
  method: method,
26
27
  handler,
27
- behavior: type.HttpHandlerBehavior.DEFAULT,
28
+ behavior: core.HttpHandlerBehavior.DEFAULT,
28
29
  type: "default",
29
30
  });
30
31
  return acc;
@@ -40,23 +41,23 @@ const isHttpHandler = (handler) => {
40
41
  return ("info" in handler && "method" in handler.info && "path" in handler.info);
41
42
  };
42
43
  const getHandlerResponseByBehavior = async (behavior, originalResolverCallback) => {
43
- if (!behavior || behavior === type.CustomBehavior.DEFAULT) {
44
+ if (!behavior || behavior === core.CustomBehavior.DEFAULT) {
44
45
  return originalResolverCallback();
45
46
  }
46
- if (behavior === type.CustomBehavior.DISABLE) {
47
+ if (behavior === core.CustomBehavior.DISABLE) {
47
48
  return msw.passthrough();
48
49
  }
49
- if (behavior === type.CustomBehavior.DELAY) {
50
+ if (behavior === core.CustomBehavior.DELAY) {
50
51
  await msw.delay("infinite");
51
52
  return new Response();
52
53
  }
53
- if (behavior === type.CustomBehavior.RETURN_NULL) {
54
+ if (behavior === core.CustomBehavior.RETURN_NULL) {
54
55
  return msw.HttpResponse.json(null, { status: 200 });
55
56
  }
56
- if (behavior === type.CustomBehavior.NETWORK_ERROR) {
57
+ if (behavior === core.CustomBehavior.NETWORK_ERROR) {
57
58
  return msw.HttpResponse.error();
58
59
  }
59
- for (const code of Object.values(type.HttpStatusCode)) {
60
+ for (const code of Object.values(http.HttpErrorStatusCode)) {
60
61
  if (behavior === code) {
61
62
  return new msw.HttpResponse(null, {
62
63
  status: code,
@@ -102,4 +103,4 @@ exports.getStorageData = getStorageData;
102
103
  exports.initMSWDevToolStore = initMSWDevToolStore;
103
104
  exports.isHttpHandler = isHttpHandler;
104
105
  exports.mergeStorageData = mergeStorageData;
105
- //# sourceMappingURL=util.js.map
106
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/lib/utils/index.ts"],"sourcesContent":[null],"names":["HttpHandlerBehavior","CustomBehavior","passthrough","delay","HttpResponse","HttpErrorStatusCode","STORAGE_KEY"],"mappings":"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"}