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.
- package/README.md +291 -90
- package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.d.ts +6 -6
- package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.d.ts +14 -14
- package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.d.ts +1 -1
- package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +1 -3
- package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.d.ts +17 -0
- package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.js +35 -0
- package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.d.ts +1 -2
- package/dist/src/core/middlewares/index.d.ts +1 -0
- package/dist/src/core/middlewares/index.js +1 -0
- package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +4 -3
- package/dist/src/core/rest/createRestRoutes/createRestRoutes.d.ts +1 -1
- package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +1 -3
- package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +1 -0
- package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +1 -0
- package/dist/src/server/createMockServer/createMockServer.js +1 -0
- package/dist/src/server/createRestMockServer/createRestMockServer.js +1 -0
- package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.js +1 -1
- package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.js +1 -1
- package/dist/src/server/startMockServer/startMockServer.js +1 -1
- package/dist/src/server/startRestMockServer/startRestMockServer.js +1 -1
- package/dist/src/static/views/pages/404/index.ejs +66 -69
- package/dist/src/utils/helpers/date/formatTimestamp/formatTimestamp.d.ts +1 -0
- package/dist/src/utils/helpers/date/formatTimestamp/formatTimestamp.js +18 -0
- package/dist/src/utils/helpers/date/index.d.ts +1 -0
- package/dist/src/utils/helpers/date/index.js +18 -0
- package/dist/src/utils/helpers/index.d.ts +2 -0
- package/dist/src/utils/helpers/index.js +2 -0
- package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +7 -1
- package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +9 -1
- package/dist/src/utils/helpers/logger/callRequestLogger/callRequestLogger.d.ts +8 -0
- package/dist/src/utils/helpers/logger/callRequestLogger/callRequestLogger.js +50 -0
- package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.d.ts +10 -0
- package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.js +54 -0
- package/dist/src/utils/helpers/logger/helpers/filterTokens/filterTokens.d.ts +5 -0
- package/dist/src/utils/helpers/logger/helpers/filterTokens/filterTokens.js +44 -0
- package/dist/src/utils/helpers/logger/helpers/formatTokens/formatTokens.d.ts +2 -0
- package/dist/src/utils/helpers/logger/helpers/formatTokens/formatTokens.js +23 -0
- package/dist/src/utils/helpers/logger/helpers/index.d.ts +2 -0
- package/dist/src/utils/helpers/logger/helpers/index.js +19 -0
- package/dist/src/utils/helpers/logger/index.d.ts +2 -0
- package/dist/src/utils/helpers/logger/index.js +19 -0
- package/dist/src/utils/types/checkModes.d.ts +0 -1
- package/dist/src/utils/types/graphql.d.ts +2 -5
- package/dist/src/utils/types/index.d.ts +2 -0
- package/dist/src/utils/types/index.js +2 -0
- package/dist/src/utils/types/interceptors.d.ts +11 -7
- package/dist/src/utils/types/logger.d.ts +43 -0
- package/dist/src/utils/types/logger.js +4 -0
- package/dist/src/utils/types/rest.d.ts +2 -2
- package/dist/src/utils/types/server.d.ts +2 -2
- package/dist/src/utils/types/shared.d.ts +1 -0
- package/dist/src/utils/types/shared.js +4 -0
- package/dist/src/utils/types/values.d.ts +7 -0
- 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
|
+
};
|
|
@@ -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.
|
|
51
|
+
response.render('pages/404', {
|
|
51
52
|
restRequestSuggestions,
|
|
52
53
|
graphqlRequestSuggestions
|
|
53
54
|
});
|
|
54
55
|
return;
|
|
55
56
|
}
|
|
56
|
-
response.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
<
|
|
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
|
-
|
|
9
|
+
<link rel="stylesheet" href="/assets/styles/global.css" />
|
|
10
|
+
<link rel="stylesheet" href="/pages/404/index.css" />
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
<link rel="stylesheet" href="/pages/404/index.css" />
|
|
12
|
+
<% const api = { rest: "REST", graphql: "GraphQL" } %>
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
<% const rootPath = (path) => `../../${path}` %>
|
|
15
|
+
<%- include(rootPath('features/scheme/index')) -%>
|
|
16
|
+
<%- include(rootPath('features/tab/index')) -%>
|
|
17
|
+
</head>
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<
|
|
21
|
-
|
|
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
|
-
|
|
50
|
-
<
|
|
51
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
</
|
|
82
|
-
|
|
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) {
|
package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js
CHANGED
|
@@ -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
|
};
|
package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js
CHANGED
|
@@ -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 {};
|