mock-config-server 2.0.1 → 2.1.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 +33 -1
- package/dist/bin/{mock-config-server.d.ts → bin.d.ts} +2 -2
- package/dist/bin/bin.js +8 -0
- package/dist/bin/cli.d.ts +1 -0
- package/dist/bin/cli.js +36 -0
- package/dist/bin/{resolveExportsFromSourceCode.d.ts → resolveExportsFromSourceCode/resolveExportsFromSourceCode.d.ts} +1 -1
- package/dist/bin/{resolveExportsFromSourceCode.js → resolveExportsFromSourceCode/resolveExportsFromSourceCode.js} +11 -11
- package/dist/bin/start.d.ts +3 -0
- package/dist/bin/{mock-config-server.js → start.js} +73 -67
- package/dist/bin/validateMockServerConfig/validateBaseUrl/validateBaseUrl.d.ts +1 -1
- package/dist/bin/validateMockServerConfig/validateBaseUrl/validateBaseUrl.js +12 -12
- package/dist/bin/validateMockServerConfig/validateCors/validateCors.d.ts +1 -1
- package/dist/bin/validateMockServerConfig/validateCors/validateCors.js +82 -82
- package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateGraphqlConfig.d.ts +1 -1
- package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateGraphqlConfig.js +48 -48
- package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateRoutes/validateRoutes.d.ts +2 -2
- package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateRoutes/validateRoutes.js +71 -71
- package/dist/bin/validateMockServerConfig/validateInterceptors/validateInterceptors.d.ts +1 -1
- package/dist/bin/validateMockServerConfig/validateInterceptors/validateInterceptors.js +21 -21
- package/dist/bin/validateMockServerConfig/validateMockServerConfig.d.ts +2 -1
- package/dist/bin/validateMockServerConfig/validateMockServerConfig.js +30 -34
- package/dist/bin/validateMockServerConfig/validatePort/validatePort.d.ts +1 -1
- package/dist/bin/validateMockServerConfig/validatePort/validatePort.js +9 -9
- package/dist/bin/validateMockServerConfig/validateRestConfig/validateRestConfig.d.ts +1 -1
- package/dist/bin/validateMockServerConfig/validateRestConfig/validateRestConfig.js +52 -52
- package/dist/bin/validateMockServerConfig/validateRestConfig/validateRoutes/validateRoutes.d.ts +2 -2
- package/dist/bin/validateMockServerConfig/validateRestConfig/validateRoutes/validateRoutes.js +105 -104
- package/dist/bin/validateMockServerConfig/validateStaticPath/validateStaticPath.d.ts +1 -1
- package/dist/bin/validateMockServerConfig/validateStaticPath/validateStaticPath.js +44 -44
- package/dist/index.d.ts +1 -1
- package/dist/index.js +17 -17
- package/dist/src/{graphql → core/graphql}/createGraphQLRoutes/createGraphQLRoutes.d.ts +3 -3
- package/dist/src/{graphql → core/graphql}/createGraphQLRoutes/createGraphQLRoutes.js +76 -73
- package/dist/src/core/graphql/createGraphQLRoutes/helpers/index.d.ts +1 -0
- package/dist/src/{notFound/urlSuggestions → core/graphql/createGraphQLRoutes/helpers}/index.js +17 -18
- package/dist/src/{graphql → core/graphql/createGraphQLRoutes/helpers}/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.d.ts +2 -2
- package/dist/src/{graphql → core/graphql/createGraphQLRoutes/helpers}/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js +28 -28
- package/dist/src/core/graphql/index.d.ts +1 -0
- package/dist/src/{notFound/urlSuggestions/getGraphqlUrlSuggestions → core/graphql}/index.js +17 -17
- package/dist/src/{cors → core/middlewares}/corsMiddleware/corsMiddleware.d.ts +3 -3
- package/dist/src/{cors → core/middlewares}/corsMiddleware/corsMiddleware.js +44 -44
- package/dist/src/{cors/getOrigins → core/middlewares/corsMiddleware/helpers/getAllowedOrigins}/getAllowedOrigins.d.ts +2 -2
- package/dist/src/{cors/getOrigins → core/middlewares/corsMiddleware/helpers/getAllowedOrigins}/getAllowedOrigins.js +13 -13
- package/dist/src/core/middlewares/corsMiddleware/helpers/index.d.ts +1 -0
- package/dist/src/{notFound/urlSuggestions/getRestUrlSuggestions → core/middlewares/corsMiddleware/helpers}/index.js +17 -17
- package/dist/src/core/middlewares/index.d.ts +4 -0
- package/dist/src/core/middlewares/index.js +20 -0
- package/dist/src/{cors → core/middlewares}/noCorsMiddleware/noCorsMiddleware.d.ts +2 -2
- package/dist/src/{cors → core/middlewares}/noCorsMiddleware/noCorsMiddleware.js +24 -20
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.d.ts +6 -6
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.js +18 -18
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getLevenshteinDistance/getLevenshteinDistance.d.ts +1 -1
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getLevenshteinDistance/getLevenshteinDistance.js +80 -80
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/getRestUrlSuggestions.d.ts +6 -6
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/getRestUrlSuggestions.js +34 -34
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.d.ts +1 -1
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.js +7 -7
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.d.ts +1 -1
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.js +5 -5
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/index.d.ts +2 -2
- package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/index.js +18 -18
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.d.ts +3 -0
- package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.js +19 -0
- package/dist/src/{notFound → core/middlewares/notFoundMiddleware}/notFoundMiddleware.d.ts +8 -8
- package/dist/src/{notFound → core/middlewares/notFoundMiddleware}/notFoundMiddleware.js +47 -47
- package/dist/src/{static → core/middlewares}/staticMiddleware/staticMiddleware.d.ts +3 -3
- package/dist/src/{static → core/middlewares}/staticMiddleware/staticMiddleware.js +30 -30
- package/dist/src/{rest → core/rest}/createRestRoutes/createRestRoutes.d.ts +3 -3
- package/dist/src/{rest → core/rest}/createRestRoutes/createRestRoutes.js +46 -41
- package/dist/src/core/rest/createRestRoutes/helpers/index.d.ts +1 -0
- package/dist/src/core/rest/createRestRoutes/helpers/index.js +17 -0
- package/dist/src/{rest → core/rest/createRestRoutes/helpers}/prepareRestRequestConfigs/prepareRestRequestConfigs.d.ts +2 -2
- package/dist/src/{rest → core/rest/createRestRoutes/helpers}/prepareRestRequestConfigs/prepareRestRequestConfigs.js +30 -30
- package/dist/src/core/rest/index.d.ts +1 -0
- package/dist/src/core/rest/index.js +17 -0
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.js +19 -19
- package/dist/src/server/createMockServer/createMockServer.d.ts +3 -3
- package/dist/src/server/createMockServer/createMockServer.js +46 -49
- package/dist/src/server/index.d.ts +2 -0
- package/dist/src/server/index.js +18 -0
- package/dist/src/server/startMockServer/startMockServer.d.ts +2 -2
- package/dist/src/server/startMockServer/startMockServer.js +17 -17
- package/dist/src/static/views/notFound.ejs +1 -1
- package/dist/src/utils/constants/appPath.d.ts +1 -1
- package/dist/src/utils/constants/appPath.js +4 -4
- package/dist/src/utils/constants/default.d.ts +11 -11
- package/dist/src/utils/constants/default.js +14 -14
- package/dist/src/utils/constants/index.d.ts +2 -2
- package/dist/src/utils/constants/index.js +18 -18
- package/dist/src/utils/helpers/config/index.d.ts +1 -0
- package/dist/src/utils/helpers/config/index.js +17 -0
- package/dist/src/{configs → utils/helpers/config}/isEntitiesEqual/isEntityValuesEqual.d.ts +1 -1
- package/dist/src/{configs → utils/helpers/config}/isEntitiesEqual/isEntityValuesEqual.js +29 -29
- package/dist/src/{graphql → utils/helpers/graphql}/getGraphQLInput/getGraphQLInput.d.ts +3 -3
- package/dist/src/{graphql → utils/helpers/graphql}/getGraphQLInput/getGraphQLInput.js +21 -21
- package/dist/src/utils/helpers/graphql/index.d.ts +3 -0
- package/dist/src/utils/helpers/graphql/index.js +19 -0
- package/dist/src/{graphql → utils/helpers/graphql}/parseGraphQLRequest/parseGraphQLRequest.d.ts +3 -3
- package/dist/src/{graphql → utils/helpers/graphql}/parseGraphQLRequest/parseGraphQLRequest.js +12 -12
- package/dist/src/{graphql → utils/helpers/graphql}/parseQuery/parseQuery.d.ts +7 -7
- package/dist/src/{graphql → utils/helpers/graphql}/parseQuery/parseQuery.js +21 -21
- package/dist/src/utils/helpers/index.d.ts +6 -3
- package/dist/src/utils/helpers/index.js +22 -19
- package/dist/src/{routes → utils/helpers/interceptors}/callRequestInterceptors/callRequestInterceptors.d.ts +12 -12
- package/dist/src/{routes → utils/helpers/interceptors}/callRequestInterceptors/callRequestInterceptors.js +13 -13
- package/dist/src/{routes → utils/helpers/interceptors}/callResponseInterceptors/callResponseInterceptors.d.ts +14 -14
- package/dist/src/{routes → utils/helpers/interceptors}/callResponseInterceptors/callResponseInterceptors.js +55 -31
- package/dist/src/utils/helpers/interceptors/index.d.ts +2 -0
- package/dist/src/utils/helpers/interceptors/index.js +18 -0
- package/dist/src/utils/helpers/{isPlainObject.d.ts → isPlainObject/isPlainObject.d.ts} +1 -1
- package/dist/src/utils/helpers/{isPlainObject.js → isPlainObject/isPlainObject.js} +5 -5
- package/dist/src/utils/helpers/sleep.d.ts +1 -1
- package/dist/src/utils/helpers/sleep.js +7 -7
- package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.d.ts +1 -1
- package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.js +8 -8
- package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.d.ts +1 -1
- package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.js +6 -6
- package/dist/src/utils/helpers/url/index.d.ts +4 -4
- package/dist/src/utils/helpers/url/index.js +20 -20
- package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.d.ts +1 -1
- package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.js +5 -5
- package/dist/src/utils/helpers/url/urlJoin/urlJoin.d.ts +1 -1
- package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +14 -14
- package/dist/src/utils/types/graphql.d.ts +34 -5
- package/dist/src/utils/types/graphql.js +2 -2
- package/dist/src/utils/types/index.d.ts +5 -4
- package/dist/src/utils/types/index.js +21 -20
- package/dist/src/utils/types/interceptors.d.ts +21 -15
- package/dist/src/utils/types/interceptors.js +2 -2
- package/dist/src/utils/types/rest.d.ts +38 -0
- package/dist/src/utils/types/{configs.js → rest.js} +2 -2
- package/dist/src/utils/types/server.d.ts +37 -32
- package/dist/src/utils/types/server.js +2 -2
- package/dist/src/utils/types/values.d.ts +9 -0
- package/dist/src/utils/types/values.js +2 -0
- package/package.json +19 -17
- package/dist/src/notFound/urlSuggestions/getGraphqlUrlSuggestions/index.d.ts +0 -1
- package/dist/src/notFound/urlSuggestions/getRestUrlSuggestions/index.d.ts +0 -1
- package/dist/src/notFound/urlSuggestions/index.d.ts +0 -2
- package/dist/src/utils/types/configs.d.ts +0 -63
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./staticMiddleware/staticMiddleware"), exports);
|
|
18
|
+
__exportStar(require("./corsMiddleware/corsMiddleware"), exports);
|
|
19
|
+
__exportStar(require("./noCorsMiddleware/noCorsMiddleware"), exports);
|
|
20
|
+
__exportStar(require("./notFoundMiddleware/notFoundMiddleware"), exports);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Express } from 'express';
|
|
2
|
-
export declare const noCorsMiddleware: (server: Express) => void;
|
|
1
|
+
import type { Express } from 'express';
|
|
2
|
+
export declare const noCorsMiddleware: (server: Express) => void;
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.noCorsMiddleware = void 0;
|
|
4
|
-
const constants_1 = require("
|
|
5
|
-
const noCorsMiddleware = (server) => {
|
|
6
|
-
server.use((req, res, next) => {
|
|
7
|
-
res.setHeader('Access-Control-Allow-Origin', constants_1.DEFAULT.CORS.ORIGIN);
|
|
8
|
-
res.setHeader('Access-Control-Allow-Credentials', `${constants_1.DEFAULT.CORS.CREDENTIALS}`);
|
|
9
|
-
res.setHeader('Access-Control-Expose-Headers', constants_1.DEFAULT.CORS.EXPOSED_HEADERS);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.noCorsMiddleware = void 0;
|
|
4
|
+
const constants_1 = require("../../../utils/constants");
|
|
5
|
+
const noCorsMiddleware = (server) => {
|
|
6
|
+
server.use((req, res, next) => {
|
|
7
|
+
res.setHeader('Access-Control-Allow-Origin', constants_1.DEFAULT.CORS.ORIGIN);
|
|
8
|
+
res.setHeader('Access-Control-Allow-Credentials', `${constants_1.DEFAULT.CORS.CREDENTIALS}`);
|
|
9
|
+
res.setHeader('Access-Control-Expose-Headers', constants_1.DEFAULT.CORS.EXPOSED_HEADERS);
|
|
10
|
+
const isPreflightRequest = req.method === 'OPTIONS' &&
|
|
11
|
+
req.headers.origin &&
|
|
12
|
+
req.headers['access-control-request-method'] &&
|
|
13
|
+
req.headers['access-control-request-headers'];
|
|
14
|
+
if (isPreflightRequest) {
|
|
15
|
+
res.setHeader('Access-Control-Allow-Methods', constants_1.DEFAULT.CORS.METHODS);
|
|
16
|
+
res.setHeader('Access-Control-Allow-Headers', constants_1.DEFAULT.CORS.ALLOWED_HEADERS);
|
|
17
|
+
res.setHeader('Access-Control-Max-Age', constants_1.DEFAULT.CORS.MAX_AGE);
|
|
18
|
+
res.sendStatus(204);
|
|
19
|
+
return res.end();
|
|
20
|
+
}
|
|
21
|
+
return next();
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
exports.noCorsMiddleware = noCorsMiddleware;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
interface GetGraphqlUrlSuggestionsParams {
|
|
2
|
-
url: URL;
|
|
3
|
-
graphqlPatternUrlMeaningfulStrings: string[];
|
|
4
|
-
}
|
|
5
|
-
export declare const getGraphqlUrlSuggestions: ({ url, graphqlPatternUrlMeaningfulStrings }: GetGraphqlUrlSuggestionsParams) => string[];
|
|
6
|
-
export {};
|
|
1
|
+
interface GetGraphqlUrlSuggestionsParams {
|
|
2
|
+
url: URL;
|
|
3
|
+
graphqlPatternUrlMeaningfulStrings: string[];
|
|
4
|
+
}
|
|
5
|
+
export declare const getGraphqlUrlSuggestions: ({ url, graphqlPatternUrlMeaningfulStrings }: GetGraphqlUrlSuggestionsParams) => string[];
|
|
6
|
+
export {};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getGraphqlUrlSuggestions = void 0;
|
|
4
|
-
const getLevenshteinDistance_1 = require("../getLevenshteinDistance/getLevenshteinDistance");
|
|
5
|
-
const getGraphqlUrlSuggestions = ({ url, graphqlPatternUrlMeaningfulStrings }) => {
|
|
6
|
-
// ✅ important: operationName is always second word in 'query' query param
|
|
7
|
-
const operationName = url.searchParams.get('query')?.split(' ')[1];
|
|
8
|
-
const actualUrlMeaningfulString = `${url.pathname}/${operationName}`;
|
|
9
|
-
const graphqlUrlSuggestions = graphqlPatternUrlMeaningfulStrings.reduce((acc, patternUrlMeaningfulString) => {
|
|
10
|
-
const distance = (0, getLevenshteinDistance_1.getLevenshteinDistance)(actualUrlMeaningfulString, patternUrlMeaningfulString);
|
|
11
|
-
const tolerance = Math.floor(patternUrlMeaningfulString.length / 2);
|
|
12
|
-
if (distance <= tolerance)
|
|
13
|
-
acc.push(patternUrlMeaningfulString);
|
|
14
|
-
return acc;
|
|
15
|
-
}, []);
|
|
16
|
-
return graphqlUrlSuggestions;
|
|
17
|
-
};
|
|
18
|
-
exports.getGraphqlUrlSuggestions = getGraphqlUrlSuggestions;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getGraphqlUrlSuggestions = void 0;
|
|
4
|
+
const getLevenshteinDistance_1 = require("../getLevenshteinDistance/getLevenshteinDistance");
|
|
5
|
+
const getGraphqlUrlSuggestions = ({ url, graphqlPatternUrlMeaningfulStrings }) => {
|
|
6
|
+
// ✅ important: operationName is always second word in 'query' query param
|
|
7
|
+
const operationName = url.searchParams.get('query')?.split(' ')[1];
|
|
8
|
+
const actualUrlMeaningfulString = `${url.pathname}/${operationName}`;
|
|
9
|
+
const graphqlUrlSuggestions = graphqlPatternUrlMeaningfulStrings.reduce((acc, patternUrlMeaningfulString) => {
|
|
10
|
+
const distance = (0, getLevenshteinDistance_1.getLevenshteinDistance)(actualUrlMeaningfulString, patternUrlMeaningfulString);
|
|
11
|
+
const tolerance = Math.floor(patternUrlMeaningfulString.length / 2);
|
|
12
|
+
if (distance <= tolerance)
|
|
13
|
+
acc.push(patternUrlMeaningfulString);
|
|
14
|
+
return acc;
|
|
15
|
+
}, []);
|
|
16
|
+
return graphqlUrlSuggestions;
|
|
17
|
+
};
|
|
18
|
+
exports.getGraphqlUrlSuggestions = getGraphqlUrlSuggestions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getLevenshteinDistance: (a: string, b: string) => number;
|
|
1
|
+
export declare const getLevenshteinDistance: (a: string, b: string) => number;
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.getLevenshteinDistance = void 0;
|
|
5
|
-
const min = (d0, d1, d2, bx, ay) => d0 < d1 || d2 < d1 ? (d0 > d2 ? d2 + 1 : d0 + 1) : bx === ay ? d1 : d1 + 1;
|
|
6
|
-
const getLevenshteinDistance = (a, b) => {
|
|
7
|
-
if (a === b) {
|
|
8
|
-
return 0;
|
|
9
|
-
}
|
|
10
|
-
if (a.length > b.length) {
|
|
11
|
-
const tmp = a;
|
|
12
|
-
a = b;
|
|
13
|
-
b = tmp;
|
|
14
|
-
}
|
|
15
|
-
let la = a.length;
|
|
16
|
-
let lb = b.length;
|
|
17
|
-
while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {
|
|
18
|
-
la--;
|
|
19
|
-
lb--;
|
|
20
|
-
}
|
|
21
|
-
let offset = 0;
|
|
22
|
-
while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {
|
|
23
|
-
offset++;
|
|
24
|
-
}
|
|
25
|
-
la -= offset;
|
|
26
|
-
lb -= offset;
|
|
27
|
-
if (la === 0 || lb < 3) {
|
|
28
|
-
return lb;
|
|
29
|
-
}
|
|
30
|
-
let x = 0;
|
|
31
|
-
let y;
|
|
32
|
-
let d0;
|
|
33
|
-
let d1;
|
|
34
|
-
let d2;
|
|
35
|
-
let d3;
|
|
36
|
-
let dd = 0;
|
|
37
|
-
let dy;
|
|
38
|
-
let ay;
|
|
39
|
-
let bx0;
|
|
40
|
-
let bx1;
|
|
41
|
-
let bx2;
|
|
42
|
-
let bx3;
|
|
43
|
-
const vector = [];
|
|
44
|
-
for (y = 0; y < la; y++) {
|
|
45
|
-
vector.push(y + 1);
|
|
46
|
-
vector.push(a.charCodeAt(offset + y));
|
|
47
|
-
}
|
|
48
|
-
const len = vector.length - 1;
|
|
49
|
-
for (; x < lb - 3;) {
|
|
50
|
-
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
51
|
-
bx1 = b.charCodeAt(offset + (d1 = x + 1));
|
|
52
|
-
bx2 = b.charCodeAt(offset + (d2 = x + 2));
|
|
53
|
-
bx3 = b.charCodeAt(offset + (d3 = x + 3));
|
|
54
|
-
dd = x += 4;
|
|
55
|
-
for (y = 0; y < len; y += 2) {
|
|
56
|
-
dy = vector[y];
|
|
57
|
-
ay = vector[y + 1];
|
|
58
|
-
d0 = min(dy, d0, d1, bx0, ay);
|
|
59
|
-
d1 = min(d0, d1, d2, bx1, ay);
|
|
60
|
-
d2 = min(d1, d2, d3, bx2, ay);
|
|
61
|
-
dd = min(d2, d3, dd, bx3, ay);
|
|
62
|
-
vector[y] = dd;
|
|
63
|
-
d3 = d2;
|
|
64
|
-
d2 = d1;
|
|
65
|
-
d1 = d0;
|
|
66
|
-
d0 = dy;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
for (; x < lb;) {
|
|
70
|
-
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
71
|
-
dd = ++x;
|
|
72
|
-
for (y = 0; y < len; y += 2) {
|
|
73
|
-
dy = vector[y];
|
|
74
|
-
vector[y] = dd = min(dy, d0, dd, bx0, vector[y + 1]);
|
|
75
|
-
d0 = dy;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return dd;
|
|
79
|
-
};
|
|
80
|
-
exports.getLevenshteinDistance = getLevenshteinDistance;
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getLevenshteinDistance = void 0;
|
|
5
|
+
const min = (d0, d1, d2, bx, ay) => d0 < d1 || d2 < d1 ? (d0 > d2 ? d2 + 1 : d0 + 1) : bx === ay ? d1 : d1 + 1;
|
|
6
|
+
const getLevenshteinDistance = (a, b) => {
|
|
7
|
+
if (a === b) {
|
|
8
|
+
return 0;
|
|
9
|
+
}
|
|
10
|
+
if (a.length > b.length) {
|
|
11
|
+
const tmp = a;
|
|
12
|
+
a = b;
|
|
13
|
+
b = tmp;
|
|
14
|
+
}
|
|
15
|
+
let la = a.length;
|
|
16
|
+
let lb = b.length;
|
|
17
|
+
while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {
|
|
18
|
+
la--;
|
|
19
|
+
lb--;
|
|
20
|
+
}
|
|
21
|
+
let offset = 0;
|
|
22
|
+
while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {
|
|
23
|
+
offset++;
|
|
24
|
+
}
|
|
25
|
+
la -= offset;
|
|
26
|
+
lb -= offset;
|
|
27
|
+
if (la === 0 || lb < 3) {
|
|
28
|
+
return lb;
|
|
29
|
+
}
|
|
30
|
+
let x = 0;
|
|
31
|
+
let y;
|
|
32
|
+
let d0;
|
|
33
|
+
let d1;
|
|
34
|
+
let d2;
|
|
35
|
+
let d3;
|
|
36
|
+
let dd = 0;
|
|
37
|
+
let dy;
|
|
38
|
+
let ay;
|
|
39
|
+
let bx0;
|
|
40
|
+
let bx1;
|
|
41
|
+
let bx2;
|
|
42
|
+
let bx3;
|
|
43
|
+
const vector = [];
|
|
44
|
+
for (y = 0; y < la; y++) {
|
|
45
|
+
vector.push(y + 1);
|
|
46
|
+
vector.push(a.charCodeAt(offset + y));
|
|
47
|
+
}
|
|
48
|
+
const len = vector.length - 1;
|
|
49
|
+
for (; x < lb - 3;) {
|
|
50
|
+
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
51
|
+
bx1 = b.charCodeAt(offset + (d1 = x + 1));
|
|
52
|
+
bx2 = b.charCodeAt(offset + (d2 = x + 2));
|
|
53
|
+
bx3 = b.charCodeAt(offset + (d3 = x + 3));
|
|
54
|
+
dd = x += 4;
|
|
55
|
+
for (y = 0; y < len; y += 2) {
|
|
56
|
+
dy = vector[y];
|
|
57
|
+
ay = vector[y + 1];
|
|
58
|
+
d0 = min(dy, d0, d1, bx0, ay);
|
|
59
|
+
d1 = min(d0, d1, d2, bx1, ay);
|
|
60
|
+
d2 = min(d1, d2, d3, bx2, ay);
|
|
61
|
+
dd = min(d2, d3, dd, bx3, ay);
|
|
62
|
+
vector[y] = dd;
|
|
63
|
+
d3 = d2;
|
|
64
|
+
d2 = d1;
|
|
65
|
+
d1 = d0;
|
|
66
|
+
d0 = dy;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
for (; x < lb;) {
|
|
70
|
+
bx0 = b.charCodeAt(offset + (d0 = x));
|
|
71
|
+
dd = ++x;
|
|
72
|
+
for (y = 0; y < len; y += 2) {
|
|
73
|
+
dy = vector[y];
|
|
74
|
+
vector[y] = dd = min(dy, d0, dd, bx0, vector[y + 1]);
|
|
75
|
+
d0 = dy;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return dd;
|
|
79
|
+
};
|
|
80
|
+
exports.getLevenshteinDistance = getLevenshteinDistance;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
interface GetRestUrlSuggestionsParams {
|
|
2
|
-
url: URL;
|
|
3
|
-
patternUrls: string[];
|
|
4
|
-
}
|
|
5
|
-
export declare const getRestUrlSuggestions: ({ url, patternUrls }: GetRestUrlSuggestionsParams) => string[];
|
|
6
|
-
export {};
|
|
1
|
+
interface GetRestUrlSuggestionsParams {
|
|
2
|
+
url: URL;
|
|
3
|
+
patternUrls: string[];
|
|
4
|
+
}
|
|
5
|
+
export declare const getRestUrlSuggestions: ({ url, patternUrls }: GetRestUrlSuggestionsParams) => string[];
|
|
6
|
+
export {};
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRestUrlSuggestions = void 0;
|
|
4
|
-
const helpers_1 = require("
|
|
5
|
-
const getLevenshteinDistance_1 = require("../getLevenshteinDistance/getLevenshteinDistance");
|
|
6
|
-
const helpers_2 = require("./helpers");
|
|
7
|
-
const getRestUrlSuggestions = ({ url, patternUrls }) => {
|
|
8
|
-
const actualUrlParts = (0, helpers_1.getUrlParts)(url.pathname);
|
|
9
|
-
const restUrlSuggestions = patternUrls.reduce((acc, patternUrl) => {
|
|
10
|
-
const patternUrlParts = (0, helpers_1.getUrlParts)(patternUrl);
|
|
11
|
-
// ✅ important: ignore patterns with different amount of parts
|
|
12
|
-
if (patternUrlParts.length !== actualUrlParts.length)
|
|
13
|
-
return acc;
|
|
14
|
-
const actualUrlMeaningfulString = (0, helpers_2.getActualRestUrlMeaningfulString)(actualUrlParts, patternUrlParts);
|
|
15
|
-
const patternUrlMeaningfulString = (0, helpers_2.getPatternRestUrlMeaningfulString)(patternUrlParts);
|
|
16
|
-
const tolerance = Math.floor(patternUrlMeaningfulString.length / 2);
|
|
17
|
-
const distance = (0, getLevenshteinDistance_1.getLevenshteinDistance)(actualUrlMeaningfulString, patternUrlMeaningfulString);
|
|
18
|
-
if (distance <= tolerance) {
|
|
19
|
-
// replace param names in pattern with param values from actual url
|
|
20
|
-
const urlSuggestion = patternUrlParts
|
|
21
|
-
.map((_patternUrlPart, index) => {
|
|
22
|
-
if (patternUrlParts[index].startsWith(':'))
|
|
23
|
-
return actualUrlParts[index];
|
|
24
|
-
return patternUrlParts[index];
|
|
25
|
-
})
|
|
26
|
-
.join('/');
|
|
27
|
-
const suggestionWithQueryParams = `/${urlSuggestion}${url.search}`;
|
|
28
|
-
acc.push(suggestionWithQueryParams);
|
|
29
|
-
}
|
|
30
|
-
return acc;
|
|
31
|
-
}, []);
|
|
32
|
-
return restUrlSuggestions;
|
|
33
|
-
};
|
|
34
|
-
exports.getRestUrlSuggestions = getRestUrlSuggestions;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRestUrlSuggestions = void 0;
|
|
4
|
+
const helpers_1 = require("../../../../../utils/helpers");
|
|
5
|
+
const getLevenshteinDistance_1 = require("../getLevenshteinDistance/getLevenshteinDistance");
|
|
6
|
+
const helpers_2 = require("./helpers");
|
|
7
|
+
const getRestUrlSuggestions = ({ url, patternUrls }) => {
|
|
8
|
+
const actualUrlParts = (0, helpers_1.getUrlParts)(url.pathname);
|
|
9
|
+
const restUrlSuggestions = patternUrls.reduce((acc, patternUrl) => {
|
|
10
|
+
const patternUrlParts = (0, helpers_1.getUrlParts)(patternUrl);
|
|
11
|
+
// ✅ important: ignore patterns with different amount of parts
|
|
12
|
+
if (patternUrlParts.length !== actualUrlParts.length)
|
|
13
|
+
return acc;
|
|
14
|
+
const actualUrlMeaningfulString = (0, helpers_2.getActualRestUrlMeaningfulString)(actualUrlParts, patternUrlParts);
|
|
15
|
+
const patternUrlMeaningfulString = (0, helpers_2.getPatternRestUrlMeaningfulString)(patternUrlParts);
|
|
16
|
+
const tolerance = Math.floor(patternUrlMeaningfulString.length / 2);
|
|
17
|
+
const distance = (0, getLevenshteinDistance_1.getLevenshteinDistance)(actualUrlMeaningfulString, patternUrlMeaningfulString);
|
|
18
|
+
if (distance <= tolerance) {
|
|
19
|
+
// replace param names in pattern with param values from actual url
|
|
20
|
+
const urlSuggestion = patternUrlParts
|
|
21
|
+
.map((_patternUrlPart, index) => {
|
|
22
|
+
if (patternUrlParts[index].startsWith(':'))
|
|
23
|
+
return actualUrlParts[index];
|
|
24
|
+
return patternUrlParts[index];
|
|
25
|
+
})
|
|
26
|
+
.join('/');
|
|
27
|
+
const suggestionWithQueryParams = `/${urlSuggestion}${url.search}`;
|
|
28
|
+
acc.push(suggestionWithQueryParams);
|
|
29
|
+
}
|
|
30
|
+
return acc;
|
|
31
|
+
}, []);
|
|
32
|
+
return restUrlSuggestions;
|
|
33
|
+
};
|
|
34
|
+
exports.getRestUrlSuggestions = getRestUrlSuggestions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getActualRestUrlMeaningfulString: (actualUrlParts: string[], patternUrlParts: string[]) => string;
|
|
1
|
+
export declare const getActualRestUrlMeaningfulString: (actualUrlParts: string[], patternUrlParts: string[]) => string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getActualRestUrlMeaningfulString = void 0;
|
|
4
|
-
const getActualRestUrlMeaningfulString = (actualUrlParts, patternUrlParts) => actualUrlParts
|
|
5
|
-
.filter((_actualUrlPart, index) => !patternUrlParts[index].startsWith(':'))
|
|
6
|
-
.join('');
|
|
7
|
-
exports.getActualRestUrlMeaningfulString = getActualRestUrlMeaningfulString;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getActualRestUrlMeaningfulString = void 0;
|
|
4
|
+
const getActualRestUrlMeaningfulString = (actualUrlParts, patternUrlParts) => actualUrlParts
|
|
5
|
+
.filter((_actualUrlPart, index) => !patternUrlParts[index].startsWith(':'))
|
|
6
|
+
.join('');
|
|
7
|
+
exports.getActualRestUrlMeaningfulString = getActualRestUrlMeaningfulString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getPatternRestUrlMeaningfulString: (patternUrlParts: string[]) => string;
|
|
1
|
+
export declare const getPatternRestUrlMeaningfulString: (patternUrlParts: string[]) => string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPatternRestUrlMeaningfulString = void 0;
|
|
4
|
-
const getPatternRestUrlMeaningfulString = (patternUrlParts) => patternUrlParts.filter((urlPatternPart) => !urlPatternPart.startsWith(':')).join('');
|
|
5
|
-
exports.getPatternRestUrlMeaningfulString = getPatternRestUrlMeaningfulString;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPatternRestUrlMeaningfulString = void 0;
|
|
4
|
+
const getPatternRestUrlMeaningfulString = (patternUrlParts) => patternUrlParts.filter((urlPatternPart) => !urlPatternPart.startsWith(':')).join('');
|
|
5
|
+
exports.getPatternRestUrlMeaningfulString = getPatternRestUrlMeaningfulString;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString';
|
|
2
|
-
export * from './getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString';
|
|
1
|
+
export * from './getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString';
|
|
2
|
+
export * from './getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString';
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString"), exports);
|
|
18
|
-
__exportStar(require("./getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString"), exports);
|
|
18
|
+
__exportStar(require("./getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString"), exports);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./getGraphqlUrlSuggestions/getGraphqlUrlSuggestions"), exports);
|
|
18
|
+
__exportStar(require("./getLevenshteinDistance/getLevenshteinDistance"), exports);
|
|
19
|
+
__exportStar(require("./getRestUrlSuggestions/getRestUrlSuggestions"), exports);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { Express } from 'express';
|
|
2
|
-
import type { MockServerConfig } from '
|
|
3
|
-
interface NotFoundMiddlewareParams {
|
|
4
|
-
server: Express;
|
|
5
|
-
mockServerConfig: Pick<MockServerConfig, 'baseUrl' | 'rest' | 'graphql'>;
|
|
6
|
-
}
|
|
7
|
-
export declare const notFoundMiddleware: ({ server, mockServerConfig }: NotFoundMiddlewareParams) => void;
|
|
8
|
-
export {};
|
|
1
|
+
import type { Express } from 'express';
|
|
2
|
+
import type { MockServerConfig } from '../../../utils/types';
|
|
3
|
+
interface NotFoundMiddlewareParams {
|
|
4
|
+
server: Express;
|
|
5
|
+
mockServerConfig: Pick<MockServerConfig, 'baseUrl' | 'rest' | 'graphql'>;
|
|
6
|
+
}
|
|
7
|
+
export declare const notFoundMiddleware: ({ server, mockServerConfig }: NotFoundMiddlewareParams) => void;
|
|
8
|
+
export {};
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.notFoundMiddleware = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const notFoundMiddleware = ({ server, mockServerConfig }) => {
|
|
7
|
-
const { baseUrl: serverBaseUrl, rest, graphql } = mockServerConfig;
|
|
8
|
-
const operationNames = graphql?.configs.map(({ operationName }) => operationName) ?? [];
|
|
9
|
-
const graphqlPatternUrlMeaningfulStrings = Array.from(operationNames.reduce((acc, operationName) => {
|
|
10
|
-
if (typeof operationName === 'string')
|
|
11
|
-
acc.add(`${serverBaseUrl}${graphql?.baseUrl}/${operationName}`);
|
|
12
|
-
return acc;
|
|
13
|
-
}, new Set()));
|
|
14
|
-
const restPaths = rest?.configs.map(({ path }) => path) ?? [];
|
|
15
|
-
const patternUrls = Array.from(restPaths.reduce((acc, patternPath) => {
|
|
16
|
-
if (typeof patternPath === 'string')
|
|
17
|
-
acc.add(`${serverBaseUrl}${rest?.baseUrl}${patternPath}`);
|
|
18
|
-
return acc;
|
|
19
|
-
}, new Set()));
|
|
20
|
-
server.use((request, response) => {
|
|
21
|
-
const url = new URL(`${request.protocol}://${request.get('host')}${request.originalUrl}`);
|
|
22
|
-
let graphqlUrlSuggestions = [];
|
|
23
|
-
if (graphql) {
|
|
24
|
-
const graphqlQuery = (0,
|
|
25
|
-
if (graphqlQuery) {
|
|
26
|
-
graphqlUrlSuggestions = (0,
|
|
27
|
-
url,
|
|
28
|
-
graphqlPatternUrlMeaningfulStrings
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
let restUrlSuggestions = [];
|
|
33
|
-
if (rest) {
|
|
34
|
-
restUrlSuggestions = (0,
|
|
35
|
-
url,
|
|
36
|
-
patternUrls
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
response.status(404).render('notFound', {
|
|
40
|
-
requestMethod: request.method,
|
|
41
|
-
url: `${url.pathname}${url.search}`,
|
|
42
|
-
restUrlSuggestions,
|
|
43
|
-
graphqlUrlSuggestions
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
exports.notFoundMiddleware = notFoundMiddleware;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notFoundMiddleware = void 0;
|
|
4
|
+
const helpers_1 = require("../../../utils/helpers");
|
|
5
|
+
const helpers_2 = require("./helpers");
|
|
6
|
+
const notFoundMiddleware = ({ server, mockServerConfig }) => {
|
|
7
|
+
const { baseUrl: serverBaseUrl, rest, graphql } = mockServerConfig;
|
|
8
|
+
const operationNames = graphql?.configs.map(({ operationName }) => operationName) ?? [];
|
|
9
|
+
const graphqlPatternUrlMeaningfulStrings = Array.from(operationNames.reduce((acc, operationName) => {
|
|
10
|
+
if (typeof operationName === 'string')
|
|
11
|
+
acc.add(`${serverBaseUrl ?? ''}${graphql?.baseUrl ?? ''}/${operationName}`);
|
|
12
|
+
return acc;
|
|
13
|
+
}, new Set()));
|
|
14
|
+
const restPaths = rest?.configs.map(({ path }) => path) ?? [];
|
|
15
|
+
const patternUrls = Array.from(restPaths.reduce((acc, patternPath) => {
|
|
16
|
+
if (typeof patternPath === 'string')
|
|
17
|
+
acc.add(`${serverBaseUrl ?? ''}${rest?.baseUrl ?? ''}${patternPath}`);
|
|
18
|
+
return acc;
|
|
19
|
+
}, new Set()));
|
|
20
|
+
server.use((request, response) => {
|
|
21
|
+
const url = new URL(`${request.protocol}://${request.get('host')}${request.originalUrl}`);
|
|
22
|
+
let graphqlUrlSuggestions = [];
|
|
23
|
+
if (graphql) {
|
|
24
|
+
const graphqlQuery = (0, helpers_1.parseGraphQLRequest)(request);
|
|
25
|
+
if (graphqlQuery) {
|
|
26
|
+
graphqlUrlSuggestions = (0, helpers_2.getGraphqlUrlSuggestions)({
|
|
27
|
+
url,
|
|
28
|
+
graphqlPatternUrlMeaningfulStrings
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
let restUrlSuggestions = [];
|
|
33
|
+
if (rest) {
|
|
34
|
+
restUrlSuggestions = (0, helpers_2.getRestUrlSuggestions)({
|
|
35
|
+
url,
|
|
36
|
+
patternUrls
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
response.status(404).render('notFound', {
|
|
40
|
+
requestMethod: request.method,
|
|
41
|
+
url: `${url.pathname}${url.search}`,
|
|
42
|
+
restUrlSuggestions,
|
|
43
|
+
graphqlUrlSuggestions
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
exports.notFoundMiddleware = notFoundMiddleware;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { Express } from 'express';
|
|
2
|
-
import type { BaseUrl, StaticPath } from '
|
|
3
|
-
export declare const staticMiddleware: (server: Express, baseUrl: BaseUrl, staticPath: StaticPath) => void;
|
|
1
|
+
import type { Express } from 'express';
|
|
2
|
+
import type { BaseUrl, StaticPath } from '../../../utils/types';
|
|
3
|
+
export declare const staticMiddleware: (server: Express, baseUrl: BaseUrl, staticPath: StaticPath) => void;
|