mock-config-server 3.5.0 → 3.6.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 (75) hide show
  1. package/README.md +2 -0
  2. package/dist/bin/bin.js +3 -3
  3. package/dist/bin/build.js +5 -5
  4. package/dist/bin/cli.js +18 -18
  5. package/dist/bin/helpers/createTemplate.js +4 -4
  6. package/dist/bin/helpers/getValidationMessageFromPath.js +2 -2
  7. package/dist/bin/helpers/isOnlyRequestedDataResolvingPropertyExists.js +3 -3
  8. package/dist/bin/helpers/resolveConfigFile.js +3 -3
  9. package/dist/bin/helpers/resolveExportsFromSourceCode.js +1 -1
  10. package/dist/bin/init.js +36 -36
  11. package/dist/bin/run.js +6 -6
  12. package/dist/bin/validateMockServerConfig/corsSchema/corsSchema.d.ts +2 -2
  13. package/dist/bin/validateMockServerConfig/corsSchema/corsSchema.js +6 -6
  14. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.d.ts +82 -72
  15. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.js +4 -4
  16. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.d.ts +25 -21
  17. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.js +3 -5
  18. package/dist/bin/validateMockServerConfig/queueSchema/queueSchema.d.ts +2 -2
  19. package/dist/bin/validateMockServerConfig/queueSchema/queueSchema.js +1 -1
  20. package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.d.ts +270 -240
  21. package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.js +6 -6
  22. package/dist/bin/validateMockServerConfig/restConfigSchema/routeConfigSchema/routeConfigSchema.d.ts +33 -28
  23. package/dist/bin/validateMockServerConfig/restConfigSchema/routeConfigSchema/routeConfigSchema.js +7 -9
  24. package/dist/bin/validateMockServerConfig/utils/entitiesSchema/entitiesSchema.d.ts +4 -8
  25. package/dist/bin/validateMockServerConfig/utils/entitiesSchema/entitiesSchema.js +11 -11
  26. package/dist/bin/validateMockServerConfig/utils/requiredPropertiesSchema/requiredPropertiesSchema.d.ts +1 -1
  27. package/dist/bin/validateMockServerConfig/utils/sharedSchema/sharedSchema.js +2 -2
  28. package/dist/bin/validateMockServerConfig/validateApiMockServerConfig.js +3 -3
  29. package/dist/bin/validateMockServerConfig/validateMockServerConfig.js +1 -1
  30. package/dist/src/core/database/createDatabaseRoutes/createDatabaseRoutes.js +3 -3
  31. package/dist/src/core/database/createDatabaseRoutes/helpers/array/createNewId/createNewId.js +1 -1
  32. package/dist/src/core/database/createDatabaseRoutes/helpers/createNestedDatabaseRoutes/createNestedDatabaseRoutes.js +15 -13
  33. package/dist/src/core/database/createDatabaseRoutes/helpers/createShallowDatabaseRoutes/createShallowDatabaseRoutes.js +15 -13
  34. package/dist/src/core/database/createDatabaseRoutes/helpers/filter/filter.js +19 -13
  35. package/dist/src/core/database/createDatabaseRoutes/helpers/search/search.js +3 -3
  36. package/dist/src/core/database/createDatabaseRoutes/helpers/sort/sort.js +5 -5
  37. package/dist/src/core/database/createDatabaseRoutes/helpers/splitDatabaseByNesting/splitDatabaseByNesting.js +1 -1
  38. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.js +1 -1
  39. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.js +1 -1
  40. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +24 -19
  41. package/dist/src/core/graphql/createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js +1 -1
  42. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.js +3 -3
  43. package/dist/src/core/middlewares/corsMiddleware/corsMiddleware.js +8 -8
  44. package/dist/src/core/middlewares/corsMiddleware/helpers/getAllowedOrigins/getAllowedOrigins.js +2 -2
  45. package/dist/src/core/middlewares/destroyerMiddleware/destroyerMiddleware.js +2 -2
  46. package/dist/src/core/middlewares/errorMiddleware/errorMiddleware.js +1 -1
  47. package/dist/src/core/middlewares/noCorsMiddleware/noCorsMiddleware.js +7 -7
  48. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.js +1 -1
  49. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.js +2 -2
  50. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.js +1 -1
  51. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.js +1 -1
  52. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +7 -7
  53. package/dist/src/core/middlewares/requestInterceptorMiddleware/requestInterceptorMiddleware.js +1 -1
  54. package/dist/src/core/middlewares/staticMiddleware/staticMiddleware.js +2 -2
  55. package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +19 -14
  56. package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.js +26 -2
  57. package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +6 -6
  58. package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +6 -6
  59. package/dist/src/server/createMockServer/createMockServer.js +8 -8
  60. package/dist/src/server/createRestMockServer/createRestMockServer.js +6 -6
  61. package/dist/src/utils/constants/checkModes.js +18 -18
  62. package/dist/src/utils/constants/default.js +4 -4
  63. package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.js +20 -20
  64. package/dist/src/utils/helpers/entities/convertToEntityDescriptor/convertToEntityDescriptor.js +1 -1
  65. package/dist/src/utils/helpers/entities/isEntityDescriptor/isEntityDescriptor.js +1 -1
  66. package/dist/src/utils/helpers/graphql/getGraphQLInput/getGraphQLInput.js +3 -3
  67. package/dist/src/utils/helpers/graphql/parseQuery/parseQuery.js +1 -1
  68. package/dist/src/utils/helpers/isPlainObject/isPlainObject.js +1 -1
  69. package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.js +1 -1
  70. package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.js +1 -1
  71. package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.js +1 -1
  72. package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +1 -1
  73. package/dist/src/utils/types/graphql.d.ts +1 -1
  74. package/dist/src/utils/types/rest.d.ts +1 -1
  75. package/package.json +21 -23
