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 +1 @@
1
- {"version":3,"file":"BehaviorSelect.js","sources":["../../../../../src/ui/DevToolContent/HandlerTable/BehaviorSelect.tsx"],"sourcesContent":[null],"names":["HttpHandlerBehavior","useHandlerStore","Select"],"mappings":";;;;;;;AAOA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAACA,wBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM;AACpE,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,QAAkB;AAC1B,CAAA,CAAC,CAAC,CAAC;MAES,cAAc,GAAG,CAAC,EAAE,GAAG,EAAgC,KAAI;;AACtE,IAAA,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3B,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAGC,4BAAe,EAAE,CAAC;IAErE,QACE,KAAC,CAAA,aAAA,CAAAC,aAAM,EACL,EAAA,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAA,EAAA,GAAA,kBAAkB,CAAC,EAAE,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAAF,wBAAmB,CAAC,OAAO,EAClE,aAAa,EAAE,CAAC,MAAM,KAAI;YACxB,MAAM,KAAK,GAAG,MAA6B,CAAC;YAC5C,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC7C,SAAC,gBACU,OAAO,EAAA,yBAAA,EACM,OAAO,EAAA,CAC/B,EACF;AACJ;;;;"}
1
+ {"version":3,"file":"BehaviorSelect.js","sources":["../../../../../src/ui/DevToolContent/HandlerTable/BehaviorSelect.tsx"],"sourcesContent":[null],"names":["HttpHandlerBehavior","useHandlerStore","Select"],"mappings":";;;;;;;;AAOA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAACA,wBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM;AACpE,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,QAAkB;AAC1B,CAAA,CAAC,CAAC,CAAC;MAES,cAAc,GAAG,CAAC,EAAE,GAAG,EAAgC,KAAI;;AACtE,IAAA,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3B,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAGC,4BAAe,EAAE,CAAC;IAErE,QACE,KAAC,CAAA,aAAA,CAAAC,aAAM,EACL,EAAA,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAA,EAAA,GAAA,kBAAkB,CAAC,EAAE,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAAF,wBAAmB,CAAC,OAAO,EAClE,aAAa,EAAE,CAAC,MAAM,KAAI;YACxB,MAAM,KAAK,GAAG,MAA6B,CAAC;YAC5C,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC7C,SAAC,gBACU,OAAO,EAAA,yBAAA,EACM,OAAO,EAAA,CAC/B,EACF;AACJ;;;;"}
@@ -2,58 +2,56 @@
2
2
 
3
3
  var reactIcons_esm = require('../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js');
4
4
  var React = require('react');
5
- var schema = require('./schema.js');
6
- var type = require('../../../lib/type.js');
5
+ var handler = require('../../../schema/handler.js');
6
+ var http = require('../../../lib/types/http.js');
7
7
  var InputFormField = require('../Form/InputFormField.js');
8
8
  var TextAreaFormField = require('../Form/TextAreaFormField.js');
9
9
  var SelectFormField = require('../Form/SelectFormField.js');
10
10
  var handlerStore = require('../../../lib/handlerStore.js');
11
+ var index_esm = require('../../../node_modules/react-hook-form/dist/index.esm.js');
12
+ var zod = require('../../../node_modules/@hookform/resolvers/zod/dist/zod.js');
13
+ var util = require('./util.js');
11
14
  var flex = require('../../../node_modules/@radix-ui/themes/dist/esm/components/flex.js');
12
15
  var button = require('../../../node_modules/@radix-ui/themes/dist/esm/components/button.js');
13
16
 
