mock-config-server 3.6.1 → 3.7.1

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 (55) hide show
  1. package/README.md +291 -90
  2. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.d.ts +6 -6
  3. package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.d.ts +14 -14
  4. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.d.ts +1 -1
  5. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +1 -3
  6. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.d.ts +17 -0
  7. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.js +35 -0
  8. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.d.ts +1 -2
  9. package/dist/src/core/middlewares/index.d.ts +1 -0
  10. package/dist/src/core/middlewares/index.js +1 -0
  11. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +4 -3
  12. package/dist/src/core/rest/createRestRoutes/createRestRoutes.d.ts +1 -1
  13. package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +1 -3
  14. package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +1 -0
  15. package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +1 -0
  16. package/dist/src/server/createMockServer/createMockServer.js +1 -0
  17. package/dist/src/server/createRestMockServer/createRestMockServer.js +1 -0
  18. package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.js +1 -1
  19. package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.js +1 -1
  20. package/dist/src/server/startMockServer/startMockServer.js +1 -1
  21. package/dist/src/server/startRestMockServer/startRestMockServer.js +1 -1
  22. package/dist/src/static/views/pages/404/index.ejs +66 -69
  23. package/dist/src/utils/helpers/date/formatTimestamp/formatTimestamp.d.ts +1 -0
  24. package/dist/src/utils/helpers/date/formatTimestamp/formatTimestamp.js +18 -0
  25. package/dist/src/utils/helpers/date/index.d.ts +1 -0
  26. package/dist/src/utils/helpers/date/index.js +18 -0
  27. package/dist/src/utils/helpers/index.d.ts +2 -0
  28. package/dist/src/utils/helpers/index.js +2 -0
  29. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +7 -1
  30. package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +9 -1
  31. package/dist/src/utils/helpers/logger/callRequestLogger/callRequestLogger.d.ts +8 -0
  32. package/dist/src/utils/helpers/logger/callRequestLogger/callRequestLogger.js +50 -0
  33. package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.d.ts +10 -0
  34. package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.js +54 -0
  35. package/dist/src/utils/helpers/logger/helpers/filterTokens/filterTokens.d.ts +5 -0
  36. package/dist/src/utils/helpers/logger/helpers/filterTokens/filterTokens.js +44 -0
  37. package/dist/src/utils/helpers/logger/helpers/formatTokens/formatTokens.d.ts +2 -0
  38. package/dist/src/utils/helpers/logger/helpers/formatTokens/formatTokens.js +23 -0
  39. package/dist/src/utils/helpers/logger/helpers/index.d.ts +2 -0
  40. package/dist/src/utils/helpers/logger/helpers/index.js +19 -0
  41. package/dist/src/utils/helpers/logger/index.d.ts +2 -0
  42. package/dist/src/utils/helpers/logger/index.js +19 -0
  43. package/dist/src/utils/types/checkModes.d.ts +0 -1
  44. package/dist/src/utils/types/graphql.d.ts +2 -5
  45. package/dist/src/utils/types/index.d.ts +2 -0
  46. package/dist/src/utils/types/index.js +2 -0
  47. package/dist/src/utils/types/interceptors.d.ts +11 -7
  48. package/dist/src/utils/types/logger.d.ts +43 -0
  49. package/dist/src/utils/types/logger.js +4 -0
  50. package/dist/src/utils/types/rest.d.ts +2 -2
  51. package/dist/src/utils/types/server.d.ts +2 -2
  52. package/dist/src/utils/types/shared.d.ts +1 -0
  53. package/dist/src/utils/types/shared.js +4 -0
  54. package/dist/src/utils/types/values.d.ts +7 -0
  55. package/package.json +1 -1
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "contextMiddleware", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return contextMiddleware;
9
+ }
10
+ });
11
+ const _helpers = require("../../../utils/helpers");
12
+ const contextMiddleware = (server)=>{
13
+ let requestId = 0;
14
+ server.use((request, _response, next)=>{
15
+ requestId += 1;
16
+ request.id = requestId;
17
+ request.timestamp = Date.now();
18
+ if (request.method === 'GET' || request.method === 'POST') {
19
+ const graphQLInput = (0, _helpers.getGraphQLInput)(request);
20
+ var _graphQLInput_query;
21
+ const graphQLQuery = (0, _helpers.parseQuery)((_graphQLInput_query = graphQLInput.query) !== null && _graphQLInput_query !== void 0 ? _graphQLInput_query : '');
22
+ if (graphQLInput.query && graphQLQuery) {
23
+ request.graphQL = {
24
+ operationType: graphQLQuery.operationType,
25
+ operationName: graphQLQuery.operationName,
26
+ query: graphQLInput.query,
27
+ variables: graphQLInput.variables
28
+ };
29
+ return next();
30
+ }
31
+ }
32
+ request.graphQL = null;
33
+ return next();
34
+ });
35
+ };
@@ -1,3 +1,2 @@
1
- type Cookies = Record<string, string>;
1
+ import type { Cookies } from '../../../../../utils/types';
2
2
  export declare const parseCookie: (cookieHeader: string) => Cookies;
