mock-config-server 3.6.0 → 3.7.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 (68) hide show
  1. package/README.md +291 -90
  2. package/dist/bin/templates/ts/full/mock-requests/graphql/index.ts +2 -2
  3. package/dist/bin/templates/ts/full/mock-requests/graphql/user.ts +37 -37
  4. package/dist/bin/templates/ts/full/mock-requests/graphql/users.ts +14 -14
  5. package/dist/bin/templates/ts/full/mock-requests/rest/index.ts +2 -2
  6. package/dist/bin/templates/ts/full/mock-requests/rest/user.ts +37 -37
  7. package/dist/bin/templates/ts/full/mock-requests/rest/users.ts +14 -14
  8. package/dist/bin/templates/ts/graphql/mock-requests/index.ts +2 -2
  9. package/dist/bin/templates/ts/graphql/mock-requests/user.ts +37 -37
  10. package/dist/bin/templates/ts/graphql/mock-requests/users.ts +14 -14
  11. package/dist/bin/templates/ts/rest/mock-requests/index.ts +2 -2
  12. package/dist/bin/templates/ts/rest/mock-requests/user.ts +37 -37
  13. package/dist/bin/templates/ts/rest/mock-requests/users.ts +14 -14
  14. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.d.ts +6 -6
  15. package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.d.ts +14 -14
  16. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.d.ts +1 -1
  17. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +1 -3
  18. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.d.ts +17 -0
  19. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.js +33 -0
  20. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.d.ts +1 -2
  21. package/dist/src/core/middlewares/index.d.ts +1 -0
  22. package/dist/src/core/middlewares/index.js +1 -0
  23. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +3 -2
  24. package/dist/src/core/rest/createRestRoutes/createRestRoutes.d.ts +1 -1
  25. package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +1 -3
  26. package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.js +25 -1
  27. package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +1 -0
  28. package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +1 -0
  29. package/dist/src/server/createMockServer/createMockServer.js +1 -0
  30. package/dist/src/server/createRestMockServer/createRestMockServer.js +1 -0
  31. package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.js +1 -1
  32. package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.js +1 -1
  33. package/dist/src/server/startMockServer/startMockServer.js +1 -1
  34. package/dist/src/server/startRestMockServer/startRestMockServer.js +1 -1
  35. package/dist/src/static/views/pages/404/index.ejs +66 -69
  36. package/dist/src/utils/helpers/date/formatTimestamp/formatTimestamp.d.ts +1 -0
  37. package/dist/src/utils/helpers/date/formatTimestamp/formatTimestamp.js +18 -0
  38. package/dist/src/utils/helpers/date/index.d.ts +1 -0
  39. package/dist/src/utils/helpers/date/index.js +18 -0
  40. package/dist/src/utils/helpers/index.d.ts +2 -0
  41. package/dist/src/utils/helpers/index.js +2 -0
  42. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +7 -1
  43. package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +9 -1
  44. package/dist/src/utils/helpers/logger/callRequestLogger/callRequestLogger.d.ts +8 -0
  45. package/dist/src/utils/helpers/logger/callRequestLogger/callRequestLogger.js +50 -0
  46. package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.d.ts +10 -0
  47. package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.js +54 -0
  48. package/dist/src/utils/helpers/logger/helpers/filterTokens/filterTokens.d.ts +5 -0
  49. package/dist/src/utils/helpers/logger/helpers/filterTokens/filterTokens.js +44 -0
  50. package/dist/src/utils/helpers/logger/helpers/formatTokens/formatTokens.d.ts +2 -0
  51. package/dist/src/utils/helpers/logger/helpers/formatTokens/formatTokens.js +23 -0
  52. package/dist/src/utils/helpers/logger/helpers/index.d.ts +2 -0
  53. package/dist/src/utils/helpers/logger/helpers/index.js +19 -0
  54. package/dist/src/utils/helpers/logger/index.d.ts +2 -0
  55. package/dist/src/utils/helpers/logger/index.js +19 -0
  56. package/dist/src/utils/types/checkModes.d.ts +0 -1
  57. package/dist/src/utils/types/graphql.d.ts +2 -5
  58. package/dist/src/utils/types/index.d.ts +2 -0
  59. package/dist/src/utils/types/index.js +2 -0
  60. package/dist/src/utils/types/interceptors.d.ts +11 -7
  61. package/dist/src/utils/types/logger.d.ts +43 -0
  62. package/dist/src/utils/types/logger.js +4 -0
  63. package/dist/src/utils/types/rest.d.ts +2 -2
  64. package/dist/src/utils/types/server.d.ts +2 -2
  65. package/dist/src/utils/types/shared.d.ts +1 -0
  66. package/dist/src/utils/types/shared.js +4 -0
  67. package/dist/src/utils/types/values.d.ts +7 -0
  68. package/package.json +1 -1