14
- const options = Object.values(type.HttpMethod).map((method) => ({
15
- label: method,
16
- value: method,
17
- }));
17
+ const methodOptions = util.getOptions(http.HttpMethod);
18
+ const statusOptions = util.getOptions(http.StringHttpStatusCode);
19
+ const mimeTypeOptions = util.getOptions(http.MimeType);
18
20
  const HandlerForm = ({ onClose }) => {
21
+ var _a, _b, _c, _d, _e, _f, _g, _h;
19
22
  const { addTempHandler } = handlerStore.useHandlerStore();
20
- const [errors, setErrors] = React.useState({});
21
- const validateForm = (e) => {
22
- e.preventDefault();
23
- const formData = new FormData(e.currentTarget);
24
- const data = {
25
- method: formData.get("method"),
26
- path: formData.get("path"),
27
- response: formData.get("response"),
28
- };
29
- const result = schema.handlerSchema.safeParse(data);
30
- if (!result.success) {
31
- const formattedErrors = {};
32
- result.error.issues.forEach((issue) => {
33
- issue.path.forEach((path) => {
34
- const key = path;
35
- formattedErrors[key] = issue.message;
36
- });
37
- });
38
- setErrors(formattedErrors);
39
- return;
40
- }
41
- setErrors({});
42
- addTempHandler(result.data);
23
+ const { register, handleSubmit, formState: { errors }, } = index_esm.useForm({
24
+ resolver: zod.zodResolver(handler.handlerSchema),
25
+ defaultValues: {
26
+ method: http.HttpMethod.GET,
27
+ status: http.StringHttpStatusCode.OK,
28
+ contentType: http.MimeType.APPLICATION_JSON,
29
+ delay: 0,
30
+ },
31
+ });
32
+ const onSubmit = handleSubmit((data) => {
33
+ addTempHandler({ data });
43
34
  onClose === null || onClose === void 0 ? void 0 : onClose();
44
- };
45
- return (React.createElement("form", { onSubmit: validateForm, style: {
35
+ });
36
+ return (React.createElement("form", { onSubmit: onSubmit, style: {
46
37
  display: "flex",
47
38
  flexDirection: "column",
48
39
  gap: "var(--space-5)",
49
40
  overflow: "hidden",
50
41
  } },
51
42
  React.createElement(flex.Flex, { gap: "5", direction: "column", overflow: "scroll", flexGrow: "1" },
52
- React.createElement(SelectFormField.SelectFormField, { label: "Method", name: "method", error: errors.method, options: options, required: true, defaultValue: type.HttpMethod.GET }),
53
- React.createElement(InputFormField.InputFormField, { label: "Path", name: "path", error: errors.path, placeholder: "api end point", required: true }),
54
- React.createElement(TextAreaFormField.TextAreaFormField, { label: "Response", name: "response", error: errors.response, placeholder: "JSON response", style: {
43
+ React.createElement(SelectFormField.SelectFormField, { label: "Method", ...register("method"), error: (_a = errors.method) === null || _a === void 0 ? void 0 : _a.message, options: methodOptions, defaultValue: http.HttpMethod.GET }),
44
+ React.createElement(InputFormField.InputFormField, { label: "Path", ...register("path"), error: (_b = errors.path) === null || _b === void 0 ? void 0 : _b.message, placeholder: "api end point", required: true }),
45
+ React.createElement(InputFormField.InputFormField, { label: "Delay", ...register("delay", { setValueAs: Number }), error: (_c = errors.delay) === null || _c === void 0 ? void 0 : _c.message, placeholder: "delay time (ms)", type: "number", onWheel: (e) => e.currentTarget.blur() }),
46
+ React.createElement(SelectFormField.SelectFormField, { label: "Status Code", ...register("status"), defaultValue: http.StringHttpStatusCode.OK, error: (_d = errors.status) === null || _d === void 0 ? void 0 : _d.message, options: statusOptions }),
47
+ React.createElement(InputFormField.InputFormField, { label: "Status Text", ...register("statusText"), error: (_e = errors.statusText) === null || _e === void 0 ? void 0 : _e.message, placeholder: "status text for status code" }),
48
+ React.createElement(SelectFormField.SelectFormField, { label: "Content Type (MIME types)", ...register("contentType"), defaultValue: http.MimeType.APPLICATION_JSON, error: (_f = errors.contentType) === null || _f === void 0 ? void 0 : _f.message, options: mimeTypeOptions }),
49
+ React.createElement(TextAreaFormField.TextAreaFormField, { label: "Response", ...register("response"), error: (_g = errors.response) === null || _g === void 0 ? void 0 : _g.message, placeholder: "response body with 'content-type'", style: {
55
50
  minHeight: "225px",
56
- }, required: true })),
51
+ } }),
52
+ React.createElement(TextAreaFormField.TextAreaFormField, { label: "Header", ...register("header"), error: (_h = errors.header) === null || _h === void 0 ? void 0 : _h.message, placeholder: "header with JSON format", style: {
53
+ minHeight: "225px",
54
+ } })),
57
55
  React.createElement(button.Button, { type: "submit" },
58
56
  React.createElement(reactIcons_esm.PlusIcon, null),
59
57
  "Add")));
@@ -1 +1 @@
1
- {"version":3,"file":"HandlerForm.js","sources":["../../../../../src/ui/DevToolContent/ToolButtonGroup/HandlerForm.tsx"],"sourcesContent":[null],"names":["HttpMethod","useHandlerStore","useState","handlerSchema","Flex","SelectFormField","InputFormField","TextAreaFormField","Button","PlusIcon"],"mappings":"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"}
1
+ {"version":3,"file":"HandlerForm.js","sources":["../../../../../src/ui/DevToolContent/ToolButtonGroup/HandlerForm.tsx"],"sourcesContent":[null],"names":["getOptions","HttpMethod","StringHttpStatusCode","MimeType","useHandlerStore","useForm","zodResolver","handlerSchema","Flex","SelectFormField","InputFormField","TextAreaFormField","Button","PlusIcon"],"mappings":"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"}
@@ -18,7 +18,32 @@ const isValidJson = (input) => {
18
18
  return false;
19
19
  }
20
20
  };
21
+ const isValidMarkup = (input, mimeType) => {
22
+ try {
23
+ new DOMParser().parseFromString(input, mimeType);
24
+ return true;
25
+ }
26
+ catch (error) {
27
+ return false;
28
+ }
29
+ };
30
+ const isValidXml = (input) => {
31
+ return isValidMarkup(input, "application/xml");
32
+ };
33
+ const isValidHtml = (input) => {
34
+ return isValidMarkup(input, "text/html");
35
+ };
36
+ const getOptions = (enumObj) => {
37
+ return Object.values(enumObj).map((value) => ({
38
+ label: value,
39
+ value: value,
40
+ }));
41
+ };
21
42
 
43
+ exports.getOptions = getOptions;
44
+ exports.isValidHtml = isValidHtml;
22
45
  exports.isValidJson = isValidJson;
46
+ exports.isValidMarkup = isValidMarkup;
23
47
  exports.isValidUrl = isValidUrl;
48
+ exports.isValidXml = isValidXml;
24
49
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../../src/ui/DevToolContent/ToolButtonGroup/util.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAa,MAAA,UAAU,GAAG,CAAC,KAAa,KAAI;AAC1C,IAAA,IAAI;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,KAAK,CAAC;KACd;AACH,EAAE;AAEW,MAAA,WAAW,GAAG,CAAC,KAAa,KAAI;AAC3C,IAAA,IAAI;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClB,QAAA,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,KAAK,CAAC;KACd;AACH;;;;;"}
1
+ {"version":3,"file":"util.js","sources":["../../../../../src/ui/DevToolContent/ToolButtonGroup/util.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAa,MAAA,UAAU,GAAG,CAAC,KAAa,KAAI;AAC1C,IAAA,IAAI;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,KAAK,CAAC;KACd;AACH,EAAE;AAEW,MAAA,WAAW,GAAG,CAAC,KAAa,KAAI;AAC3C,IAAA,IAAI;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClB,QAAA,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,KAAK,CAAC;KACd;AACH,EAAE;MAEW,aAAa,GAAG,CAC3B,KAAa,EACb,QAAgC,KAC9B;AACF,IAAA,IAAI;QACF,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,KAAK,CAAC;KACd;AACH,EAAE;AAEW,MAAA,UAAU,GAAG,CAAC,KAAa,KAAI;AAC1C,IAAA,OAAO,aAAa,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACjD,EAAE;AAEW,MAAA,WAAW,GAAG,CAAC,KAAa,KAAI;AAC3C,IAAA,OAAO,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC3C,EAAE;AAEW,MAAA,UAAU,GAAG,CAAC,OAA+B,KAAI;AAC5D,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AAC5C,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,KAAK;AACb,KAAA,CAAC,CAAC,CAAC;AACN;;;;;;;;;"}
@@ -1,10 +1,11 @@
1
1
  import { create } from 'zustand';
2
- import { HttpHandlerBehavior } from './type.js';
3
- import { isHttpHandler, getRowId, getHandlerResponseByBehavior, initMSWDevToolStore, mergeStorageData } from './util.js';
2
+ import { MimeType } from './types/http.js';
3
+ import { HttpHandlerBehavior } from './types/core.js';
4
+ import { isHttpHandler, getRowId, getHandlerResponseByBehavior, initMSWDevToolStore, mergeStorageData } from './utils/index.js';
4
5
  import { setupWorker } from '../utils/mswBrowser.js';
5
6
  import { persist, createJSONStorage } from 'zustand/middleware';
6
7
  import { STORAGE_KEY } from './const.js';
7
- import { http } from 'msw';
8
+ import { HttpResponse, http, delay } from 'msw';
8
9
 
9
10
  const useHandlerStore = create()(persist((set, get) => ({
10
11
  flattenHandlers: [],
@@ -53,14 +54,36 @@ const useHandlerStore = create()(persist((set, get) => ({
53
54
  restHandlers: unsupportedHandlers,
54
55
  });
55
56
  },
56
- addTempHandler: ({ method, path, response }) => {
57
+ addTempHandler: (arg) => {
58
+ const { data } = arg;
59
+ const { path, method, response, status, contentType, delay: _delay, statusText, header, } = data;
60
+ const contentLength = {
61
+ [MimeType.APPLICATION_JSON]: response
62
+ ? new Blob([response]).size.toString()
63
+ : "0",
64
+ };
57
65
  const id = getRowId({
58
- path: path,
59
- method: method,
66
+ path,
67
+ method,
60
68
  });
61
- const handler = http.get(path, async () => {
69
+ const headers = {
70
+ "Content-Type": contentType,
71
+ ...((contentLength === null || contentLength === void 0 ? void 0 : contentLength[contentType])
72
+ ? { "Content-Length": contentLength[contentType] }
73
+ : {}),
74
+ ...(header ? JSON.parse(header) : {}),
75
+ };
76
+ const res = new HttpResponse(response, {
77
+ status: Number(status),
78
+ statusText: statusText,
79
+ headers,
80
+ });
81
+ const handler = http[method](path, async () => {
62
82
  const behavior = get().getHandlerBehavior(id);
63
- return await getHandlerResponseByBehavior(behavior, () => Response.json(JSON.parse(response)));
83
+ return await getHandlerResponseByBehavior(behavior, async () => {
84
+ await delay(_delay);
85
+ return res;
86
+ });
64
87
  });
65
88
  const worker = get().getWorker();
66
89
  worker.use(handler);
@@ -1 +1 @@
1
- {"version":3,"file":"handlerStore.js","sources":["../../../src/lib/handlerStore.ts"],"sourcesContent":[null],"names":["setupWorker","_setupWorker"],"mappings":"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"}
1
+ {"version":3,"file":"handlerStore.js","sources":["../../../src/lib/handlerStore.ts"],"sourcesContent":[null],"names":["setupWorker","_setupWorker"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { HttpErrorStatusCode } from './http.js';
2
+
3
+ const CustomBehavior = {
4
+ DEFAULT: "default",
5
+ DISABLE: "disable mock",
6
+ DELAY: "delay",
7
+ RETURN_NULL: "return null",
8
+ NETWORK_ERROR: "network error",
9
+ };
10
+ const HttpHandlerBehavior = {
11
+ ...CustomBehavior,
12
+ ...HttpErrorStatusCode,
13
+ };
14
+
15
+ export { CustomBehavior, HttpHandlerBehavior };
16
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sources":["../../../../src/lib/types/core.ts"],"sourcesContent":[null],"names":[],"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,GAAG,mBAAmB;;;;;"}
@@ -0,0 +1,64 @@
1
+ import { getStringifyEnumObj } from './utils.js';
2
+
3
+ /**
4
+ * Comment out rarely used status codes until the user requests them.
5
+ */
6
+ const HttpErrorStatusCode = {
7
+ // 4xx Client Error
8
+ BAD_REQUEST: 400,
9
+ UNAUTHORIZED: 401,
10
+ //PAYMENT_REQUIRED: 402,
11
+ FORBIDDEN: 403,
12
+ NOT_FOUND: 404,
13
+ METHOD_NOT_ALLOWED: 405,
14
+ NOT_ACCEPTABLE: 406,
15
+ CONFLICT: 409,
16
+ //GONE: 410,
17
+ PRECONDITION_FAILED: 412,
18
+ PAYLOAD_TOO_LARGE: 413,
19
+ UNSUPPORTED_MEDIA_TYPE: 415,
20
+ //RANGE_NOT_SATISFIABLE: 416,
21
+ TOO_MANY_REQUESTS: 429,
22
+ // 5xx Server Error
23
+ INTERNAL_SERVER_ERROR: 500,
24
+ //NOT_IMPLEMENTED: 501,
25
+ BAD_GATEWAY: 502,
26
+ SERVICE_UNAVAILABLE: 503,
27
+ GATEWAY_TIMEOUT: 504,
28
+ //HTTP_VERSION_NOT_SUPPORTED: 505,
29
+ };
30
+ const HttpSuccessStatusCode = {
31
+ OK: 200,
32
+ CREATED: 201,
33
+ ACCEPTED: 202,
34
+ NO_CONTENT: 204,
35
+ };
36
+ /**
37
+ * This is number status code to use in the msw logic.
38
+ */
39
+ const HttpStatusCode = {
40
+ ...HttpSuccessStatusCode,
41
+ ...HttpErrorStatusCode,
42
+ };
43
+ /**
44
+ * This is string status code to use in the form.
45
+ */
46
+ const StringHttpStatusCode = getStringifyEnumObj(HttpStatusCode);
47
+ const HttpMethod = {
48
+ GET: "get",
49
+ POST: "post",
50
+ PUT: "put",
51
+ DELETE: "delete",
52
+ PATCH: "patch",
53
+ OPTIONS: "options",
54
+ HEAD: "head",
55
+ };
56
+ const MimeType = {
57
+ APPLICATION_JSON: "application/json",
58
+ APPLICATION_XML: "application/xml",
59
+ TEXT_PLAIN: "text/plain",
60
+ TEXT_HTML: "text/html",
61
+ };
62
+
63
+ export { HttpErrorStatusCode, HttpMethod, HttpStatusCode, HttpSuccessStatusCode, MimeType, StringHttpStatusCode };
64
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sources":["../../../../src/lib/types/http.ts"],"sourcesContent":[null],"names":[],"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,GAAG,mBAAmB,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,8 @@
1
+ const getStringifyEnumObj = (enumObj) => {
2
+ return Object.entries(enumObj).reduce((acc, [key, value]) => {
3
+ return { ...acc, [key]: value.toString() };
4
+ }, {});
5
+ };
6
+
7
+ export { getStringifyEnumObj };
8
+ //# 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,6 +1,7 @@
1
- import { CustomBehavior, HttpStatusCode, HttpHandlerBehavior } from './type.js';
1
+ import { HttpErrorStatusCode } from '../types/http.js';
2
+ import { CustomBehavior, HttpHandlerBehavior } from '../types/core.js';
2
3
  import { passthrough, delay, HttpResponse } from 'msw';
3
- import { STORAGE_KEY } from './const.js';
4
+ import { STORAGE_KEY } from '../const.js';
4
5
 
5
6
  const getRowId = ({ path, method }) => JSON.stringify({
6
7
  path,
@@ -54,7 +55,7 @@ const getHandlerResponseByBehavior = async (behavior, originalResolverCallback)
54
55
  if (behavior === CustomBehavior.NETWORK_ERROR) {
55
56
  return HttpResponse.error();
56
57
  }
57
- for (const code of Object.values(HttpStatusCode)) {
58
+ for (const code of Object.values(HttpErrorStatusCode)) {
58
59
  if (behavior === code) {
59
60
  return new HttpResponse(null, {
60
61
  status: code,
@@ -94,4 +95,4 @@ const mergeStorageData = ({ flattenHandlers: newFlattenHandlers, }) => {
94
95
  };
95
96
 
96
97
  export { convertHandlers, getHandlerResponseByBehavior, getRowId, getStorageData, initMSWDevToolStore, isHttpHandler, mergeStorageData };
97
- //# sourceMappingURL=util.js.map
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/lib/utils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}