3
- export {};
@@ -1,3 +1,4 @@
1
+ export * from './contextMiddleware/contextMiddleware';
1
2
  export * from './cookieParseMiddleware/cookieParseMiddleware';
2
3
  export * from './corsMiddleware/corsMiddleware';
3
4
  export * from './destroyerMiddleware/destroyerMiddleware';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ _export_star(require("./contextMiddleware/contextMiddleware"), exports);
5
6
  _export_star(require("./cookieParseMiddleware/cookieParseMiddleware"), exports);
6
7
  _export_star(require("./corsMiddleware/corsMiddleware"), exports);
7
8
  _export_star(require("./destroyerMiddleware/destroyerMiddleware"), exports);
@@ -39,21 +39,22 @@ const notFoundMiddleware = (server, mockServerConfig)=>{
39
39
  });
40
40
  }
41
41
  let graphqlRequestSuggestions = [];
42
- if (graphql && (0, _helpers.parseGraphQLRequest)(request)) {
42
+ if ((request.method === 'GET' || request.method === 'POST') && graphql && (0, _helpers.parseGraphQLRequest)(request)) {
43
43
  graphqlRequestSuggestions = (0, _helpers1.getGraphqlUrlSuggestions)({
44
44
  url,
45
45
  requestConfigs: graphqlRequestConfigs
46
46
  });
47
47
  }
48
+ response.status(404);
48
49
  const isRequestSupportHtml = ((_request_headers_accept = request.headers.accept) === null || _request_headers_accept === void 0 ? void 0 : _request_headers_accept.includes('text/html')) || ((_request_headers_accept1 = request.headers.accept) === null || _request_headers_accept1 === void 0 ? void 0 : _request_headers_accept1.includes('*/*'));
49
50
  if (isRequestSupportHtml) {
50
- response.status(404).render('pages/404', {
51
+ response.render('pages/404', {
51
52
  restRequestSuggestions,
52
53
  graphqlRequestSuggestions
53
54
  });
54
55
  return;
55
56
  }
56
- response.status(404).json({
57
+ response.json({
57
58
  message: 'Request or page not found. Similar requests in data',
58
59
  data: {
59
60
  restRequestSuggestions,
@@ -3,7 +3,7 @@ import type { Interceptors, RestConfig } from '../../../utils/types';
3
3
  interface CreateRestRoutesParams {
4
4
  router: IRouter;
5
5
  restConfig: RestConfig;
6
- serverResponseInterceptor?: Interceptors['response'];
6
+ serverResponseInterceptor?: Interceptors<'rest'>['response'];
7
7
  }
8
8
  export declare const createRestRoutes: ({ router, restConfig, serverResponseInterceptor }: CreateRestRoutesParams) => IRouter;
9
9
  export {};
@@ -55,9 +55,7 @@ const createRestRoutes = ({ router, restConfig, serverResponseInterceptor })=>{
55
55
  });
56
56
  });
57
57
  });
58
- if (!matchedRouteConfig) {
59
- return next();
60
- }
58
+ if (!matchedRouteConfig) return next();
61
59
  if ((_matchedRouteConfig_interceptors = matchedRouteConfig.interceptors) === null || _matchedRouteConfig_interceptors === void 0 ? void 0 : _matchedRouteConfig_interceptors.request) {
62
60
  await (0, _helpers.callRequestInterceptor)({
63
61
  request,
@@ -32,6 +32,7 @@ const createDatabaseMockServer = (databaseMockServerConfig, server = (0, _expres
32
32
  }));
33
33
  server.set('json spaces', 2);
34
34
  server.use(_bodyparser.default.text());
35
+ (0, _middlewares.contextMiddleware)(server);
35
36
  (0, _middlewares.cookieParseMiddleware)(server);
36
37
  const serverRequestInterceptor = (_databaseMockServerConfig_interceptors = databaseMockServerConfig.interceptors) === null || _databaseMockServerConfig_interceptors === void 0 ? void 0 : _databaseMockServerConfig_interceptors.request;
37
38
  if (serverRequestInterceptor) {
@@ -33,6 +33,7 @@ const createGraphQLMockServer = (graphqlMockServerConfig, server = (0, _express.
33
33
  }));
34
34
  server.set('json spaces', 2);
35
35
  server.use(_bodyparser.default.text());
36
+ (0, _middlewares.contextMiddleware)(server);
36
37
  (0, _middlewares.cookieParseMiddleware)(server);
37
38
  const serverRequestInterceptor = (_graphqlMockServerConfig_interceptors = graphqlMockServerConfig.interceptors) === null || _graphqlMockServerConfig_interceptors === void 0 ? void 0 : _graphqlMockServerConfig_interceptors.request;
38
39
  if (serverRequestInterceptor) {
@@ -34,6 +34,7 @@ const createMockServer = (mockServerConfig, server = (0, _express.default)())=>{
34
34
  }));
35
35
  server.set('json spaces', 2);
36
36
  server.use(_bodyparser.default.text());
37
+ (0, _middlewares.contextMiddleware)(server);
37
38
  (0, _middlewares.cookieParseMiddleware)(server);
38
39
  const serverRequestInterceptor = (_mockServerConfig_interceptors = mockServerConfig.interceptors) === null || _mockServerConfig_interceptors === void 0 ? void 0 : _mockServerConfig_interceptors.request;
39
40
  if (serverRequestInterceptor) {
@@ -33,6 +33,7 @@ const createRestMockServer = (restMockServerConfig, server = (0, _express.defaul
33
33
  }));
34
34
  server.set('json spaces', 2);
35
35
  server.use(_bodyparser.default.text());
36
+ (0, _middlewares.contextMiddleware)(server);
36
37
  (0, _middlewares.cookieParseMiddleware)(server);
37
38
  const serverRequestInterceptor = (_restMockServerConfig_interceptors = restMockServerConfig.interceptors) === null || _restMockServerConfig_interceptors === void 0 ? void 0 : _restMockServerConfig_interceptors.request;
38
39
  if (serverRequestInterceptor) {
@@ -22,7 +22,7 @@ const startDatabaseMockServer = (databaseMockServerConfig)=>{
22
22
  var _databaseMockServerConfig_port;
23
23
  const port = (_databaseMockServerConfig_port = databaseMockServerConfig.port) !== null && _databaseMockServerConfig_port !== void 0 ? _databaseMockServerConfig_port : _constants.DEFAULT.PORT;
24
24
  const server = mockServer.listen(port, ()=>{
25
- console.log(_ansicolors.default.green(`🎉 Database Mock Server is running at http://localhost:${port}`));
25
+ console.info(_ansicolors.default.green(`🎉 Database 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);
@@ -22,7 +22,7 @@ const startGraphQLMockServer = (graphQLMockServerConfig)=>{
22
22
  var _graphQLMockServerConfig_port;
23
23
  const port = (_graphQLMockServerConfig_port = graphQLMockServerConfig.port) !== null && _graphQLMockServerConfig_port !== void 0 ? _graphQLMockServerConfig_port : _constants.DEFAULT.PORT;
24
24
  const server = mockServer.listen(port, ()=>{
25
- console.log(_ansicolors.default.green(`🎉 GraphQL Mock Server is running at http://localhost:${port}`));
25
+ console.info(_ansicolors.default.green(`🎉 GraphQL 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);
@@ -22,7 +22,7 @@ const startMockServer = (mockServerConfig)=>{
22
22
  var _mockServerConfig_port;
23
23
  const port = (_mockServerConfig_port = mockServerConfig.port) !== null && _mockServerConfig_port !== void 0 ? _mockServerConfig_port : _constants.DEFAULT.PORT;
24
24
  const server = mockServer.listen(port, ()=>{
25
- console.log(_ansicolors.default.green(`🎉 Mock Server is running at http://localhost:${port}`));
25
+ console.info(_ansicolors.default.green(`🎉 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);
@@ -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 {};