@@ -22,7 +22,7 @@ const startRestMockServer = (restMockServerConfig)=>{
22
22
  var _restMockServerConfig_port;
23
23
  const port = (_restMockServerConfig_port = restMockServerConfig.port) !== null && _restMockServerConfig_port !== void 0 ? _restMockServerConfig_port : _constants.DEFAULT.PORT;
24
24
  const server = mockServer.listen(port, ()=>{
25
- console.log(_ansicolors.default.green(`🎉 Rest Mock Server is running at http://localhost:${port}`));
25
+ console.info(_ansicolors.default.green(`🎉 Rest Mock Server is running at http://localhost:${port}`));
26
26
  });
27
27
  // ✅ important: add destroy method for closing keep-alive connections after server shutdown
28
28
  return (0, _middlewares.destroyerMiddleware)(server);
@@ -1,85 +1,82 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3
6
 
4
- <head>
5
- <meta charset="UTF-8" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>404 - 🎉 Mock Config Server</title>
7
8
 
8
- <title>404 - 🎉 Mock Config Server</title>
9
+ <link rel="stylesheet" href="/assets/styles/global.css" />
10
+ <link rel="stylesheet" href="/pages/404/index.css" />
9
11
 
10
- <link rel="stylesheet" href="/assets/styles/global.css" />
11
- <link rel="stylesheet" href="/pages/404/index.css" />
12
+ <% const api = { rest: "REST", graphql: "GraphQL" } %>
12
13
 
13
- <% const api = { rest: "REST", graphql: "GraphQL" } %>
14
+ <% const rootPath = (path) => `../../${path}` %>
15
+ <%- include(rootPath('features/scheme/index')) -%>
16
+ <%- include(rootPath('features/tab/index')) -%>
17
+ </head>
14
18
 
15
- <% const rootPath = (path) => `../../${path}` %>
16
- <%- include(rootPath('features/scheme/index')) -%>
17
- <%- include(rootPath('features/tab/index')) -%>
18
- </head>
19
-
20
- <body class="tab_item-<%= graphqlRequestSuggestions.length ? api.graphql : api.rest %>">
21
- <%- include(rootPath('components/header/index')) -%>
22
- <div class="margin_container">
23
- <div class="hero">
24
- <div class="title">
25
- <img src="/assets/images/404.png" />
26
- 404
27
- </div>
28
- <div class="description">
29
- Such request or page not found ☹️
30
- <a class="link" href="/">
31
- Return on main page
32
- </a>
33
- </div>
34
- </div>
35
- </div>
36
- <div class="margin_container">
37
- <div class="content">
38
- <div class="content_head">
39
- <div class="tab_items">
40
- <% Object.values(api).forEach((variant)=> { %>
41
- <div id="tab_item-<%=variant%>" class="tab_item">
42
- <%=variant%>
43
- </div>
44
- <% }) %>
19
+ <body class="tab_item-<%= graphqlRequestSuggestions.length ? api.graphql : api.rest %>">
20
+ <%- include(rootPath('components/header/index')) -%>
21
+ <div class="margin_container">
22
+ <div class="hero">
23
+ <div class="title">
24
+ <img src="/assets/images/404.png" />
25
+ 404
45
26
  </div>
46
- </div>
47
- <div id="tab_content-<%=api.rest%>" class="tab_content">
48
27
  <div class="description">
49
- <% if (restRequestSuggestions.length) { %>
50
- <span>We searched a bit, maybe this will help you:</span>
51
- <% restRequestSuggestions.forEach((requestSuggestion) => { %>
52
- <span><%= requestSuggestion.method.toUpperCase() %> <%=
53
- requestSuggestion.path %></span>
54
- <% })} else { %>
55
- <span>We searched, but found nothing.</span>
56
- <span>Maybe you don't have <%=api.rest%> configs? 👀</span>
57
- <a class="link" href="https://github.com/siberiacancode/mock-config-server#configs" rel="noopener noreferrer" target="_blank">
58
- Read documentation 📘 for more information
28
+ Such request or page not found ☹️
29
+ <a class="link" href="/">
30
+ Return on main page
59
31
  </a>
60
- <% } %>
61
32
  </div>
62
33
  </div>
34
+ </div>
35
+ <div class="margin_container">
36
+ <div class="content">
37
+ <div class="content_head">
38
+ <div class="tab_items">
39
+ <% Object.values(api).forEach((variant)=> { %>
40
+ <div id="tab_item-<%=variant%>" class="tab_item">
41
+ <%=variant%>
42
+ </div>
43
+ <% }) %>
44
+ </div>
45
+ </div>
46
+ <div id="tab_content-<%=api.rest%>" class="tab_content">
47
+ <div class="description">
48
+ <% if (restRequestSuggestions.length) { %>
49
+ <span>We searched a bit, maybe this will help you:</span>
50
+ <% restRequestSuggestions.forEach((requestSuggestion) => { %>
51
+ <span><%= requestSuggestion.method.toUpperCase() %> <%=
52
+ requestSuggestion.path %></span>
53
+ <% })} else { %>
54
+ <span>We searched, but found nothing.</span>
55
+ <span>Maybe you don't have <%=api.rest%> configs? 👀</span>
56
+ <a class="link" href="https://github.com/siberiacancode/mock-config-server#configs" rel="noopener noreferrer" target="_blank">
57
+ Read documentation 📘 for more information
58
+ </a>
59
+ <% } %>
60
+ </div>
61
+ </div>
63
62
 
64
- <div id="tab_content-<%=api.graphql%>" class="tab_content">
65
- <div class="description">
66
- <% if (graphqlRequestSuggestions.length) { %>
67
- <span>We searched a bit, maybe this will help you:</span>
68
- <% graphqlRequestSuggestions.forEach((requestSuggestion) => { %>
69
- <span><%= requestSuggestion.operationType %> <%=
70
- requestSuggestion.operationName %></span>
71
- <% })} else { %>
72
- <span>We searched, but found nothing.</span>
73
- <span>Maybe you don't have <%=api.graphql%> configs? 👀</span>
74
- <a class="link" href="https://github.com/siberiacancode/mock-config-server#configs" rel="noopener noreferrer" target="_blank">
75
- Read documentation 📘 for more information
76
- </a>
77
- <% } %>
63
+ <div id="tab_content-<%=api.graphql%>" class="tab_content">
64
+ <div class="description">
65
+ <% if (graphqlRequestSuggestions.length) { %>
66
+ <span>We searched a bit, maybe this will help you:</span>
67
+ <% graphqlRequestSuggestions.forEach((requestSuggestion) => { %>
68
+ <span><%= requestSuggestion.operationType %> <%=
69
+ requestSuggestion.operationName %></span>
70
+ <% })} else { %>
71
+ <span>We searched, but found nothing.</span>
72
+ <span>Maybe you don't have <%=api.graphql%> configs? 👀</span>
73
+ <a class="link" href="https://github.com/siberiacancode/mock-config-server#configs" rel="noopener noreferrer" target="_blank">
74
+ Read documentation 📘 for more information
75
+ </a>
76
+ <% } %>
77
+ </div>
78
78
  </div>
79
79
  </div>
80
80
  </div>
81
- </div>
82
- </div>
83
- </body>
84
-
85
- </html>
81
+ </body>
82
+ </html>
@@ -0,0 +1 @@
1
+ export declare const formatTimestamp: (timestamp: number) => string;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "formatTimestamp", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return formatTimestamp;
9
+ }
10
+ });
11
+ const formatTimestamp = (timestamp)=>new Date(timestamp).toLocaleString('ru-RU', {
12
+ day: 'numeric',
13
+ month: 'numeric',
14
+ year: 'numeric',
15
+ hour: 'numeric',
16
+ minute: 'numeric',
17
+ fractionalSecondDigits: 3
18
+ });
@@ -0,0 +1 @@
1
+ export * from './formatTimestamp/formatTimestamp';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./formatTimestamp/formatTimestamp"), exports);
6
+ function _export_star(from, to) {
7
+ Object.keys(from).forEach(function(k) {
8
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
+ Object.defineProperty(to, k, {
10
+ enumerable: true,
11
+ get: function() {
12
+ return from[k];
13
+ }
14
+ });
15
+ }
16
+ });
17
+ return from;
18
+ }
@@ -1,5 +1,6 @@
1
1
  export * from './asyncHandler';