@@ -14,24 +14,24 @@ const _helpers1 = require("./helpers");
14
14
  const createGraphQLRoutes = ({ router, graphqlConfig, serverResponseInterceptor })=>{
15
15
  const preparedGraphQLRequestConfig = (0, _helpers1.prepareGraphQLRequestConfigs)(graphqlConfig.configs);
16
16
  const graphqlMiddleware = async (request, response, next)=>{
17
- var _matchedRequestConfig_interceptors, _matchedRouteConfig_settings, _matchedRouteConfig_settings1, _matchedRouteConfig_interceptors, _matchedRequestConfig_interceptors1, _graphqlConfig_interceptors, _matchedRouteConfig_settings2;
17
+ var _matchedRequestConfig_interceptors, _matchedRouteConfig_interceptors, _matchedRouteConfig_settings, _matchedRouteConfig_settings1, _matchedRouteConfig_interceptors1, _matchedRequestConfig_interceptors1, _graphqlConfig_interceptors, _matchedRouteConfig_settings2;
18
18
  const graphQLInput = (0, _helpers.getGraphQLInput)(request);
19
19
  if (!graphQLInput.query) {
20
20
  return response.status(400).json({
21
- message: "Query is missing, you must pass a valid GraphQL query"
21
+ message: 'Query is missing, you must pass a valid GraphQL query'
22
22
  });
23
23
  }
24
24
  const query = (0, _helpers.parseQuery)(graphQLInput.query);
25
25
  if (!query) {
26
26
  return response.status(400).json({
27
- message: "Query is invalid, you must use a valid GraphQL query"
27
+ message: 'Query is invalid, you must use a valid GraphQL query'
28
28
  });
29
29
  }
30
30
  const matchedRequestConfig = preparedGraphQLRequestConfig.find((requestConfig)=>{
31
31
  var _graphQLInput_query;
32
32
  if (requestConfig.operationType !== query.operationType) return false;
33
- if ("query" in requestConfig && requestConfig.query.replace(/\s+/gi, " ") !== ((_graphQLInput_query = graphQLInput.query) === null || _graphQLInput_query === void 0 ? void 0 : _graphQLInput_query.replace(/\s+/gi, " "))) return false;
34
- if ("operationName" in requestConfig) {
33
+ if ('query' in requestConfig && requestConfig.query.replace(/\s+/gi, ' ') !== ((_graphQLInput_query = graphQLInput.query) === null || _graphQLInput_query === void 0 ? void 0 : _graphQLInput_query.replace(/\s+/gi, ' '))) return false;
34
+ if ('operationName' in requestConfig) {
35
35
  if (!query.operationName) return false;
36
36
  if (requestConfig.operationName instanceof RegExp) return new RegExp(requestConfig.operationName).test(query.operationName);
37
37
  return requestConfig.operationName === query.operationName;
@@ -41,11 +41,10 @@ const createGraphQLRoutes = ({ router, graphqlConfig, serverResponseInterceptor
41
41
  if (!matchedRequestConfig) {
42
42
  return next();
43
43
  }
44
- const requestInterceptor = (_matchedRequestConfig_interceptors = matchedRequestConfig.interceptors) === null || _matchedRequestConfig_interceptors === void 0 ? void 0 : _matchedRequestConfig_interceptors.request;
45
- if (requestInterceptor) {
44
+ if ((_matchedRequestConfig_interceptors = matchedRequestConfig.interceptors) === null || _matchedRequestConfig_interceptors === void 0 ? void 0 : _matchedRequestConfig_interceptors.request) {
46
45
  await (0, _helpers.callRequestInterceptor)({
47
46
  request,
48
- interceptor: requestInterceptor
47
+ interceptor: matchedRequestConfig.interceptors.request
49
48
  });
50
49
  }
51
50
  const matchedRouteConfig = matchedRequestConfig.routes.find(({ entities })=>{
@@ -54,28 +53,34 @@ const createGraphQLRoutes = ({ router, graphqlConfig, serverResponseInterceptor
54
53
  return entries.every(([entityName, entityDescriptorOrValue])=>{
55
54
  const { checkMode, value: entityDescriptorValue } = (0, _helpers.convertToEntityDescriptor)(entityDescriptorOrValue);
56
55
  // ✅ important: check whole variables as plain value strictly if descriptor used for variables
57
- const isEntityVariablesByTopLevelDescriptor = entityName === "variables" && (0, _helpers.isEntityDescriptor)(entityDescriptorOrValue);
56
+ const isEntityVariablesByTopLevelDescriptor = entityName === 'variables' && (0, _helpers.isEntityDescriptor)(entityDescriptorOrValue);
58
57
  if (isEntityVariablesByTopLevelDescriptor) {
59
58
  return (0, _helpers.resolveEntityValues)(checkMode, graphQLInput.variables, entityDescriptorValue);
60
59
  }
61
- const isEntityVariablesByTopLevelArray = entityName === "variables" && Array.isArray(entityDescriptorOrValue);
60
+ const isEntityVariablesByTopLevelArray = entityName === 'variables' && Array.isArray(entityDescriptorOrValue);
62
61
  if (isEntityVariablesByTopLevelArray) {
63
62
  return entityDescriptorOrValue.some((entityDescriptorOrValueElement)=>(0, _helpers.resolveEntityValues)(checkMode, graphQLInput.variables, entityDescriptorOrValueElement));
64
63
  }
65
64
  const recordOrArrayEntries = Object.entries(entityDescriptorOrValue);
66
65
  return recordOrArrayEntries.every(([entityKey, entityValue])=>{
67
66
  const { checkMode, value: descriptorValue } = (0, _helpers.convertToEntityDescriptor)(entityValue);
68
- const flattenEntity = (0, _flat.flatten)(entityName === "variables" ? graphQLInput.variables : request[entityName]);
67
+ const flattenEntity = (0, _flat.flatten)(entityName === 'variables' ? graphQLInput.variables : request[entityName]);
69
68
  // ✅ important: transform header keys to lower case because browsers send headers in lowercase
70
- return (0, _helpers.resolveEntityValues)(checkMode, flattenEntity[entityName === "headers" ? entityKey.toLowerCase() : entityKey], descriptorValue);
69
+ return (0, _helpers.resolveEntityValues)(checkMode, flattenEntity[entityName === 'headers' ? entityKey.toLowerCase() : entityKey], descriptorValue);
71
70
  });
72
71
  });
73
72
  });
74
73
  if (!matchedRouteConfig) {
75
74
  return next();
76
75
  }
76
+ if ((_matchedRouteConfig_interceptors = matchedRouteConfig.interceptors) === null || _matchedRouteConfig_interceptors === void 0 ? void 0 : _matchedRouteConfig_interceptors.request) {
77
+ await (0, _helpers.callRequestInterceptor)({
78
+ request,
79
+ interceptor: matchedRouteConfig.interceptors.request
80
+ });
81
+ }
77
82
  let matchedRouteConfigData = null;
78
- if (((_matchedRouteConfig_settings = matchedRouteConfig.settings) === null || _matchedRouteConfig_settings === void 0 ? void 0 : _matchedRouteConfig_settings.polling) && "queue" in matchedRouteConfig) {
83
+ if (((_matchedRouteConfig_settings = matchedRouteConfig.settings) === null || _matchedRouteConfig_settings === void 0 ? void 0 : _matchedRouteConfig_settings.polling) && 'queue' in matchedRouteConfig) {
79
84
  if (!matchedRouteConfig.queue.length) return next();
80
85
  const shallowMatchedRouteConfig = matchedRouteConfig;
81
86
  var _shallowMatchedRouteConfig___pollingIndex;
@@ -101,24 +106,24 @@ const createGraphQLRoutes = ({ router, graphqlConfig, serverResponseInterceptor
101
106
  }
102
107
  matchedRouteConfigData = data;
103
108
  }
104
- if ("data" in matchedRouteConfig) {
109
+ if ('data' in matchedRouteConfig) {
105
110
  matchedRouteConfigData = matchedRouteConfig.data;
106
111
  }
107
112
  var _matchedRouteConfig_entities;
108
- const resolvedData = typeof matchedRouteConfigData === "function" ? await matchedRouteConfigData(request, (_matchedRouteConfig_entities = matchedRouteConfig.entities) !== null && _matchedRouteConfig_entities !== void 0 ? _matchedRouteConfig_entities : {}) : matchedRouteConfigData;
113
+ const resolvedData = typeof matchedRouteConfigData === 'function' ? await matchedRouteConfigData(request, (_matchedRouteConfig_entities = matchedRouteConfig.entities) !== null && _matchedRouteConfig_entities !== void 0 ? _matchedRouteConfig_entities : {}) : matchedRouteConfigData;
109
114
  if ((_matchedRouteConfig_settings1 = matchedRouteConfig.settings) === null || _matchedRouteConfig_settings1 === void 0 ? void 0 : _matchedRouteConfig_settings1.status) {
110
115
  response.statusCode = matchedRouteConfig.settings.status;
111
116
  }
112
117
  // ✅ important:
113
118
  // set 'Cache-Control' header for explicit browsers response revalidate: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
114
119
  // this code should place before response interceptors for giving opportunity to rewrite 'Cache-Control' header
115
- if (matchedRequestConfig.operationType === "query") response.set("Cache-control", "no-cache");
120
+ if (matchedRequestConfig.operationType === 'query') response.set('Cache-control', 'no-cache');
116
121
  const data = await (0, _helpers.callResponseInterceptors)({
117
122
  data: resolvedData,
118
123
  request,
119
124
  response,
120
125
  interceptors: {
121
- routeInterceptor: (_matchedRouteConfig_interceptors = matchedRouteConfig.interceptors) === null || _matchedRouteConfig_interceptors === void 0 ? void 0 : _matchedRouteConfig_interceptors.response,
126
+ routeInterceptor: (_matchedRouteConfig_interceptors1 = matchedRouteConfig.interceptors) === null || _matchedRouteConfig_interceptors1 === void 0 ? void 0 : _matchedRouteConfig_interceptors1.response,
122
127
  requestInterceptor: (_matchedRequestConfig_interceptors1 = matchedRequestConfig.interceptors) === null || _matchedRequestConfig_interceptors1 === void 0 ? void 0 : _matchedRequestConfig_interceptors1.response,
123
128
  apiInterceptor: (_graphqlConfig_interceptors = graphqlConfig.interceptors) === null || _graphqlConfig_interceptors === void 0 ? void 0 : _graphqlConfig_interceptors.response,
124
129
  serverInterceptor: serverResponseInterceptor
@@ -129,7 +134,7 @@ const createGraphQLRoutes = ({ router, graphqlConfig, serverResponseInterceptor
129
134
  }
130
135
  return response.json(data);
131
136
  };
132
- router.route("/").get((0, _helpers.asyncHandler)(graphqlMiddleware));
133
- router.route("/").post((0, _helpers.asyncHandler)(graphqlMiddleware));
137
+ router.route('/').get((0, _helpers.asyncHandler)(graphqlMiddleware));
138
+ router.route('/').post((0, _helpers.asyncHandler)(graphqlMiddleware));
134
139
  return router;
135
140
  };
@@ -21,7 +21,7 @@ const calculateRouteConfigWeight = (graphQLRouteConfig)=>{
21
21
  if ((0, _helpers.isPlainObject)(variables) && variables.checkMode) {
22
22
  // ✅ important:
23
23
  // check that actual value check modes does not have `value` for compare
24
- if (variables.checkMode === "exists" || variables.checkMode === "notExists") {
24
+ if (variables.checkMode === 'exists' || variables.checkMode === 'notExists') {
25
25
  routeConfigWeight += 1;
26
26
  return routeConfigWeight;
27
27
  }
@@ -11,12 +11,12 @@ Object.defineProperty(exports, "parseCookie", {
11
11
  const parseCookie = (cookieHeader)=>{
12
12
  if (!cookieHeader) return {};
13
13
  const cookies = {};
14
- const cookiePairs = cookieHeader.split(";");
14
+ const cookiePairs = cookieHeader.split(';');
15
15
  cookiePairs.forEach((cookie)=>{
16
- const [name, value] = cookie.trim().split("=");
16
+ const [name, value] = cookie.trim().split('=');
17
17
  if (!name) return;
18
18
  var _value_trim;
19
- cookies[name.trim()] = (_value_trim = value === null || value === void 0 ? void 0 : value.trim()) !== null && _value_trim !== void 0 ? _value_trim : "";
19
+ cookies[name.trim()] = (_value_trim = value === null || value === void 0 ? void 0 : value.trim()) !== null && _value_trim !== void 0 ? _value_trim : '';
20
20
  });
21
21
  return cookies;
22
22
  };
@@ -17,7 +17,7 @@ const corsMiddleware = (server, cors)=>{
17
17
  return next();
18
18
  }
19
19
  let allowedOrigins = [];
20
- if (typeof cors.origin === "function") {
20
+ if (typeof cors.origin === 'function') {
21
21
  const origins = await cors.origin(request);
22
22
  allowedOrigins = (0, _helpers1.getAllowedOrigins)(origins);
23
23
  } else {
@@ -34,18 +34,18 @@ const corsMiddleware = (server, cors)=>{
34
34
  return allowedOrigin === origin;
35
35
  });
36
36
  if (isRequestOriginAllowed) {
37
- response.setHeader("Access-Control-Allow-Origin", origin);
37
+ response.setHeader('Access-Control-Allow-Origin', origin);
38
38
  var _cors_credentials;
39
- response.setHeader("Access-Control-Allow-Credentials", `${(_cors_credentials = cors.credentials) !== null && _cors_credentials !== void 0 ? _cors_credentials : _constants.DEFAULT.CORS.CREDENTIALS}`);
39
+ response.setHeader('Access-Control-Allow-Credentials', `${(_cors_credentials = cors.credentials) !== null && _cors_credentials !== void 0 ? _cors_credentials : _constants.DEFAULT.CORS.CREDENTIALS}`);
40
40
  var _cors_exposedHeaders;
41
- response.setHeader("Access-Control-Expose-Headers", (_cors_exposedHeaders = cors.exposedHeaders) !== null && _cors_exposedHeaders !== void 0 ? _cors_exposedHeaders : _constants.DEFAULT.CORS.EXPOSED_HEADERS);
42
- if (request.method === "OPTIONS") {
41
+ response.setHeader('Access-Control-Expose-Headers', (_cors_exposedHeaders = cors.exposedHeaders) !== null && _cors_exposedHeaders !== void 0 ? _cors_exposedHeaders : _constants.DEFAULT.CORS.EXPOSED_HEADERS);
42
+ if (request.method === 'OPTIONS') {
43
43
  var _cors_methods;
44
- response.setHeader("Access-Control-Allow-Methods", (_cors_methods = cors.methods) !== null && _cors_methods !== void 0 ? _cors_methods : _constants.DEFAULT.CORS.METHODS);
44
+ response.setHeader('Access-Control-Allow-Methods', (_cors_methods = cors.methods) !== null && _cors_methods !== void 0 ? _cors_methods : _constants.DEFAULT.CORS.METHODS);
45
45
  var _cors_allowedHeaders;
46
- response.setHeader("Access-Control-Allow-Headers", (_cors_allowedHeaders = cors.allowedHeaders) !== null && _cors_allowedHeaders !== void 0 ? _cors_allowedHeaders : _constants.DEFAULT.CORS.ALLOWED_HEADERS);
46
+ response.setHeader('Access-Control-Allow-Headers', (_cors_allowedHeaders = cors.allowedHeaders) !== null && _cors_allowedHeaders !== void 0 ? _cors_allowedHeaders : _constants.DEFAULT.CORS.ALLOWED_HEADERS);
47
47
  var _cors_maxAge;
48
- response.setHeader("Access-Control-Max-Age", (_cors_maxAge = cors.maxAge) !== null && _cors_maxAge !== void 0 ? _cors_maxAge : _constants.DEFAULT.CORS.MAX_AGE);
48
+ response.setHeader('Access-Control-Max-Age', (_cors_maxAge = cors.maxAge) !== null && _cors_maxAge !== void 0 ? _cors_maxAge : _constants.DEFAULT.CORS.MAX_AGE);
49
49
  response.sendStatus(204);
50
50
  return response.end();
51
51
  }
@@ -12,10 +12,10 @@ const getAllowedOrigins = (origin)=>{
12
12
  if (Array.isArray(origin)) {
13
13
  return origin;
14
14
  }
15
- if (typeof origin === "string" || origin instanceof RegExp) {
15
+ if (typeof origin === 'string' || origin instanceof RegExp) {
16
16
  return [
17
17
  origin
18
18
  ];
19
19
  }
20
- throw new Error("Invalid cors origin format");
20
+ throw new Error('Invalid cors origin format');
21
21
  };
@@ -11,10 +11,10 @@ Object.defineProperty(exports, "destroyerMiddleware", {
11
11
  const destroyerMiddleware = (server)=>{
12
12
  const serverWithDestroyer = server;
13
13
  const connections = {};
14
- serverWithDestroyer.on("connection", (connection)=>{
14
+ serverWithDestroyer.on('connection', (connection)=>{
15
15
  const key = `${connection.remoteAddress}:${connection.remotePort}`;
16
16
  connections[key] = connection;
17
- connection.on("close", ()=>{
17
+ connection.on('close', ()=>{
18
18
  delete connections[key];
19
19
  });
20
20
  });
@@ -18,7 +18,7 @@ const errorMiddleware = (server)=>{
18
18
  server.use((error, request, response, next)=>{
19
19
  console.error(_ansicolors.default.bgRed(`\nError on ${request.method} ${request.url} request\n`));
20
20
  var _error_message;
21
- const message = `Message: ${(_error_message = error.message) !== null && _error_message !== void 0 ? _error_message : "Internal server error"}\n\n${error.stack}`;
21
+ const message = `Message: ${(_error_message = error.message) !== null && _error_message !== void 0 ? _error_message : 'Internal server error'}\n\n${error.stack}`;
22
22
  response.status(error.status || 500).send(message);
23
23
  // ✅ important:
24
24
  // call next function for trigger default express error handling behavior
@@ -11,14 +11,14 @@ Object.defineProperty(exports, "noCorsMiddleware", {
11
11
  const _constants = require("../../../utils/constants");
12
12
  const noCorsMiddleware = (server)=>{
13
13
  server.use((request, response, next)=>{
14
- response.setHeader("Access-Control-Allow-Origin", _constants.DEFAULT.CORS.ORIGIN);
15
- response.setHeader("Access-Control-Allow-Credentials", `${_constants.DEFAULT.CORS.CREDENTIALS}`);
16
- response.setHeader("Access-Control-Expose-Headers", _constants.DEFAULT.CORS.EXPOSED_HEADERS);
17
- const isPreflightRequest = request.method === "OPTIONS" && request.headers.origin && request.headers["access-control-request-method"] && request.headers["access-control-request-headers"];
14
+ response.setHeader('Access-Control-Allow-Origin', _constants.DEFAULT.CORS.ORIGIN);
15
+ response.setHeader('Access-Control-Allow-Credentials', `${_constants.DEFAULT.CORS.CREDENTIALS}`);
16
+ response.setHeader('Access-Control-Expose-Headers', _constants.DEFAULT.CORS.EXPOSED_HEADERS);
17
+ const isPreflightRequest = request.method === 'OPTIONS' && request.headers.origin && request.headers['access-control-request-method'] && request.headers['access-control-request-headers'];
18
18
  if (isPreflightRequest) {
19
- response.setHeader("Access-Control-Allow-Methods", _constants.DEFAULT.CORS.METHODS);
20
- response.setHeader("Access-Control-Allow-Headers", _constants.DEFAULT.CORS.ALLOWED_HEADERS);
21
- response.setHeader("Access-Control-Max-Age", _constants.DEFAULT.CORS.MAX_AGE);
19
+ response.setHeader('Access-Control-Allow-Methods', _constants.DEFAULT.CORS.METHODS);
20
+ response.setHeader('Access-Control-Allow-Headers', _constants.DEFAULT.CORS.ALLOWED_HEADERS);
21
+ response.setHeader('Access-Control-Max-Age', _constants.DEFAULT.CORS.MAX_AGE);
22
22
  response.sendStatus(204);
23
23
  return response.end();
24
24
  }
@@ -12,7 +12,7 @@ const _getLevenshteinDistance = require("../getLevenshteinDistance/getLevenshtei
12
12
  const getGraphqlUrlSuggestions = ({ url, requestConfigs })=>{
13
13
  var _url_searchParams_get;
14
14
  // ✅ important: operationName is always second word in 'query' query param
15
- const actualOperationName = (_url_searchParams_get = url.searchParams.get("query")) === null || _url_searchParams_get === void 0 ? void 0 : _url_searchParams_get.split(" ")[1];
15
+ const actualOperationName = (_url_searchParams_get = url.searchParams.get('query')) === null || _url_searchParams_get === void 0 ? void 0 : _url_searchParams_get.split(' ')[1];
16
16
  const actualUrlMeaningful = `${url.pathname}/${actualOperationName}`;
17
17
  const graphqlUrlSuggestions = requestConfigs.reduce((acc, requestConfig)=>{
18
18
  const { operationName } = requestConfig;
@@ -24,9 +24,9 @@ const getRestUrlSuggestions = ({ url, requestConfigs })=>{
24
24
  if (distance <= tolerance) {
25
25
  // replace param names in pattern with param values from actual url
26
26
  const urlSuggestion = patternUrlParts.map((_patternUrlPart, index)=>{
27
- if (patternUrlParts[index].startsWith(":")) return actualUrlParts[index];
27
+ if (patternUrlParts[index].startsWith(':')) return actualUrlParts[index];
28
28
  return patternUrlParts[index];
29
- }).join("/");
29
+ }).join('/');
30
30
  const suggestionWithQueryParams = `/${urlSuggestion}${url.search}`;
31
31
  acc.push({
32
32
  ...requestConfig,
@@ -8,4 +8,4 @@ Object.defineProperty(exports, "getActualRestUrlMeaningfulString", {
8
8
  return getActualRestUrlMeaningfulString;
9
9
  }
10
10
  });
11
- const getActualRestUrlMeaningfulString = (actualUrlParts, patternUrlParts)=>actualUrlParts.filter((_actualUrlPart, index)=>!patternUrlParts[index].startsWith(":")).join("");
11
+ const getActualRestUrlMeaningfulString = (actualUrlParts, patternUrlParts)=>actualUrlParts.filter((_actualUrlPart, index)=>!patternUrlParts[index].startsWith(':')).join('');
@@ -8,4 +8,4 @@ Object.defineProperty(exports, "getPatternRestUrlMeaningfulString", {
8
8
  return getPatternRestUrlMeaningfulString;
9
9
  }
10
10
  });
11
- const getPatternRestUrlMeaningfulString = (patternUrlParts)=>patternUrlParts.filter((urlPatternPart)=>!urlPatternPart.startsWith(":")).join("");
11
+ const getPatternRestUrlMeaningfulString = (patternUrlParts)=>patternUrlParts.filter((urlPatternPart)=>!urlPatternPart.startsWith(':')).join('');
@@ -17,20 +17,20 @@ const notFoundMiddleware = (server, mockServerConfig)=>{
17
17
  var _rest_baseUrl;
18
18
  return {
19
19
  method: request.method,
20
- path: `${serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : ""}${(_rest_baseUrl = rest === null || rest === void 0 ? void 0 : rest.baseUrl) !== null && _rest_baseUrl !== void 0 ? _rest_baseUrl : ""}${request.path}`
20
+ path: `${serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : ''}${(_rest_baseUrl = rest === null || rest === void 0 ? void 0 : rest.baseUrl) !== null && _rest_baseUrl !== void 0 ? _rest_baseUrl : ''}${request.path}`
21
21
  };
22
22
  })) !== null && _rest_configs_filter_map !== void 0 ? _rest_configs_filter_map : [];
23
23
  var _graphql_configs_filter_map;
24
- const graphqlRequestConfigs = (_graphql_configs_filter_map = graphql === null || graphql === void 0 ? void 0 : graphql.configs.filter((request)=>"operationName" in request && !(request.operationName instanceof RegExp)).map((request)=>{
24
+ const graphqlRequestConfigs = (_graphql_configs_filter_map = graphql === null || graphql === void 0 ? void 0 : graphql.configs.filter((request)=>'operationName' in request && !(request.operationName instanceof RegExp)).map((request)=>{
25
25
  var _graphql_baseUrl;
26
26
  return {
27
27
  operationType: request.operationType,
28
- operationName: `${serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : ""}${(_graphql_baseUrl = graphql === null || graphql === void 0 ? void 0 : graphql.baseUrl) !== null && _graphql_baseUrl !== void 0 ? _graphql_baseUrl : ""} ${request.operationName}`
28
+ operationName: `${serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : ''}${(_graphql_baseUrl = graphql === null || graphql === void 0 ? void 0 : graphql.baseUrl) !== null && _graphql_baseUrl !== void 0 ? _graphql_baseUrl : ''} ${request.operationName}`
29
29
  };
30
30
  })) !== null && _graphql_configs_filter_map !== void 0 ? _graphql_configs_filter_map : [];
31
31
  server.use((request, response)=>{
32
32
  var _request_headers_accept, _request_headers_accept1;
33
- const url = new URL(`${request.protocol}://${request.get("host")}${request.originalUrl}`);
33
+ const url = new URL(`${request.protocol}://${request.get('host')}${request.originalUrl}`);
34
34
  let restRequestSuggestions = [];
35
35
  if (rest) {
36
36
  restRequestSuggestions = (0, _helpers1.getRestUrlSuggestions)({
@@ -45,16 +45,16 @@ const notFoundMiddleware = (server, mockServerConfig)=>{
45
45
  requestConfigs: graphqlRequestConfigs
46
46
  });
47
47
  }
48
- 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("*/*"));
48
+ 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
49
  if (isRequestSupportHtml) {
50
- response.status(404).render("pages/404", {
50
+ response.status(404).render('pages/404', {
51
51
  restRequestSuggestions,
52
52
  graphqlRequestSuggestions
53
53
  });
54
54
  return;
55
55
  }
56
56
  response.status(404).json({
57
- message: "Request or page not found. Similar requests in data",
57
+ message: 'Request or page not found. Similar requests in data',
58
58
  data: {
59
59
  restRequestSuggestions,
60
60
  graphqlRequestSuggestions
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "requestInterceptorMiddleware", {
9
9
  }
10
10
  });
11
11
  const _helpers = require("../../../utils/helpers");
12
- const requestInterceptorMiddleware = ({ server, path = "*", interceptor })=>{
12
+ const requestInterceptorMiddleware = ({ server, path = '*', interceptor })=>{
13
13
  server.use(path, (0, _helpers.asyncHandler)(async (request, _response, next)=>{
14
14
  await (0, _helpers.callRequestInterceptor)({
15
15
  request,
@@ -20,7 +20,7 @@ const staticMiddleware = (server, baseUrl, staticPath)=>{
20
20
  const isStaticPathArray = Array.isArray(staticPath);
21
21
  if (isStaticPathArray) {
22
22
  staticPath.forEach((staticPath)=>{
23
- const isPathObject = typeof staticPath === "object";
23
+ const isPathObject = typeof staticPath === 'object';
24
24
  if (isPathObject) {
25
25
  server.use((0, _helpers.urlJoin)(baseUrl, staticPath.prefix), _express.default.static((0, _helpers.urlJoin)(_constants.APP_PATH, staticPath.path)));
26
26
  return;
@@ -29,7 +29,7 @@ const staticMiddleware = (server, baseUrl, staticPath)=>{
29
29
  });
30
30
  return;
31
31
  }
32
- const isStaticPathObject = typeof staticPath === "object";
32
+ const isStaticPathObject = typeof staticPath === 'object';
33
33
  if (isStaticPathObject) {
34
34
  server.use((0, _helpers.urlJoin)(baseUrl, staticPath.prefix), _express.default.static((0, _helpers.urlJoin)(_constants.APP_PATH, staticPath.path)));
35
35
  return;
@@ -20,12 +20,11 @@ function _interop_require_default(obj) {
20
20
  const createRestRoutes = ({ router, restConfig, serverResponseInterceptor })=>{
21
21
  (0, _helpers1.prepareRestRequestConfigs)(restConfig.configs).forEach((requestConfig)=>{
22
22
  router.route(requestConfig.path)[requestConfig.method]((0, _helpers.asyncHandler)(async (request, response, next)=>{
23
- var _requestConfig_interceptors, _matchedRouteConfig_settings, _matchedRouteConfig_settings1, _matchedRouteConfig_interceptors, _requestConfig_interceptors1, _restConfig_interceptors, _matchedRouteConfig_settings2;
24
- const requestInterceptor = (_requestConfig_interceptors = requestConfig.interceptors) === null || _requestConfig_interceptors === void 0 ? void 0 : _requestConfig_interceptors.request;
25
- if (requestInterceptor) {
23
+ var _requestConfig_interceptors, _matchedRouteConfig_interceptors, _matchedRouteConfig_settings, _matchedRouteConfig_settings1, _matchedRouteConfig_interceptors1, _requestConfig_interceptors1, _restConfig_interceptors, _matchedRouteConfig_settings2;
24
+ if ((_requestConfig_interceptors = requestConfig.interceptors) === null || _requestConfig_interceptors === void 0 ? void 0 : _requestConfig_interceptors.request) {
26
25
  await (0, _helpers.callRequestInterceptor)({
27
26
  request,
28
- interceptor: requestInterceptor
27
+ interceptor: requestConfig.interceptors.request
29
28
  });
30
29
  }
31
30
  const matchedRouteConfig = requestConfig.routes.find(({ entities })=>{
@@ -35,13 +34,13 @@ const createRestRoutes = ({ router, restConfig, serverResponseInterceptor })=>{
35
34
  const { checkMode, value: descriptorValue } = (0, _helpers.convertToEntityDescriptor)(entityDescriptorOrValue);
36
35
  // ✅ important:
37
36
  // check whole body as plain value strictly if descriptor used for body
38
- const isEntityBodyByTopLevelDescriptor = entityName === "body" && (0, _helpers.isEntityDescriptor)(entityDescriptorOrValue);
37
+ const isEntityBodyByTopLevelDescriptor = entityName === 'body' && (0, _helpers.isEntityDescriptor)(entityDescriptorOrValue);
39
38
  if (isEntityBodyByTopLevelDescriptor) {
40
39
  // ✅ important:
41
40
  // bodyParser sets body to empty object if body not sent or invalid, so assume {} as undefined
42
41
  return (0, _helpers.resolveEntityValues)(checkMode, Object.keys(request.body).length ? request.body : undefined, descriptorValue);
43
42
  }
44
- const isEntityBodyByTopLevelArray = entityName === "body" && Array.isArray(entityDescriptorOrValue);
43
+ const isEntityBodyByTopLevelArray = entityName === 'body' && Array.isArray(entityDescriptorOrValue);
45
44
  if (isEntityBodyByTopLevelArray) {
46
45
  return entityDescriptorOrValue.some((entityDescriptorOrValueElement)=>// ✅ important:
47
46
  // bodyParser sets body to empty object if body not sent or invalid, so assume {} as undefined
@@ -52,15 +51,21 @@ const createRestRoutes = ({ router, restConfig, serverResponseInterceptor })=>{
52
51
  const { checkMode, value: descriptorValue } = (0, _helpers.convertToEntityDescriptor)(mappedEntityDescriptor);
53
52
  const flattenEntity = (0, _flat.flatten)(request[entityName]);
54
53
  // ✅ important: transform header keys to lower case because browsers send headers in lowercase
55
- return (0, _helpers.resolveEntityValues)(checkMode, flattenEntity[entityName === "headers" ? entityKey.toLowerCase() : entityKey], descriptorValue);
54
+ return (0, _helpers.resolveEntityValues)(checkMode, flattenEntity[entityName === 'headers' ? entityKey.toLowerCase() : entityKey], descriptorValue);
56
55
  });
57
56
  });
58
57
  });
59
58
  if (!matchedRouteConfig) {
60
59
  return next();
61
60
  }
61
+ if ((_matchedRouteConfig_interceptors = matchedRouteConfig.interceptors) === null || _matchedRouteConfig_interceptors === void 0 ? void 0 : _matchedRouteConfig_interceptors.request) {
62
+ await (0, _helpers.callRequestInterceptor)({
63
+ request,
64
+ interceptor: matchedRouteConfig.interceptors.request
65
+ });
66
+ }
62
67
  let matchedRouteConfigData = null;
63
- if (((_matchedRouteConfig_settings = matchedRouteConfig.settings) === null || _matchedRouteConfig_settings === void 0 ? void 0 : _matchedRouteConfig_settings.polling) && "queue" in matchedRouteConfig) {
68
+ if (((_matchedRouteConfig_settings = matchedRouteConfig.settings) === null || _matchedRouteConfig_settings === void 0 ? void 0 : _matchedRouteConfig_settings.polling) && 'queue' in matchedRouteConfig) {
64
69
  if (!matchedRouteConfig.queue.length) return next();
65
70
  const shallowMatchedRouteConfig = matchedRouteConfig;
66
71
  var _shallowMatchedRouteConfig___pollingIndex;
@@ -86,27 +91,27 @@ const createRestRoutes = ({ router, restConfig, serverResponseInterceptor })=>{
86
91
  }
87
92
  matchedRouteConfigData = data;
88
93
  }
89
- if ("data" in matchedRouteConfig) {
94
+ if ('data' in matchedRouteConfig) {
90
95
  matchedRouteConfigData = matchedRouteConfig.data;
91
96
  }
92
- if ("file" in matchedRouteConfig) {
97
+ if ('file' in matchedRouteConfig) {
93
98
  if (!(0, _helpers.isFilePathValid)(matchedRouteConfig.file)) return next();
94
99
  }
95
100
  var _matchedRouteConfig_entities;
96
- const resolvedData = typeof matchedRouteConfigData === "function" ? await matchedRouteConfigData(request, (_matchedRouteConfig_entities = matchedRouteConfig.entities) !== null && _matchedRouteConfig_entities !== void 0 ? _matchedRouteConfig_entities : {}) : matchedRouteConfigData;
101
+ const resolvedData = typeof matchedRouteConfigData === 'function' ? await matchedRouteConfigData(request, (_matchedRouteConfig_entities = matchedRouteConfig.entities) !== null && _matchedRouteConfig_entities !== void 0 ? _matchedRouteConfig_entities : {}) : matchedRouteConfigData;
97
102
  if ((_matchedRouteConfig_settings1 = matchedRouteConfig.settings) === null || _matchedRouteConfig_settings1 === void 0 ? void 0 : _matchedRouteConfig_settings1.status) {
98
103
  response.statusCode = matchedRouteConfig.settings.status;
99
104
  }
100
105
  // ✅ important:
101
106
  // set 'Cache-Control' header for explicit browsers response revalidate: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
102
107
  // this code should place before response interceptors for giving opportunity to rewrite 'Cache-Control' header
103
- if (request.method === "GET") response.set("Cache-control", "no-cache");
108
+ if (request.method === 'GET') response.set('Cache-control', 'no-cache');
104
109
  const data = await (0, _helpers.callResponseInterceptors)({
105
110
  data: resolvedData,
106
111
  request,
107
112
  response,
108
113
  interceptors: {
109
- routeInterceptor: (_matchedRouteConfig_interceptors = matchedRouteConfig.interceptors) === null || _matchedRouteConfig_interceptors === void 0 ? void 0 : _matchedRouteConfig_interceptors.response,
114
+ routeInterceptor: (_matchedRouteConfig_interceptors1 = matchedRouteConfig.interceptors) === null || _matchedRouteConfig_interceptors1 === void 0 ? void 0 : _matchedRouteConfig_interceptors1.response,
110
115
  requestInterceptor: (_requestConfig_interceptors1 = requestConfig.interceptors) === null || _requestConfig_interceptors1 === void 0 ? void 0 : _requestConfig_interceptors1.response,
111
116
  apiInterceptor: (_restConfig_interceptors = restConfig.interceptors) === null || _restConfig_interceptors === void 0 ? void 0 : _restConfig_interceptors.response,
112
117
  serverInterceptor: serverResponseInterceptor
@@ -115,7 +120,7 @@ const createRestRoutes = ({ router, restConfig, serverResponseInterceptor })=>{
115
120
  if ((_matchedRouteConfig_settings2 = matchedRouteConfig.settings) === null || _matchedRouteConfig_settings2 === void 0 ? void 0 : _matchedRouteConfig_settings2.delay) {
116
121
  await (0, _helpers.sleep)(matchedRouteConfig.settings.delay);
117
122
  }
118
- if ("file" in matchedRouteConfig) {
123
+ if ('file' in matchedRouteConfig) {
119
124
  return response.sendFile(_path.default.resolve(matchedRouteConfig.file));
120
125
  }
121
126
  return response.json(data);
@@ -22,7 +22,7 @@ const calculateRouteConfigWeight = (restRouteConfig)=>{
22
22
  if ((0, _helpers.isPlainObject)(body) && body.checkMode) {
23
23
  // ✅ important:
24
24
  // check that actual value check modes does not have `value` for compare
25
- if (body.checkMode === "exists" || body.checkMode === "notExists") {
25
+ if (body.checkMode === 'exists' || body.checkMode === 'notExists') {
26
26
  routeConfigWeight += 1;
27
27
  return routeConfigWeight;
28
28
  }
@@ -34,7 +34,31 @@ const calculateRouteConfigWeight = (restRouteConfig)=>{
34
34
  return routeConfigWeight;
35
35
  };
36
36
  const prepareRestRequestConfigs = (requestConfigs)=>{
37
- requestConfigs.forEach((requestConfig)=>{
37
+ const sortedByPathRequestConfigs = requestConfigs.sort(({ path: firstPath }, { path: secondPath })=>{
38
+ // ✅ important:
39
+ // do not compare RegExp paths and non-parameterized paths
40
+ if (firstPath instanceof RegExp || secondPath instanceof RegExp) return 0;
41
+ if (!firstPath.includes('/:') && !secondPath.includes('/:')) return 0;
42
+ const firstPathParts = firstPath.split('/');
43
+ const secondPathParts = secondPath.split('/');
44
+ const minimalPathPartsLength = Math.min(firstPathParts.length, secondPathParts.length);
45
+ // ✅ important:
46
+ // need to find the leftmost parameter/non-parameter pair and give priority to non-parameter one
47
+ for(let i = 0; i < minimalPathPartsLength; i += 1){
48
+ const firstPathPart = firstPathParts[i];
49
+ const secondPathPart = secondPathParts[i];
50
+ const isFirstPathPartParameter = firstPathPart.startsWith(':');
51
+ const isSecondPathPartParameter = secondPathPart.startsWith(':');
52
+ if (!isFirstPathPartParameter && !isSecondPathPartParameter) {
53
+ if (firstPathPart === secondPathPart) continue;
54
+ return 0;
55
+ }
56
+ if (isFirstPathPartParameter && isSecondPathPartParameter) continue;
57
+ return +isFirstPathPartParameter - +isSecondPathPartParameter;
58
+ }
59
+ return 0;
60
+ });
61
+ sortedByPathRequestConfigs.forEach((requestConfig)=>{
38
62
  requestConfig.routes.sort((first, second)=>// ✅ important:
39
63
  // Lift more specific configs for correct working of routes
40
64
  calculateRouteConfigWeight(second) - calculateRouteConfigWeight(first));
@@ -21,16 +21,16 @@ function _interop_require_default(obj) {
21
21
  const createDatabaseMockServer = (databaseMockServerConfig, server = (0, _express.default)())=>{
22
22
  var _databaseMockServerConfig_interceptors;
23
23
  const { cors, staticPath, data, routes } = databaseMockServerConfig;
24
- server.set("view engine", "ejs");
25
- server.set("views", (0, _helpers.urlJoin)(__dirname, "../../static/views"));
26
- server.use(_express.default.static((0, _helpers.urlJoin)(__dirname, "../../static/views")));
24
+ server.set('view engine', 'ejs');
25
+ server.set('views', (0, _helpers.urlJoin)(__dirname, '../../static/views'));
26
+ server.use(_express.default.static((0, _helpers.urlJoin)(__dirname, '../../static/views')));
27
27
  server.use(_bodyparser.default.urlencoded({
28
28
  extended: false
29
29
  }));
30
30
  server.use(_bodyparser.default.json({
31
- limit: "10mb"
31
+ limit: '10mb'
32
32
  }));
33
- server.set("json spaces", 2);
33
+ server.set('json spaces', 2);
34
34
  server.use(_bodyparser.default.text());
35
35
  (0, _middlewares.cookieParseMiddleware)(server);
36
36
  const serverRequestInterceptor = (_databaseMockServerConfig_interceptors = databaseMockServerConfig.interceptors) === null || _databaseMockServerConfig_interceptors === void 0 ? void 0 : _databaseMockServerConfig_interceptors.request;
@@ -41,7 +41,7 @@ const createDatabaseMockServer = (databaseMockServerConfig, server = (0, _expres
41
41
  });
42
42
  }
43
43
  var _databaseMockServerConfig_baseUrl;
44
- const baseUrl = (_databaseMockServerConfig_baseUrl = databaseMockServerConfig.baseUrl) !== null && _databaseMockServerConfig_baseUrl !== void 0 ? _databaseMockServerConfig_baseUrl : "/";
44
+ const baseUrl = (_databaseMockServerConfig_baseUrl = databaseMockServerConfig.baseUrl) !== null && _databaseMockServerConfig_baseUrl !== void 0 ? _databaseMockServerConfig_baseUrl : '/';
45
45
  if (cors) {
46
46
  (0, _middlewares.corsMiddleware)(server, cors);
47
47
  } else {
@@ -22,16 +22,16 @@ function _interop_require_default(obj) {
22
22
  const createGraphQLMockServer = (graphqlMockServerConfig, server = (0, _express.default)())=>{
23
23
  var _graphqlMockServerConfig_interceptors;
24
24
  const { cors, staticPath, configs, database, interceptors } = graphqlMockServerConfig;
25
- server.set("view engine", "ejs");
26
- server.set("views", (0, _helpers.urlJoin)(__dirname, "../../static/views"));
27
- server.use(_express.default.static((0, _helpers.urlJoin)(__dirname, "../../static/views")));
25
+ server.set('view engine', 'ejs');
26
+ server.set('views', (0, _helpers.urlJoin)(__dirname, '../../static/views'));
27
+ server.use(_express.default.static((0, _helpers.urlJoin)(__dirname, '../../static/views')));
28
28
  server.use(_bodyparser.default.urlencoded({
29
29
  extended: false
30
30
  }));
31
31
  server.use(_bodyparser.default.json({
32
- limit: "10mb"
32
+ limit: '10mb'
33
33
  }));
34
- server.set("json spaces", 2);
34
+ server.set('json spaces', 2);
35
35
  server.use(_bodyparser.default.text());
36
36
  (0, _middlewares.cookieParseMiddleware)(server);
37
37
  const serverRequestInterceptor = (_graphqlMockServerConfig_interceptors = graphqlMockServerConfig.interceptors) === null || _graphqlMockServerConfig_interceptors === void 0 ? void 0 : _graphqlMockServerConfig_interceptors.request;
@@ -42,7 +42,7 @@ const createGraphQLMockServer = (graphqlMockServerConfig, server = (0, _express.
42
42
  });
43
43
  }
44
44
  var _graphqlMockServerConfig_baseUrl;
45
- const baseUrl = (_graphqlMockServerConfig_baseUrl = graphqlMockServerConfig.baseUrl) !== null && _graphqlMockServerConfig_baseUrl !== void 0 ? _graphqlMockServerConfig_baseUrl : "/";
45
+ const baseUrl = (_graphqlMockServerConfig_baseUrl = graphqlMockServerConfig.baseUrl) !== null && _graphqlMockServerConfig_baseUrl !== void 0 ? _graphqlMockServerConfig_baseUrl : '/';
46
46
  if (cors) {
47
47
  (0, _middlewares.corsMiddleware)(server, cors);
48
48
  } else {