mock-config-server 4.0.3 → 5.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +229 -237
- package/dist/bin/build.d.ts +3 -3
- package/dist/bin/build.js +1 -11
- package/dist/bin/helpers/createTemplate.js +6 -6
- package/dist/bin/helpers/resolveConfigFile.d.ts +2 -2
- package/dist/bin/helpers/resolveConfigFile.js +2 -3
- package/dist/bin/helpers/resolveConfigFilePath.js +4 -4
- package/dist/bin/init.d.ts +2 -2
- package/dist/bin/init.js +7 -7
- package/dist/bin/run.d.ts +3 -3
- package/dist/bin/run.js +17 -24
- package/dist/bin/templates/js/full/mock-requests/graphql/index.js +2 -2
- package/dist/bin/templates/js/full/mock-requests/graphql/user.js +35 -35
- package/dist/bin/templates/js/full/mock-requests/graphql/users.js +12 -12
- package/dist/bin/templates/js/full/mock-requests/rest/index.js +2 -2
- package/dist/bin/templates/js/full/mock-requests/rest/user.js +35 -35
- package/dist/bin/templates/js/full/mock-requests/rest/users.js +12 -12
- package/dist/bin/templates/js/full/mock-server.config.js +19 -19
- package/dist/bin/templates/js/graphql/mock-requests/index.js +2 -2
- package/dist/bin/templates/js/graphql/mock-requests/user.js +35 -35
- package/dist/bin/templates/js/graphql/mock-requests/users.js +12 -12
- package/dist/bin/templates/js/graphql/mock-server.config.js +14 -14
- package/dist/bin/templates/js/rest/mock-requests/index.js +2 -2
- package/dist/bin/templates/js/rest/mock-requests/user.js +35 -35
- package/dist/bin/templates/js/rest/mock-requests/users.js +12 -12
- package/dist/bin/templates/js/rest/mock-server.config.js +14 -14
- package/dist/bin/templates/ts/full/mock-requests/graphql/index.ts +2 -2
- package/dist/bin/templates/ts/full/mock-requests/graphql/user.ts +37 -37
- package/dist/bin/templates/ts/full/mock-requests/graphql/users.ts +14 -14
- package/dist/bin/templates/ts/full/mock-requests/rest/index.ts +2 -2
- package/dist/bin/templates/ts/full/mock-requests/rest/user.ts +37 -37
- package/dist/bin/templates/ts/full/mock-requests/rest/users.ts +14 -14
- package/dist/bin/templates/ts/full/mock-server.config.ts +21 -21
- package/dist/bin/templates/ts/graphql/mock-requests/index.ts +2 -2
- package/dist/bin/templates/ts/graphql/mock-requests/user.ts +37 -37
- package/dist/bin/templates/ts/graphql/mock-requests/users.ts +14 -14
- package/dist/bin/templates/ts/graphql/mock-server.config.ts +16 -16
- package/dist/bin/templates/ts/rest/mock-requests/index.ts +2 -2
- package/dist/bin/templates/ts/rest/mock-requests/user.ts +37 -37
- package/dist/bin/templates/ts/rest/mock-requests/users.ts +14 -14
- package/dist/bin/templates/ts/rest/mock-server.config.ts +16 -16
- package/dist/src/core/database/createDatabaseRoutes/helpers/search/search.js +3 -3
- package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.js +4 -4
- package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.js +2 -2
- package/dist/src/core/functions/graphql/graphql.d.ts +54 -0
- package/dist/src/core/functions/graphql/graphql.js +126 -0
- package/dist/src/core/functions/graphql/helpers/createQueueHandler/createQueueHandler.d.ts +5 -0
- package/dist/src/core/functions/graphql/helpers/createQueueHandler/createQueueHandler.js +35 -0
- package/dist/src/core/functions/graphql/helpers/index.d.ts +1 -0
- package/dist/src/core/{rest/createRestRoutes → functions/graphql}/helpers/index.js +1 -1
- package/dist/src/core/functions/index.d.ts +3 -0
- package/dist/src/core/functions/index.js +20 -0
- package/dist/src/core/functions/mock.d.ts +2 -0
- package/dist/src/core/functions/mock.js +11 -0
- package/dist/src/core/functions/rest/helpers/createFileHandler/createFileHandler.d.ts +2 -0
- package/dist/src/core/functions/rest/helpers/createFileHandler/createFileHandler.js +29 -0
- package/dist/src/core/functions/rest/helpers/createQueueHandler/createQueueHandler.d.ts +5 -0
- package/dist/src/core/functions/rest/helpers/createQueueHandler/createQueueHandler.js +35 -0
- package/dist/src/core/functions/rest/helpers/formatSsePayload/formatSsePayload.d.ts +5 -0
- package/dist/src/core/functions/rest/helpers/formatSsePayload/formatSsePayload.js +50 -0
- package/dist/src/core/functions/rest/helpers/index.d.ts +3 -0
- package/dist/src/core/functions/rest/helpers/index.js +20 -0
- package/dist/src/core/functions/rest/index.d.ts +1 -0
- package/dist/src/core/{graphql/createGraphQLRoutes/helpers → functions/rest}/index.js +1 -1
- package/dist/src/core/functions/rest/rest.d.ts +102 -0
- package/dist/src/core/functions/rest/rest.js +165 -0
- package/dist/src/core/graphql/createGraphQLRoute/createGraphQLRoute.d.ts +8 -0
- package/dist/src/core/graphql/createGraphQLRoute/createGraphQLRoute.js +158 -0
- package/dist/src/core/graphql/createGraphQLRoute/helpers/calculateGraphQLRouteConfigWeight/calculateGraphQLRouteConfigWeight.d.ts +2 -0
- package/dist/src/core/graphql/{createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js → createGraphQLRoute/helpers/calculateGraphQLRouteConfigWeight/calculateGraphQLRouteConfigWeight.js} +3 -11
- package/dist/src/core/graphql/createGraphQLRoute/helpers/index.d.ts +3 -0
- package/dist/src/core/graphql/createGraphQLRoute/helpers/index.js +20 -0
- package/dist/src/core/graphql/createGraphQLRoute/helpers/matchGraphQLRequestArtifacts/matchGraphQLRequestArtifacts.d.ts +12 -0
- package/dist/src/core/graphql/createGraphQLRoute/helpers/matchGraphQLRequestArtifacts/matchGraphQLRequestArtifacts.js +28 -0
- package/dist/src/core/graphql/createGraphQLRoute/helpers/prepareGraphQLRequestArtifacts/prepareGraphQLRequestArtifacts.d.ts +2 -0
- package/dist/src/core/graphql/createGraphQLRoute/helpers/prepareGraphQLRequestArtifacts/prepareGraphQLRequestArtifacts.js +11 -0
- package/dist/src/core/graphql/index.d.ts +2 -1
- package/dist/src/core/graphql/index.js +2 -1
- package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.d.ts +6 -4
- package/dist/src/core/rest/createRestRoute/createRestRoute.d.ts +8 -0
- package/dist/src/core/rest/createRestRoute/createRestRoute.js +190 -0
- package/dist/src/core/rest/createRestRoute/helpers/calculateRestRouteConfigWeight/calculateRestRouteConfigWeight.d.ts +2 -0
- package/dist/src/core/rest/createRestRoute/helpers/calculateRestRouteConfigWeight/calculateRestRouteConfigWeight.js +35 -0
- package/dist/src/core/rest/createRestRoute/helpers/index.d.ts +3 -0
- package/dist/src/core/rest/createRestRoute/helpers/index.js +20 -0
- package/dist/src/core/rest/createRestRoute/helpers/matchRestRequestArtifacts/matchRestRequestArtifacts.d.ts +11 -0
- package/dist/src/core/rest/createRestRoute/helpers/matchRestRequestArtifacts/matchRestRequestArtifacts.js +31 -0
- package/dist/src/core/rest/createRestRoute/helpers/prepareRestRequestArtifacts/prepareRestRequestArtifacts.d.ts +2 -0
- package/dist/src/core/rest/createRestRoute/helpers/prepareRestRequestArtifacts/prepareRestRequestArtifacts.js +37 -0
- package/dist/src/core/rest/index.d.ts +2 -1
- package/dist/src/core/rest/index.js +2 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/server/createMockServer/createMockServer.d.ts +1 -1
- package/dist/src/server/createMockServer/createMockServer.js +76 -45
- package/dist/src/server/index.d.ts +0 -8
- package/dist/src/server/index.js +0 -8
- package/dist/src/server/startMockServer/startMockServer.d.ts +2 -2
- package/dist/src/server/startMockServer/startMockServer.js +4 -3
- package/dist/src/utils/constants/checkModes.js +7 -7
- package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.js +1 -1
- package/dist/src/utils/helpers/files/isFileDescriptor/isFileDescriptor.js +2 -2
- package/dist/src/utils/helpers/files/isFilePathValid/isFilePathValid.js +3 -3
- package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.d.ts +3 -3
- package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +2 -2
- package/dist/src/utils/helpers/tests/createTmpDir.js +4 -4
- package/dist/src/utils/helpers/url/index.d.ts +1 -2
- package/dist/src/utils/helpers/url/index.js +1 -2
- package/dist/src/utils/helpers/url/normalizeUrl/normalizeUrl.d.ts +1 -0
- package/dist/src/utils/helpers/url/normalizeUrl/normalizeUrl.js +15 -0
- package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +4 -4
- package/dist/src/utils/types/graphql.d.ts +44 -18
- package/dist/src/utils/types/rest.d.ts +44 -27
- package/dist/src/utils/types/server.d.ts +7 -24
- package/dist/src/utils/types/values.d.ts +6 -1
- package/dist/src/utils/validate/graphqlConfigSchema/graphqlConfigSchema.d.ts +41 -383
- package/dist/src/utils/validate/graphqlConfigSchema/graphqlConfigSchema.js +3 -3
- package/dist/src/utils/validate/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.d.ts +3 -66
- package/dist/src/utils/validate/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.js +7 -22
- package/dist/src/utils/validate/index.d.ts +0 -2
- package/dist/src/utils/validate/index.js +0 -2
- package/dist/src/utils/validate/queueSchema/queueSchema.d.ts +2 -11
- package/dist/src/utils/validate/queueSchema/queueSchema.js +7 -13
- package/dist/src/utils/validate/restConfigSchema/restConfigSchema.d.ts +101 -1309
- package/dist/src/utils/validate/restConfigSchema/restConfigSchema.js +3 -3
- package/dist/src/utils/validate/restConfigSchema/routeConfigSchema/routeConfigSchema.d.ts +3 -82
- package/dist/src/utils/validate/restConfigSchema/routeConfigSchema/routeConfigSchema.js +6 -28
- package/dist/src/utils/validate/settingsSchema/settingsSchema.d.ts +0 -3
- package/dist/src/utils/validate/settingsSchema/settingsSchema.js +0 -1
- package/dist/src/utils/validate/utils/checkModeSchema/checkModeSchema.js +6 -6
- package/dist/src/utils/validate/utils/entitiesSchema/entitiesSchema.js +4 -4
- package/dist/src/utils/validate/utils/jsonSchema/jsonSchema.js +3 -3
- package/dist/src/utils/validate/utils/requiredPropertiesSchema/requiredPropertiesSchema.js +1 -1
- package/dist/src/utils/validate/utils/sharedSchema/sharedSchema.js +3 -3
- package/dist/src/utils/validate/validateMockServerConfig.js +18 -8
- package/package.json +17 -40
- package/LICENSE +0 -21
- package/dist/bin/runFlatConfig.d.ts +0 -5
- package/dist/bin/runFlatConfig.js +0 -36
- package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.d.ts +0 -9
- package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +0 -160
- package/dist/src/core/graphql/createGraphQLRoutes/helpers/index.d.ts +0 -1
- package/dist/src/core/graphql/createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.d.ts +0 -2
- package/dist/src/core/rest/createRestRoutes/createRestRoutes.d.ts +0 -9
- package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +0 -184
- package/dist/src/core/rest/createRestRoutes/helpers/index.d.ts +0 -1
- package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.d.ts +0 -2
- package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.js +0 -67
- package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.d.ts +0 -3
- package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +0 -62
- package/dist/src/server/createFlatMockServer/createFlatMockServer.d.ts +0 -3
- package/dist/src/server/createFlatMockServer/createFlatMockServer.js +0 -128
- package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.d.ts +0 -3
- package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +0 -67
- package/dist/src/server/createRestMockServer/createRestMockServer.d.ts +0 -3
- package/dist/src/server/createRestMockServer/createRestMockServer.js +0 -67
- package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.d.ts +0 -4
- package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.js +0 -29
- package/dist/src/server/startFlatMockServer/startFlatMockServer.d.ts +0 -4
- package/dist/src/server/startFlatMockServer/startFlatMockServer.js +0 -30
- package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.d.ts +0 -4
- package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.js +0 -29
- package/dist/src/server/startRestMockServer/startRestMockServer.d.ts +0 -4
- package/dist/src/server/startRestMockServer/startRestMockServer.js +0 -29
- package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.d.ts +0 -1
- package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.js +0 -12
- package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.d.ts +0 -1
- package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.js +0 -11
- package/dist/src/utils/validate/isOnlyRequestedDataResolvingPropertyExists.d.ts +0 -4
- package/dist/src/utils/validate/isOnlyRequestedDataResolvingPropertyExists.js +0 -16
- package/dist/src/utils/validate/validateApiMockServerConfig.d.ts +0 -2
- package/dist/src/utils/validate/validateApiMockServerConfig.js +0 -48
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createRestRoute", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return createRestRoute;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _flat = require("flat");
|
|
12
|
+
const _helpers = require("../../../utils/helpers");
|
|
13
|
+
const _helpers1 = require("./helpers");
|
|
14
|
+
const extractPathParams = (artifact, path)=>{
|
|
15
|
+
var _fullPath_match;
|
|
16
|
+
if (artifact.path instanceof RegExp) return {};
|
|
17
|
+
const fullPath = (0, _helpers.urlJoin)(artifact.baseUrl, artifact.path);
|
|
18
|
+
var _fullPath_match_map;
|
|
19
|
+
const keys = (_fullPath_match_map = (_fullPath_match = fullPath.match(/:[^/]+/g)) === null || _fullPath_match === void 0 ? void 0 : _fullPath_match.map((key)=>key.slice(1))) !== null && _fullPath_match_map !== void 0 ? _fullPath_match_map : [];
|
|
20
|
+
if (!keys.length) return {};
|
|
21
|
+
const match = path.match((0, _helpers1.generatePathRegex)(fullPath));
|
|
22
|
+
if (!match) return {};
|
|
23
|
+
return keys.reduce((acc, key, index)=>{
|
|
24
|
+
acc[key] = decodeURIComponent(match[index + 1]);
|
|
25
|
+
return acc;
|
|
26
|
+
}, {});
|
|
27
|
+
};
|
|
28
|
+
const createRestRoute = ({ server, restRequestArtifacts })=>server.use((0, _helpers.asyncHandler)(async (request, response, next)=>{
|
|
29
|
+
var _matchedRouteConfig_config_settings, _matchedRouteConfig_config_settings1;
|
|
30
|
+
const requestMethod = request.method.toLowerCase();
|
|
31
|
+
const previousParams = {
|
|
32
|
+
...request.params
|
|
33
|
+
};
|
|
34
|
+
const matchedRequestArtifacts = (0, _helpers1.matchRestRequestArtifacts)({
|
|
35
|
+
artifacts: restRequestArtifacts,
|
|
36
|
+
meta: {
|
|
37
|
+
method: requestMethod,
|
|
38
|
+
path: (0, _helpers.normalizeUrl)(request.path)
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
if (!matchedRequestArtifacts.length) return next();
|
|
42
|
+
const matchedRouteConfig = matchedRequestArtifacts.find((artifact)=>{
|
|
43
|
+
request.params = extractPathParams(artifact, request.path);
|
|
44
|
+
const { config } = artifact;
|
|
45
|
+
if (!config.entities) return true;
|
|
46
|
+
const entityEntries = Object.entries(config.entities);
|
|
47
|
+
return entityEntries.every(([entityName, entityDescriptorOrValue])=>{
|
|
48
|
+
// ✅ important:
|
|
49
|
+
// check whole body as plain value strictly if descriptor used for body
|
|
50
|
+
const isEntityBodyByTopLevelDescriptor = entityName === 'body' && (0, _helpers.isEntityDescriptor)(entityDescriptorOrValue);
|
|
51
|
+
if (isEntityBodyByTopLevelDescriptor) {
|
|
52
|
+
const bodyDescriptor = entityDescriptorOrValue;
|
|
53
|
+
if (bodyDescriptor.checkMode === 'exists' || bodyDescriptor.checkMode === 'notExists') {
|
|
54
|
+
return (0, _helpers.resolveEntityValues)({
|
|
55
|
+
actualValue: request.body,
|
|
56
|
+
checkMode: bodyDescriptor.checkMode
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
var _bodyDescriptor_oneOf;
|
|
60
|
+
return (0, _helpers.resolveEntityValues)({
|
|
61
|
+
actualValue: request.body,
|
|
62
|
+
descriptorValue: bodyDescriptor.value,
|
|
63
|
+
checkMode: bodyDescriptor.checkMode,
|
|
64
|
+
oneOf: (_bodyDescriptor_oneOf = bodyDescriptor.oneOf) !== null && _bodyDescriptor_oneOf !== void 0 ? _bodyDescriptor_oneOf : false
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const isEntityBodyByTopLevelArray = entityName === 'body' && Array.isArray(entityDescriptorOrValue);
|
|
68
|
+
if (isEntityBodyByTopLevelArray) {
|
|
69
|
+
if (!Array.isArray(request.body)) return false;
|
|
70
|
+
return (0, _helpers.resolveEntityValues)({
|
|
71
|
+
actualValue: request.body,
|
|
72
|
+
descriptorValue: entityDescriptorOrValue,
|
|
73
|
+
checkMode: 'equals'
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const actualEntity = (0, _flat.flatten)(request[entityName]);
|
|
77
|
+
const entityValueEntries = Object.entries(entityDescriptorOrValue);
|
|
78
|
+
return entityValueEntries.every(([entityPropertyKey, entityPropertyDescriptorOrValue])=>{
|
|
79
|
+
const entityPropertyDescriptor = (0, _helpers.convertToEntityDescriptor)(entityPropertyDescriptorOrValue);
|
|
80
|
+
// ✅ important: transform header keys to lower case because browsers send headers in lowercase
|
|
81
|
+
const actualPropertyKey = entityName === 'headers' ? entityPropertyKey.toLowerCase() : entityPropertyKey;
|
|
82
|
+
const actualPropertyValue = actualEntity[actualPropertyKey];
|
|
83
|
+
if (entityPropertyDescriptor.checkMode === 'exists' || entityPropertyDescriptor.checkMode === 'notExists') {
|
|
84
|
+
return (0, _helpers.resolveEntityValues)({
|
|
85
|
+
actualValue: actualPropertyValue,
|
|
86
|
+
checkMode: entityPropertyDescriptor.checkMode
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
var _entityPropertyDescriptor_oneOf;
|
|
90
|
+
return (0, _helpers.resolveEntityValues)({
|
|
91
|
+
actualValue: actualPropertyValue,
|
|
92
|
+
descriptorValue: entityPropertyDescriptor.value,
|
|
93
|
+
checkMode: entityPropertyDescriptor.checkMode,
|
|
94
|
+
oneOf: (_entityPropertyDescriptor_oneOf = entityPropertyDescriptor.oneOf) !== null && _entityPropertyDescriptor_oneOf !== void 0 ? _entityPropertyDescriptor_oneOf : false
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
if (!matchedRouteConfig) {
|
|
100
|
+
request.params = previousParams;
|
|
101
|
+
return next();
|
|
102
|
+
}
|
|
103
|
+
if (matchedRouteConfig.componentRequestInterceptor) {
|
|
104
|
+
await (0, _helpers.callRequestInterceptor)({
|
|
105
|
+
request,
|
|
106
|
+
interceptor: matchedRouteConfig.componentRequestInterceptor
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
if (matchedRouteConfig.requestRequestInterceptor) {
|
|
110
|
+
await (0, _helpers.callRequestInterceptor)({
|
|
111
|
+
request,
|
|
112
|
+
interceptor: matchedRouteConfig.requestRequestInterceptor
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
if (matchedRouteConfig.routeRequestInterceptor) {
|
|
116
|
+
await (0, _helpers.callRequestInterceptor)({
|
|
117
|
+
request,
|
|
118
|
+
interceptor: matchedRouteConfig.routeRequestInterceptor
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
if ((_matchedRouteConfig_config_settings = matchedRouteConfig.config.settings) === null || _matchedRouteConfig_config_settings === void 0 ? void 0 : _matchedRouteConfig_config_settings.status) {
|
|
122
|
+
response.statusCode = matchedRouteConfig.config.settings.status;
|
|
123
|
+
}
|
|
124
|
+
// ✅ important:
|
|
125
|
+
// set 'Cache-Control' header for explicit browsers response revalidate: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
|
|
126
|
+
// this code should place before response interceptors for giving opportunity to rewrite 'Cache-Control' header
|
|
127
|
+
if (request.method === 'GET') response.set('Cache-control', 'no-store');
|
|
128
|
+
var _matchedRouteConfig_config_entities;
|
|
129
|
+
const params = {
|
|
130
|
+
request,
|
|
131
|
+
response,
|
|
132
|
+
next,
|
|
133
|
+
entities: (_matchedRouteConfig_config_entities = matchedRouteConfig.config.entities) !== null && _matchedRouteConfig_config_entities !== void 0 ? _matchedRouteConfig_config_entities : {},
|
|
134
|
+
appendHeader: (field, value)=>{
|
|
135
|
+
response.append(field, value);
|
|
136
|
+
},
|
|
137
|
+
attachment: (filename)=>{
|
|
138
|
+
response.attachment(filename);
|
|
139
|
+
},
|
|
140
|
+
clearCookie: (name, options)=>{
|
|
141
|
+
response.clearCookie(name, options);
|
|
142
|
+
},
|
|
143
|
+
getCookie: (name)=>request.cookies[name],
|
|
144
|
+
getRequestHeader: (field)=>request.headers[field],
|
|
145
|
+
getRequestHeaders: ()=>request.headers,
|
|
146
|
+
getResponseHeader: (field)=>response.getHeader(field),
|
|
147
|
+
getResponseHeaders: ()=>response.getHeaders(),
|
|
148
|
+
setCookie: (name, value, options)=>{
|
|
149
|
+
if (options) {
|
|
150
|
+
response.cookie(name, value, options);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
response.cookie(name, value);
|
|
154
|
+
},
|
|
155
|
+
setDelay: async (delay)=>{
|
|
156
|
+
await (0, _helpers.sleep)(delay === Infinity ? 99999999 : delay);
|
|
157
|
+
},
|
|
158
|
+
setHeader: (field, value)=>{
|
|
159
|
+
response.set(field, value);
|
|
160
|
+
},
|
|
161
|
+
setStatusCode: (statusCode)=>{
|
|
162
|
+
response.statusCode = statusCode;
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
const resolvedData = typeof matchedRouteConfig.config.data === 'function' ? await matchedRouteConfig.config.data(params) : matchedRouteConfig.config.data;
|
|
166
|
+
if (response.headersSent) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const data = await (0, _helpers.callResponseInterceptors)({
|
|
170
|
+
data: resolvedData,
|
|
171
|
+
request,
|
|
172
|
+
response,
|
|
173
|
+
interceptors: {
|
|
174
|
+
routeInterceptor: matchedRouteConfig.routeResponseInterceptor,
|
|
175
|
+
requestInterceptor: matchedRouteConfig.requestResponseInterceptor,
|
|
176
|
+
componentInterceptor: matchedRouteConfig.componentResponseInterceptor,
|
|
177
|
+
serverInterceptor: matchedRouteConfig.serverResponseInterceptor
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
if ((_matchedRouteConfig_config_settings1 = matchedRouteConfig.config.settings) === null || _matchedRouteConfig_config_settings1 === void 0 ? void 0 : _matchedRouteConfig_config_settings1.delay) {
|
|
181
|
+
await (0, _helpers.sleep)(matchedRouteConfig.config.settings.delay);
|
|
182
|
+
}
|
|
183
|
+
if (response.headersSent) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (response.getHeader('content-type')) {
|
|
187
|
+
return response.send(data);
|
|
188
|
+
}
|
|
189
|
+
return response.json(data);
|
|
190
|
+
}));
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "calculateRestRouteConfigWeight", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return calculateRestRouteConfigWeight;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _helpers = require("../../../../../utils/helpers");
|
|
12
|
+
const calculateRestRouteConfigWeight = (restRouteConfig)=>{
|
|
13
|
+
const { entities } = restRouteConfig;
|
|
14
|
+
if (!entities) return 0;
|
|
15
|
+
let routeConfigWeight = 0;
|
|
16
|
+
const { headers, cookies, query, params, body } = entities;
|
|
17
|
+
if (headers) routeConfigWeight += Object.keys(headers).length;
|
|
18
|
+
if (cookies) routeConfigWeight += Object.keys(cookies).length;
|
|
19
|
+
if (query) routeConfigWeight += Object.keys(query).length;
|
|
20
|
+
if (params) routeConfigWeight += Object.keys(params).length;
|
|
21
|
+
if (body) {
|
|
22
|
+
if ((0, _helpers.isPlainObject)(body) && body.checkMode) {
|
|
23
|
+
// ✅ important:
|
|
24
|
+
// check that actual value check modes does not have `value` for compare
|
|
25
|
+
if (body.checkMode === 'exists' || body.checkMode === 'notExists') {
|
|
26
|
+
routeConfigWeight += 1;
|
|
27
|
+
return routeConfigWeight;
|
|
28
|
+
}
|
|
29
|
+
routeConfigWeight += (0, _helpers.isPlainObject)(body.value) ? Object.keys(body.value).length : 1;
|
|
30
|
+
return routeConfigWeight;
|
|
31
|
+
}
|
|
32
|
+
routeConfigWeight += (0, _helpers.isPlainObject)(body) ? Object.keys(body).length : 1;
|
|
33
|
+
}
|
|
34
|
+
return routeConfigWeight;
|
|
35
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
_export_star(require("./calculateRestRouteConfigWeight/calculateRestRouteConfigWeight"), exports);
|
|
6
|
+
_export_star(require("./matchRestRequestArtifacts/matchRestRequestArtifacts"), exports);
|
|
7
|
+
_export_star(require("./prepareRestRequestArtifacts/prepareRestRequestArtifacts"), exports);
|
|
8
|
+
function _export_star(from, to) {
|
|
9
|
+
Object.keys(from).forEach(function(k) {
|
|
10
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
11
|
+
Object.defineProperty(to, k, {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function() {
|
|
14
|
+
return from[k];
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return from;
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RestRequestArtifact } from '../../../../../utils/types';
|
|
2
|
+
export declare const generatePathRegex: (path: string) => RegExp;
|
|
3
|
+
interface MatchRestRequestArtifactsParams {
|
|
4
|
+
artifacts: RestRequestArtifact[];
|
|
5
|
+
meta: {
|
|
6
|
+
method: string;
|
|
7
|
+
path: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export declare const matchRestRequestArtifacts: ({ artifacts, meta }: MatchRestRequestArtifactsParams) => RestRequestArtifact[];
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get generatePathRegex () {
|
|
13
|
+
return generatePathRegex;
|
|
14
|
+
},
|
|
15
|
+
get matchRestRequestArtifacts () {
|
|
16
|
+
return matchRestRequestArtifacts;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _helpers = require("../../../../../utils/helpers");
|
|
20
|
+
const generatePathRegex = (path)=>new RegExp(`^${path.split('/').map((part)=>part.startsWith(':') ? '([^/]+)' : part.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('/')}$`);
|
|
21
|
+
const matchRestRequestArtifacts = ({ artifacts, meta })=>artifacts.filter((artifact)=>{
|
|
22
|
+
if (!meta.path.startsWith(artifact.baseUrl)) return false;
|
|
23
|
+
if (artifact.method !== meta.method) return false;
|
|
24
|
+
if (artifact.path instanceof RegExp) {
|
|
25
|
+
if (artifact.baseUrl === '/') return new RegExp(artifact.path).test(meta.path);
|
|
26
|
+
const tail = meta.path === artifact.baseUrl ? '' : meta.path.slice(artifact.baseUrl.length);
|
|
27
|
+
if (!tail) return false;
|
|
28
|
+
return new RegExp(artifact.path).test(tail);
|
|
29
|
+
}
|
|
30
|
+
return generatePathRegex((0, _helpers.urlJoin)(artifact.baseUrl, artifact.path)).test(meta.path);
|
|
31
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "prepareRestRequestArtifacts", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return prepareRestRequestArtifacts;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const prepareRestRequestArtifacts = (requestArtifacts)=>{
|
|
12
|
+
const sortedByPathRequestArtifacts = requestArtifacts.toSorted((first, second)=>second.weight - first.weight).toSorted(({ path: firstPath }, { path: secondPath })=>{
|
|
13
|
+
// ✅ important:
|
|
14
|
+
// do not compare RegExp paths and non-parameterized paths
|
|
15
|
+
if (firstPath instanceof RegExp || secondPath instanceof RegExp) return 0;
|
|
16
|
+
if (!firstPath.includes('/:') && !secondPath.includes('/:')) return 0;
|
|
17
|
+
const firstPathParts = firstPath.split('/');
|
|
18
|
+
const secondPathParts = secondPath.split('/');
|
|
19
|
+
const minimalPathPartsLength = Math.min(firstPathParts.length, secondPathParts.length);
|
|
20
|
+
// ✅ important:
|
|
21
|
+
// need to find the leftmost parameter/non-parameter pair and give priority to non-parameter one
|
|
22
|
+
for(let i = 0; i < minimalPathPartsLength; i += 1){
|
|
23
|
+
const firstPathPart = firstPathParts[i];
|
|
24
|
+
const secondPathPart = secondPathParts[i];
|
|
25
|
+
const isFirstPathPartParameter = firstPathPart.startsWith(':');
|
|
26
|
+
const isSecondPathPartParameter = secondPathPart.startsWith(':');
|
|
27
|
+
if (!isFirstPathPartParameter && !isSecondPathPartParameter) {
|
|
28
|
+
if (firstPathPart === secondPathPart) continue;
|
|
29
|
+
return 0;
|
|
30
|
+
}
|
|
31
|
+
if (isFirstPathPartParameter && isSecondPathPartParameter) continue;
|
|
32
|
+
return +isFirstPathPartParameter - +isSecondPathPartParameter;
|
|
33
|
+
}
|
|
34
|
+
return 0;
|
|
35
|
+
});
|
|
36
|
+
return sortedByPathRequestArtifacts;
|
|
37
|
+
};
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './createRestRoute/createRestRoute';
|
|
2
|
+
export * from './createRestRoute/helpers';
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
_export_star(require("./
|
|
5
|
+
_export_star(require("./createRestRoute/createRestRoute"), exports);
|
|
6
|
+
_export_star(require("./createRestRoute/helpers"), exports);
|
|
6
7
|
function _export_star(from, to) {
|
|
7
8
|
Object.keys(from).forEach(function(k) {
|
|
8
9
|
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Express } from 'express';
|
|
2
2
|
import type { MockServerConfig } from '../../utils/types';
|
|
3
|
-
export declare const createMockServer: (mockServerConfig:
|
|
3
|
+
export declare const createMockServer: (mockServerConfig: MockServerConfig, server?: Express) => Express;
|
|
@@ -22,9 +22,10 @@ function _interop_require_default(obj) {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
const createMockServer = (mockServerConfig, server = (0, _express.default)())=>{
|
|
25
|
-
var _mockServerConfig_interceptors;
|
|
26
25
|
(0, _validate.validateMockServerConfig)(mockServerConfig);
|
|
27
|
-
const
|
|
26
|
+
const [option, ...mockServerComponents] = mockServerConfig;
|
|
27
|
+
const mockServerSettings = !('configs' in option) ? option : undefined;
|
|
28
|
+
const { cors, staticPath, interceptors, baseUrl: serverBaseUrl = '/', database } = mockServerSettings !== null && mockServerSettings !== void 0 ? mockServerSettings : {};
|
|
28
29
|
server.use(_bodyparser.default.urlencoded({
|
|
29
30
|
extended: false
|
|
30
31
|
}));
|
|
@@ -33,66 +34,96 @@ const createMockServer = (mockServerConfig, server = (0, _express.default)())=>{
|
|
|
33
34
|
}));
|
|
34
35
|
server.set('json spaces', 2);
|
|
35
36
|
server.use(_bodyparser.default.text());
|
|
36
|
-
(0, _middlewares.contextMiddleware)(server,
|
|
37
|
+
(0, _middlewares.contextMiddleware)(server, {
|
|
38
|
+
database
|
|
39
|
+
});
|
|
37
40
|
(0, _middlewares.cookieParseMiddleware)(server);
|
|
38
|
-
const serverRequestInterceptor =
|
|
41
|
+
const serverRequestInterceptor = interceptors === null || interceptors === void 0 ? void 0 : interceptors.request;
|
|
39
42
|
if (serverRequestInterceptor) {
|
|
40
43
|
(0, _middlewares.requestInterceptorMiddleware)({
|
|
41
44
|
server,
|
|
42
45
|
interceptor: serverRequestInterceptor
|
|
43
46
|
});
|
|
44
47
|
}
|
|
45
|
-
var _mockServerConfig_baseUrl;
|
|
46
|
-
const baseUrl = (_mockServerConfig_baseUrl = mockServerConfig.baseUrl) !== null && _mockServerConfig_baseUrl !== void 0 ? _mockServerConfig_baseUrl : '/';
|
|
47
48
|
if (cors) {
|
|
48
49
|
(0, _middlewares.corsMiddleware)(server, cors);
|
|
49
50
|
} else {
|
|
50
51
|
(0, _middlewares.noCorsMiddleware)(server);
|
|
51
52
|
}
|
|
52
53
|
if (staticPath) {
|
|
53
|
-
(0, _middlewares.staticMiddleware)(server,
|
|
54
|
+
(0, _middlewares.staticMiddleware)(server, serverBaseUrl, staticPath);
|
|
54
55
|
}
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
router: _express.default.Router(),
|
|
59
|
-
restConfig: rest,
|
|
60
|
-
serverResponseInterceptor: interceptors === null || interceptors === void 0 ? void 0 : interceptors.response
|
|
61
|
-
});
|
|
62
|
-
var _rest_baseUrl;
|
|
63
|
-
const restBaseUrl = (0, _helpers.urlJoin)(baseUrl, (_rest_baseUrl = rest.baseUrl) !== null && _rest_baseUrl !== void 0 ? _rest_baseUrl : '/');
|
|
64
|
-
const apiRequestInterceptor = (_rest_interceptors = rest.interceptors) === null || _rest_interceptors === void 0 ? void 0 : _rest_interceptors.request;
|
|
65
|
-
if (apiRequestInterceptor) {
|
|
66
|
-
(0, _middlewares.requestInterceptorMiddleware)({
|
|
67
|
-
server,
|
|
68
|
-
path: restBaseUrl,
|
|
69
|
-
interceptor: apiRequestInterceptor
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
server.use(restBaseUrl, routerWithRestRoutes);
|
|
56
|
+
if (database) {
|
|
57
|
+
const routerWithDatabaseRoutes = (0, _database.createDatabaseRoutes)(_express.default.Router(), database);
|
|
58
|
+
server.use(serverBaseUrl, routerWithDatabaseRoutes);
|
|
73
59
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
60
|
+
const components = mockServerSettings ? mockServerComponents : mockServerConfig;
|
|
61
|
+
const { restRequestsArtifacts, graphQLRequestsArtifacts } = components.reduce((acc, component)=>{
|
|
62
|
+
component.configs.forEach((config)=>{
|
|
63
|
+
const isRest = 'method' in config;
|
|
64
|
+
if (isRest) {
|
|
65
|
+
config.routes.forEach((route)=>{
|
|
66
|
+
var _config_interceptors, _config_interceptors1, _component_interceptors, _component_interceptors1, _route_interceptors, _route_interceptors1;
|
|
67
|
+
var _component_baseUrl;
|
|
68
|
+
acc.restRequestsArtifacts.push({
|
|
69
|
+
baseUrl: (0, _helpers.urlJoin)(serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : '/', (_component_baseUrl = component.baseUrl) !== null && _component_baseUrl !== void 0 ? _component_baseUrl : ''),
|
|
70
|
+
method: config.method,
|
|
71
|
+
path: config.path,
|
|
72
|
+
config: route,
|
|
73
|
+
weight: (0, _rest.calculateRestRouteConfigWeight)(route),
|
|
74
|
+
serverResponseInterceptor: interceptors === null || interceptors === void 0 ? void 0 : interceptors.response,
|
|
75
|
+
serverRequestInterceptor: interceptors === null || interceptors === void 0 ? void 0 : interceptors.request,
|
|
76
|
+
requestResponseInterceptor: (_config_interceptors = config.interceptors) === null || _config_interceptors === void 0 ? void 0 : _config_interceptors.response,
|
|
77
|
+
requestRequestInterceptor: (_config_interceptors1 = config.interceptors) === null || _config_interceptors1 === void 0 ? void 0 : _config_interceptors1.request,
|
|
78
|
+
componentResponseInterceptor: (_component_interceptors = component.interceptors) === null || _component_interceptors === void 0 ? void 0 : _component_interceptors.response,
|
|
79
|
+
componentRequestInterceptor: (_component_interceptors1 = component.interceptors) === null || _component_interceptors1 === void 0 ? void 0 : _component_interceptors1.request,
|
|
80
|
+
routeResponseInterceptor: (_route_interceptors = route.interceptors) === null || _route_interceptors === void 0 ? void 0 : _route_interceptors.response,
|
|
81
|
+
routeRequestInterceptor: (_route_interceptors1 = route.interceptors) === null || _route_interceptors1 === void 0 ? void 0 : _route_interceptors1.request
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
const isGraphql = 'operationType' in config;
|
|
86
|
+
if (isGraphql) {
|
|
87
|
+
config.routes.forEach((route)=>{
|
|
88
|
+
var _config_interceptors, _config_interceptors1, _component_interceptors, _component_interceptors1, _route_interceptors, _route_interceptors1;
|
|
89
|
+
var _component_baseUrl;
|
|
90
|
+
acc.graphQLRequestsArtifacts.push({
|
|
91
|
+
baseUrl: (0, _helpers.urlJoin)(serverBaseUrl !== null && serverBaseUrl !== void 0 ? serverBaseUrl : '/', (_component_baseUrl = component.baseUrl) !== null && _component_baseUrl !== void 0 ? _component_baseUrl : ''),
|
|
92
|
+
operationType: config.operationType,
|
|
93
|
+
operationName: 'operationName' in config ? config.operationName : undefined,
|
|
94
|
+
query: 'query' in config ? config.query : undefined,
|
|
95
|
+
config: route,
|
|
96
|
+
weight: (0, _graphql.calculateGraphQLRouteConfigWeight)(route),
|
|
97
|
+
serverResponseInterceptor: interceptors === null || interceptors === void 0 ? void 0 : interceptors.response,
|
|
98
|
+
serverRequestInterceptor: interceptors === null || interceptors === void 0 ? void 0 : interceptors.request,
|
|
99
|
+
requestResponseInterceptor: (_config_interceptors = config.interceptors) === null || _config_interceptors === void 0 ? void 0 : _config_interceptors.response,
|
|
100
|
+
requestRequestInterceptor: (_config_interceptors1 = config.interceptors) === null || _config_interceptors1 === void 0 ? void 0 : _config_interceptors1.request,
|
|
101
|
+
componentResponseInterceptor: (_component_interceptors = component.interceptors) === null || _component_interceptors === void 0 ? void 0 : _component_interceptors.response,
|
|
102
|
+
componentRequestInterceptor: (_component_interceptors1 = component.interceptors) === null || _component_interceptors1 === void 0 ? void 0 : _component_interceptors1.request,
|
|
103
|
+
routeResponseInterceptor: (_route_interceptors = route.interceptors) === null || _route_interceptors === void 0 ? void 0 : _route_interceptors.response,
|
|
104
|
+
routeRequestInterceptor: (_route_interceptors1 = route.interceptors) === null || _route_interceptors1 === void 0 ? void 0 : _route_interceptors1.request
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return acc;
|
|
110
|
+
}, {
|
|
111
|
+
restRequestsArtifacts: [],
|
|
112
|
+
graphQLRequestsArtifacts: []
|
|
113
|
+
});
|
|
114
|
+
const preparedRestRequestArtifacts = (0, _rest.prepareRestRequestArtifacts)(restRequestsArtifacts);
|
|
115
|
+
const preparedGraphQLRequestArtifacts = (0, _graphql.prepareGraphQLRequestArtifacts)(graphQLRequestsArtifacts);
|
|
116
|
+
if (preparedRestRequestArtifacts.length) {
|
|
117
|
+
(0, _rest.createRestRoute)({
|
|
118
|
+
server,
|
|
119
|
+
restRequestArtifacts: preparedRestRequestArtifacts
|
|
80
120
|
});
|
|
81
|
-
var _graphql_baseUrl;
|
|
82
|
-
const graphqlBaseUrl = (0, _helpers.urlJoin)(baseUrl, (_graphql_baseUrl = graphql.baseUrl) !== null && _graphql_baseUrl !== void 0 ? _graphql_baseUrl : '/');
|
|
83
|
-
const apiRequestInterceptor = (_graphql_interceptors = graphql.interceptors) === null || _graphql_interceptors === void 0 ? void 0 : _graphql_interceptors.request;
|
|
84
|
-
if (apiRequestInterceptor) {
|
|
85
|
-
(0, _middlewares.requestInterceptorMiddleware)({
|
|
86
|
-
server,
|
|
87
|
-
path: graphqlBaseUrl,
|
|
88
|
-
interceptor: apiRequestInterceptor
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
server.use(graphqlBaseUrl, routerWithGraphQLRoutes);
|
|
92
121
|
}
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
122
|
+
if (preparedGraphQLRequestArtifacts.length) {
|
|
123
|
+
(0, _graphql.createGraphQLRoute)({
|
|
124
|
+
server,
|
|
125
|
+
graphQLRequestArtifacts: preparedGraphQLRequestArtifacts
|
|
126
|
+
});
|
|
96
127
|
}
|
|
97
128
|
(0, _middlewares.errorMiddleware)(server);
|
|
98
129
|
return server;
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
export * from './createDatabaseMockServer/createDatabaseMockServer';
|
|
2
|
-
export * from './createFlatMockServer/createFlatMockServer';
|
|
3
|
-
export * from './createGraphQLMockServer/createGraphQLMockServer';
|
|
4
1
|
export * from './createMockServer/createMockServer';
|
|
5
|
-
export * from './createRestMockServer/createRestMockServer';
|
|
6
|
-
export * from './startDatabaseMockServer/startDatabaseMockServer';
|
|
7
|
-
export * from './startFlatMockServer/startFlatMockServer';
|
|
8
|
-
export * from './startGraphQLMockServer/startGraphQLMockServer';
|
|
9
2
|
export * from './startMockServer/startMockServer';
|
|
10
|
-
export * from './startRestMockServer/startRestMockServer';
|
package/dist/src/server/index.js
CHANGED
|
@@ -2,16 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
_export_star(require("./createDatabaseMockServer/createDatabaseMockServer"), exports);
|
|
6
|
-
_export_star(require("./createFlatMockServer/createFlatMockServer"), exports);
|
|
7
|
-
_export_star(require("./createGraphQLMockServer/createGraphQLMockServer"), exports);
|
|
8
5
|
_export_star(require("./createMockServer/createMockServer"), exports);
|
|
9
|
-
_export_star(require("./createRestMockServer/createRestMockServer"), exports);
|
|
10
|
-
_export_star(require("./startDatabaseMockServer/startDatabaseMockServer"), exports);
|
|
11
|
-
_export_star(require("./startFlatMockServer/startFlatMockServer"), exports);
|
|
12
|
-
_export_star(require("./startGraphQLMockServer/startGraphQLMockServer"), exports);
|
|
13
6
|
_export_star(require("./startMockServer/startMockServer"), exports);
|
|
14
|
-
_export_star(require("./startRestMockServer/startRestMockServer"), exports);
|
|
15
7
|
function _export_star(from, to) {
|
|
16
8
|
Object.keys(from).forEach(function(k) {
|
|
17
9
|
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { MockServerConfig } from '../../utils/types';
|
|
2
|
-
export declare const startMockServer: (mockServerConfig: MockServerConfig) => import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> & {
|
|
3
|
-
destroy: import("http").Server["close"];
|
|
2
|
+
export declare const startMockServer: (mockServerConfig: MockServerConfig) => import("node:http").Server<typeof import("node:http").IncomingMessage, typeof import("node:http").ServerResponse> & {
|
|
3
|
+
destroy: import("node:http").Server["close"];
|
|
4
4
|
};
|
|
@@ -19,10 +19,11 @@ function _interop_require_default(obj) {
|
|
|
19
19
|
}
|
|
20
20
|
const startMockServer = (mockServerConfig)=>{
|
|
21
21
|
const mockServer = (0, _createMockServer.createMockServer)(mockServerConfig);
|
|
22
|
-
|
|
23
|
-
const
|
|
22
|
+
const [option] = mockServerConfig;
|
|
23
|
+
const mockServerSettings = !('configs' in option) ? option : {};
|
|
24
|
+
const { port = _constants.DEFAULT.PORT } = mockServerSettings;
|
|
24
25
|
const server = mockServer.listen(port, ()=>{
|
|
25
|
-
console.
|
|
26
|
+
console.log(_ansicolors.default.green(`🎉 Mock Server is running at http://localhost:${port}`));
|
|
26
27
|
});
|
|
27
28
|
// ✅ important: add destroy method for closing keep-alive connections after server shutdown
|
|
28
29
|
return (0, _middlewares.destroyerMiddleware)(server);
|
|
@@ -5,26 +5,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
function _export(target, all) {
|
|
6
6
|
for(var name in all)Object.defineProperty(target, name, {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: all
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
CALCULATE_BY_DESCRIPTOR_VALUE_CHECK_MODES
|
|
12
|
+
get CALCULATE_BY_DESCRIPTOR_VALUE_CHECK_MODES () {
|
|
13
13
|
return CALCULATE_BY_DESCRIPTOR_VALUE_CHECK_MODES;
|
|
14
14
|
},
|
|
15
|
-
CHECK_ACTUAL_VALUE_CHECK_MODES
|
|
15
|
+
get CHECK_ACTUAL_VALUE_CHECK_MODES () {
|
|
16
16
|
return CHECK_ACTUAL_VALUE_CHECK_MODES;
|
|
17
17
|
},
|
|
18
|
-
COMPARE_WITH_DESCRIPTOR_ANY_VALUE_CHECK_MODES
|
|
18
|
+
get COMPARE_WITH_DESCRIPTOR_ANY_VALUE_CHECK_MODES () {
|
|
19
19
|
return COMPARE_WITH_DESCRIPTOR_ANY_VALUE_CHECK_MODES;
|
|
20
20
|
},
|
|
21
|
-
COMPARE_WITH_DESCRIPTOR_STRING_VALUE_CHECK_MODES
|
|
21
|
+
get COMPARE_WITH_DESCRIPTOR_STRING_VALUE_CHECK_MODES () {
|
|
22
22
|
return COMPARE_WITH_DESCRIPTOR_STRING_VALUE_CHECK_MODES;
|
|
23
23
|
},
|
|
24
|
-
COMPARE_WITH_DESCRIPTOR_VALUE_CHECK_MODES
|
|
24
|
+
get COMPARE_WITH_DESCRIPTOR_VALUE_CHECK_MODES () {
|
|
25
25
|
return COMPARE_WITH_DESCRIPTOR_VALUE_CHECK_MODES;
|
|
26
26
|
},
|
|
27
|
-
NEGATIVE_CHECK_MODES
|
|
27
|
+
get NEGATIVE_CHECK_MODES () {
|
|
28
28
|
return NEGATIVE_CHECK_MODES;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
@@ -13,7 +13,7 @@ const _constants = require("../../../constants");
|
|
|
13
13
|
const _isPlainObject = require("../../isPlainObject/isPlainObject");
|
|
14
14
|
const _isPrimitive = require("../../isPrimitive/isPrimitive");
|
|
15
15
|
const checkFunction = (checkMode, actualValue, descriptorValue)=>{
|
|
16
|
-
const isActualValueUndefined =
|
|
16
|
+
const isActualValueUndefined = actualValue === undefined;
|
|
17
17
|
if (checkMode === 'exists') return !isActualValueUndefined;
|
|
18
18
|
if (checkMode === 'notExists') return isActualValueUndefined;
|
|
19
19
|
if (checkMode === 'function') {
|