2
2
  export * from './config';
3
+ export * from './date';
3
4
  export * from './entities';
4
5
  export * from './files';
5
6
  export * from './graphql';
@@ -7,5 +8,6 @@ export * from './interceptors';
7
8
  export * from './isPlainObject/isPlainObject';
8
9
  export * from './isPrimitive/isPrimitive';
9
10
  export * from './isRegExp/isRegExp';
11
+ export * from './logger';
10
12
  export * from './sleep';
11
13
  export * from './url';
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  _export_star(require("./asyncHandler"), exports);
6
6
  _export_star(require("./config"), exports);
7
+ _export_star(require("./date"), exports);
7
8
  _export_star(require("./entities"), exports);
8
9
  _export_star(require("./files"), exports);
9
10
  _export_star(require("./graphql"), exports);
@@ -11,6 +12,7 @@ _export_star(require("./interceptors"), exports);
11
12
  _export_star(require("./isPlainObject/isPlainObject"), exports);
12
13
  _export_star(require("./isPrimitive/isPrimitive"), exports);
13
14
  _export_star(require("./isRegExp/isRegExp"), exports);
15
+ _export_star(require("./logger"), exports);
14
16
  _export_star(require("./sleep"), exports);
15
17
  _export_star(require("./url"), exports);
16
18
  function _export_star(from, to) {
@@ -8,18 +8,24 @@ Object.defineProperty(exports, "callRequestInterceptor", {
8
8
  return callRequestInterceptor;
9
9
  }
10
10
  });
11
+ const _logger = require("../../logger");
11
12
  const _setDelay = require("../helpers/setDelay");
12
13
  const callRequestInterceptor = async (params)=>{
13
14
  const { request, interceptor } = params;
14
15
  const getHeader = (field)=>request.headers[field];
15
16
  const getHeaders = ()=>request.headers;
16
17
  const getCookie = (name)=>request.cookies[name];
18
+ const log = (logger)=>(0, _logger.callRequestLogger)({
19
+ logger,
20
+ request
21
+ });
17
22
  const requestInterceptorParams = {
18
23
  request,
19
24
  setDelay: _setDelay.setDelay,
20
25
  getHeader,
21
26
  getHeaders,
22
- getCookie
27
+ getCookie,
28
+ log
23
29
  };
24
30
  await interceptor(requestInterceptorParams);
25
31
  };
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "callResponseInterceptors", {
8
8
  return callResponseInterceptors;
9
9
  }
10
10
  });
11
+ const _logger = require("../../logger");
11
12
  const _setDelay = require("../helpers/setDelay");
12
13
  const callResponseInterceptors = async (params)=>{
13
14
  const { data, request, response, interceptors } = params;
@@ -36,6 +37,12 @@ const callResponseInterceptors = async (params)=>{
36
37
  const attachment = (filename)=>{
37
38
  response.attachment(filename);
38
39
  };
40
+ const log = (logger)=>(0, _logger.callResponseLogger)({
41
+ logger,
42
+ data,
43
+ request,
44
+ response
45
+ });
39
46
  const responseInterceptorParams = {
40
47
  request,
41
48
  response,
@@ -48,7 +55,8 @@ const callResponseInterceptors = async (params)=>{
48
55
  setCookie,
49
56
  getCookie,
50
57
  clearCookie,
51
- attachment
58
+ attachment,
59
+ log
52
60
  };
53
61
  let updatedData = data;
54
62
  if (interceptors === null || interceptors === void 0 ? void 0 : interceptors.routeInterceptor) {
@@ -0,0 +1,8 @@
1
+ import type { Request } from 'express';
2
+ import type { Logger } from '../../../types';
3
+ interface CallRequestLoggerParams {
4
+ logger?: Logger<'request'>;
5
+ request: Request;
6
+ }
7
+ export declare const callRequestLogger: ({ logger, request }: CallRequestLoggerParams) => import("../../../types").PlainObject;
8
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "callRequestLogger", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return callRequestLogger;
9
+ }
10
+ });
11
+ const _helpers = require("../helpers");
12
+ const DEFAULT_REQUEST_LOGGER_OPTIONS = {
13
+ type: true,
14
+ id: true,
15
+ timestamp: true,
16
+ method: true,
17
+ url: true
18
+ };
19
+ const callRequestLogger = ({ logger, request })=>{
20
+ var _request_graphQL, _request_graphQL1, _request_graphQL2, _request_graphQL3;
21
+ var _request_graphQL_operationType, _request_graphQL_operationName, _request_graphQL_query, _request_graphQL_variables;
22
+ const tokens = {
23
+ type: 'request',
24
+ id: request.id,
25
+ timestamp: request.timestamp,
26
+ method: request.method.toLowerCase(),
27
+ url: decodeURI(`${request.protocol}://${request.get('host')}${request.originalUrl}`),
28
+ graphQLOperationType: (_request_graphQL_operationType = (_request_graphQL = request.graphQL) === null || _request_graphQL === void 0 ? void 0 : _request_graphQL.operationType) !== null && _request_graphQL_operationType !== void 0 ? _request_graphQL_operationType : null,
29
+ graphQLOperationName: (_request_graphQL_operationName = (_request_graphQL1 = request.graphQL) === null || _request_graphQL1 === void 0 ? void 0 : _request_graphQL1.operationName) !== null && _request_graphQL_operationName !== void 0 ? _request_graphQL_operationName : null,
30
+ graphQLQuery: (_request_graphQL_query = (_request_graphQL2 = request.graphQL) === null || _request_graphQL2 === void 0 ? void 0 : _request_graphQL2.query) !== null && _request_graphQL_query !== void 0 ? _request_graphQL_query : null,
31
+ variables: (_request_graphQL_variables = (_request_graphQL3 = request.graphQL) === null || _request_graphQL3 === void 0 ? void 0 : _request_graphQL3.variables) !== null && _request_graphQL_variables !== void 0 ? _request_graphQL_variables : null,
32
+ headers: request.headers,
33
+ cookies: request.cookies,
34
+ query: request.query,
35
+ params: request.params,
36
+ body: request.body
37
+ };
38
+ var _logger_options;
39
+ const options = (_logger_options = logger === null || logger === void 0 ? void 0 : logger.options) !== null && _logger_options !== void 0 ? _logger_options : DEFAULT_REQUEST_LOGGER_OPTIONS;
40
+ const filteredTokens = (0, _helpers.filterTokens)(tokens, options);
41
+ if (logger === null || logger === void 0 ? void 0 : logger.rewrite) {
42
+ logger.rewrite(filteredTokens);
43
+ return filteredTokens;
44
+ }
45
+ const formattedTokens = (0, _helpers.formatTokens)(filteredTokens);
46
+ console.dir(formattedTokens, {
47
+ depth: null
48
+ });
49
+ return filteredTokens;
50
+ };
@@ -0,0 +1,10 @@
1
+ import type { Request, Response } from 'express';
2
+ import type { Data, Logger } from '../../../types';
3
+ interface CallResponseLoggerParams {
4
+ logger?: Logger<'response'>;
5
+ data: Data;
6
+ request: Request;
7
+ response: Response;
8
+ }
9
+ export declare const callResponseLogger: ({ logger, data, request, response }: CallResponseLoggerParams) => import("../../../types").PlainObject;
10
+ export {};
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "callResponseLogger", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return callResponseLogger;
9
+ }
10
+ });
11
+ const _helpers = require("../helpers");
12
+ const DEFAULT_RESPONSE_LOGGER_OPTIONS = {
13
+ type: true,
14
+ id: true,
15
+ timestamp: true,
16
+ method: true,
17
+ url: true,
18
+ statusCode: true,
19
+ data: true
20
+ };
21
+ const callResponseLogger = ({ logger, data, request, response })=>{
22
+ var _request_graphQL, _request_graphQL1, _request_graphQL2, _request_graphQL3;
23
+ var _request_graphQL_operationType, _request_graphQL_operationName, _request_graphQL_query, _request_graphQL_variables;
24
+ const tokens = {
25
+ type: 'response',
26
+ id: request.id,
27
+ timestamp: Date.now(),
28
+ method: request.method.toLowerCase(),
29
+ url: decodeURI(`${request.protocol}://${request.get('host')}${request.originalUrl}`),
30
+ graphQLOperationType: (_request_graphQL_operationType = (_request_graphQL = request.graphQL) === null || _request_graphQL === void 0 ? void 0 : _request_graphQL.operationType) !== null && _request_graphQL_operationType !== void 0 ? _request_graphQL_operationType : null,
31
+ graphQLOperationName: (_request_graphQL_operationName = (_request_graphQL1 = request.graphQL) === null || _request_graphQL1 === void 0 ? void 0 : _request_graphQL1.operationName) !== null && _request_graphQL_operationName !== void 0 ? _request_graphQL_operationName : null,
32
+ graphQLQuery: (_request_graphQL_query = (_request_graphQL2 = request.graphQL) === null || _request_graphQL2 === void 0 ? void 0 : _request_graphQL2.query) !== null && _request_graphQL_query !== void 0 ? _request_graphQL_query : null,
33
+ variables: (_request_graphQL_variables = (_request_graphQL3 = request.graphQL) === null || _request_graphQL3 === void 0 ? void 0 : _request_graphQL3.variables) !== null && _request_graphQL_variables !== void 0 ? _request_graphQL_variables : null,
34
+ statusCode: response.statusCode,
35
+ headers: request.headers,
36
+ cookies: request.cookies,
37
+ query: request.query,
38
+ params: request.params,
39
+ body: request.body,
40
+ data
41
+ };
42
+ var _logger_options;
43
+ const options = (_logger_options = logger === null || logger === void 0 ? void 0 : logger.options) !== null && _logger_options !== void 0 ? _logger_options : DEFAULT_RESPONSE_LOGGER_OPTIONS;
44
+ const filteredTokens = (0, _helpers.filterTokens)(tokens, options);
45
+ if (logger === null || logger === void 0 ? void 0 : logger.rewrite) {
46
+ logger.rewrite(filteredTokens);
47
+ return filteredTokens;
48
+ }
49
+ const formattedTokens = (0, _helpers.formatTokens)(filteredTokens);
50
+ console.dir(formattedTokens, {
51
+ depth: null
52
+ });
53
+ return filteredTokens;
54
+ };
@@ -0,0 +1,5 @@
1
+ import type { PlainObject } from '../../../../types';
2
+ type TokenNestedOption = Record<string, boolean>;
3
+ type TokenOptions = Record<string, boolean | TokenNestedOption>;
4
+ export declare const filterTokens: (tokens: PlainObject, options: TokenOptions) => PlainObject;
5
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "filterTokens", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return filterTokens;
9
+ }
10
+ });
11
+ const _isPlainObject = require("../../../isPlainObject/isPlainObject");
12
+ const resolveNestedOptionFilterMode = (nestedOption)=>{
13
+ const values = Object.values(nestedOption);
14
+ return values.some(Boolean) ? 'whitelist' : 'blacklist';
15
+ };
16
+ const filterTokens = (tokens, options)=>Object.entries(options).reduce((acc, [name, option])=>{
17
+ const token = tokens[name];
18
+ if (option === true) {
19
+ acc[name] = token;
20
+ return acc;
21
+ }
22
+ const isNestedOption = (0, _isPlainObject.isPlainObject)(option);
23
+ const isNestedToken = (0, _isPlainObject.isPlainObject)(token);
24
+ if (isNestedOption && isNestedToken) {
25
+ const nestedOptionFilterMode = resolveNestedOptionFilterMode(option);
26
+ if (nestedOptionFilterMode === 'whitelist') {
27
+ acc[name] = Object.entries(option).reduce((acc, [name, nestedOption])=>{
28
+ if (nestedOption) {
29
+ acc[name] = token[name];
30
+ }
31
+ return acc;
32
+ }, {});
33
+ }
34
+ if (nestedOptionFilterMode === 'blacklist') {
35
+ acc[name] = Object.keys(token).reduce((acc, name)=>{
36
+ if (option[name] !== false) {
37
+ acc[name] = token[name];
38
+ }
39
+ return acc;
40
+ }, {});
41
+ }
42
+ }
43
+ return acc;
44
+ }, {});
@@ -0,0 +1,2 @@
1
+ import type { PlainObject } from '../../../../types';
2
+ export declare const formatTokens: (tokens: PlainObject) => any;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "formatTokens", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return formatTokens;
9
+ }
10
+ });
11
+ const _date = require("../../../date");
12
+ const formatTokens = (tokens)=>{
13
+ const { timestamp, method } = tokens;
14
+ return {
15
+ ...tokens,
16
+ ...timestamp && {
17
+ timestamp: (0, _date.formatTimestamp)(timestamp)
18
+ },
19
+ ...method && {
20
+ method: method.toUpperCase()
21
+ }
22
+ };
23
+ };
@@ -0,0 +1,2 @@
1
+ export * from './filterTokens/filterTokens';
2
+ export * from './formatTokens/formatTokens';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./filterTokens/filterTokens"), exports);
6
+ _export_star(require("./formatTokens/formatTokens"), exports);
7
+ function _export_star(from, to) {
8
+ Object.keys(from).forEach(function(k) {
9
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
10
+ Object.defineProperty(to, k, {
11
+ enumerable: true,
12
+ get: function() {
13
+ return from[k];
14
+ }
15
+ });
16
+ }
17
+ });
18
+ return from;
19
+ }
@@ -0,0 +1,2 @@
1
+ export * from './callRequestLogger/callRequestLogger';
2
+ export * from './callResponseLogger/callResponseLogger';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./callRequestLogger/callRequestLogger"), exports);
6
+ _export_star(require("./callResponseLogger/callResponseLogger"), exports);
7
+ function _export_star(from, to) {
8
+ Object.keys(from).forEach(function(k) {
9
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
10
+ Object.defineProperty(to, k, {
11
+ enumerable: true,
12
+ get: function() {
13
+ return from[k];
14
+ }
15
+ });
16
+ }
17
+ });
18
+ return from;
19
+ }
@@ -4,7 +4,6 @@ export type CompareWithDescriptorStringValueCheckMode = 'includes' | 'notInclude
4
4
  export type CompareWithDescriptorValueCheckMode = CompareWithDescriptorAnyValueCheckMode | CompareWithDescriptorStringValueCheckMode;
5
5
  export type CalculateByDescriptorValueCheckMode = 'regExp' | 'function';
6
6
  export type CheckMode = CheckActualValueCheckMode | CompareWithDescriptorValueCheckMode | CalculateByDescriptorValueCheckMode;
7
- export type PlainEntityCheckMode = Exclude<CheckMode, CompareWithDescriptorStringValueCheckMode | Extract<CalculateByDescriptorValueCheckMode, 'regExp'>>;
8
7
  export interface EntityDescriptor {
9
8
  checkMode: CheckMode;
10
9
  value?: any;
@@ -6,9 +6,6 @@ export type GraphQLEntityName = 'headers' | 'cookies' | 'query' | 'variables';
6
6
  export type GraphQLEntity<EntityName extends GraphQLEntityName = GraphQLEntityName> = EntityName extends 'variables' ? PlainEntity : MappedEntity;
7
7
  export type GraphQLOperationType = 'query' | 'mutation';
8
8
  export type GraphQLOperationName = string | RegExp;
9
- export type GraphQLEntityNamesByOperationType = {
10
- [operationType in GraphQLOperationType]: GraphQLEntityName;
11
- };
12
9
  export type GraphQLEntitiesByEntityName = {
13
10
  [EntityName in GraphQLEntityName]?: GraphQLEntity<EntityName>;
14
11
  };
@@ -32,12 +29,12 @@ export type GraphQLRouteConfig = ({
32
29
  data: ((request: Request, entities: GraphQLEntitiesByEntityName) => Data | Promise<Data>) | Data;
33
30
  }) & {
34
31
  entities?: GraphQLEntitiesByEntityName;
35
- interceptors?: Interceptors;
32
+ interceptors?: Interceptors<'graphql'>;
36
33
  };
37
34
  interface BaseGraphQLRequestConfig {
38
35
  operationType: GraphQLOperationType;
39
36
  routes: GraphQLRouteConfig[];
40
- interceptors?: Interceptors;
37
+ interceptors?: Interceptors<'graphql'>;
41
38
  }
42
39
  export interface OperationNameGraphQLRequestConfig extends BaseGraphQLRequestConfig {
43
40
  operationName: GraphQLOperationName;
@@ -3,7 +3,9 @@ export * from './database';
3
3
  export * from './entities';
4
4
  export * from './graphql';
5
5
  export * from './interceptors';
6
+ export * from './logger';
6
7
  export * from './rest';
7
8
  export * from './server';
9
+ export * from './shared';
8
10
  export * from './utils';
9
11
  export * from './values';
@@ -7,8 +7,10 @@ _export_star(require("./database"), exports);
7
7
  _export_star(require("./entities"), exports);
8
8
  _export_star(require("./graphql"), exports);
9
9
  _export_star(require("./interceptors"), exports);
10
+ _export_star(require("./logger"), exports);
10
11
  _export_star(require("./rest"), exports);
11
12
  _export_star(require("./server"), exports);
13
+ _export_star(require("./shared"), exports);
12
14
  _export_star(require("./utils"), exports);
13
15
  _export_star(require("./values"), exports);
14
16
  function _export_star(from, to) {