mock-config-server 2.0.2 → 2.2.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.
Files changed (141) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +47 -3
  3. package/dist/bin/{mock-config-server.d.ts → bin.d.ts} +2 -2
  4. package/dist/bin/bin.js +8 -0
  5. package/dist/bin/cli.d.ts +1 -0
  6. package/dist/bin/cli.js +36 -0
  7. package/dist/bin/{resolveExportsFromSourceCode.d.ts → resolveExportsFromSourceCode/resolveExportsFromSourceCode.d.ts} +1 -1
  8. package/dist/bin/{resolveExportsFromSourceCode.js → resolveExportsFromSourceCode/resolveExportsFromSourceCode.js} +11 -11
  9. package/dist/bin/start.d.ts +3 -0
  10. package/dist/bin/{mock-config-server.js → start.js} +73 -67
  11. package/dist/bin/validateMockServerConfig/validateBaseUrl/validateBaseUrl.d.ts +1 -1
  12. package/dist/bin/validateMockServerConfig/validateBaseUrl/validateBaseUrl.js +12 -12
  13. package/dist/bin/validateMockServerConfig/validateCors/validateCors.d.ts +1 -1
  14. package/dist/bin/validateMockServerConfig/validateCors/validateCors.js +82 -82
  15. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateGraphqlConfig.d.ts +1 -1
  16. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateGraphqlConfig.js +48 -48
  17. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateRoutes/validateRoutes.d.ts +2 -2
  18. package/dist/bin/validateMockServerConfig/validateGraphqlConfig/validateRoutes/validateRoutes.js +71 -71
  19. package/dist/bin/validateMockServerConfig/validateInterceptors/validateInterceptors.d.ts +1 -1
  20. package/dist/bin/validateMockServerConfig/validateInterceptors/validateInterceptors.js +21 -21
  21. package/dist/bin/validateMockServerConfig/validateMockServerConfig.d.ts +2 -1
  22. package/dist/bin/validateMockServerConfig/validateMockServerConfig.js +30 -34
  23. package/dist/bin/validateMockServerConfig/validatePort/validatePort.d.ts +1 -1
  24. package/dist/bin/validateMockServerConfig/validatePort/validatePort.js +9 -9
  25. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRestConfig.d.ts +1 -1
  26. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRestConfig.js +52 -52
  27. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRoutes/validateRoutes.d.ts +2 -2
  28. package/dist/bin/validateMockServerConfig/validateRestConfig/validateRoutes/validateRoutes.js +105 -104
  29. package/dist/bin/validateMockServerConfig/validateStaticPath/validateStaticPath.d.ts +1 -1
  30. package/dist/bin/validateMockServerConfig/validateStaticPath/validateStaticPath.js +44 -44
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +17 -17
  33. package/dist/src/{graphql → core/graphql}/createGraphQLRoutes/createGraphQLRoutes.d.ts +3 -3
  34. package/dist/src/{graphql → core/graphql}/createGraphQLRoutes/createGraphQLRoutes.js +76 -73
  35. package/dist/src/core/graphql/createGraphQLRoutes/helpers/index.d.ts +1 -0
  36. package/dist/src/{notFound/urlSuggestions → core/graphql/createGraphQLRoutes/helpers}/index.js +17 -18
  37. package/dist/src/{graphql → core/graphql/createGraphQLRoutes/helpers}/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.d.ts +2 -2
  38. package/dist/src/{graphql → core/graphql/createGraphQLRoutes/helpers}/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js +28 -28
  39. package/dist/src/core/graphql/index.d.ts +1 -0
  40. package/dist/src/{notFound/urlSuggestions/getGraphqlUrlSuggestions → core/graphql}/index.js +17 -17
  41. package/dist/src/{cors → core/middlewares}/corsMiddleware/corsMiddleware.d.ts +3 -3
  42. package/dist/src/{cors → core/middlewares}/corsMiddleware/corsMiddleware.js +44 -44
  43. package/dist/src/{cors/getOrigins → core/middlewares/corsMiddleware/helpers/getAllowedOrigins}/getAllowedOrigins.d.ts +2 -2
  44. package/dist/src/{cors/getOrigins → core/middlewares/corsMiddleware/helpers/getAllowedOrigins}/getAllowedOrigins.js +13 -13
  45. package/dist/src/core/middlewares/corsMiddleware/helpers/index.d.ts +1 -0
  46. package/dist/src/{notFound/urlSuggestions/getRestUrlSuggestions → core/middlewares/corsMiddleware/helpers}/index.js +17 -17
  47. package/dist/src/core/middlewares/index.d.ts +4 -0
  48. package/dist/src/core/middlewares/index.js +20 -0
  49. package/dist/src/{cors → core/middlewares}/noCorsMiddleware/noCorsMiddleware.d.ts +2 -2
  50. package/dist/src/{cors → core/middlewares}/noCorsMiddleware/noCorsMiddleware.js +24 -20
  51. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.d.ts +6 -6
  52. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.js +18 -18
  53. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getLevenshteinDistance/getLevenshteinDistance.d.ts +1 -1
  54. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getLevenshteinDistance/getLevenshteinDistance.js +80 -80
  55. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/getRestUrlSuggestions.d.ts +6 -6
  56. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/getRestUrlSuggestions.js +34 -34
  57. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.d.ts +1 -1
  58. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.js +7 -7
  59. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.d.ts +1 -1
  60. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.js +5 -5
  61. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/index.d.ts +2 -2
  62. package/dist/src/{notFound/urlSuggestions → core/middlewares/notFoundMiddleware/helpers}/getRestUrlSuggestions/helpers/index.js +18 -18
  63. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.d.ts +3 -0
  64. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.js +19 -0
  65. package/dist/src/{notFound → core/middlewares/notFoundMiddleware}/notFoundMiddleware.d.ts +8 -8
  66. package/dist/src/{notFound → core/middlewares/notFoundMiddleware}/notFoundMiddleware.js +47 -47
  67. package/dist/src/{static → core/middlewares}/staticMiddleware/staticMiddleware.d.ts +3 -3
  68. package/dist/src/{static → core/middlewares}/staticMiddleware/staticMiddleware.js +30 -30
  69. package/dist/src/{rest → core/rest}/createRestRoutes/createRestRoutes.d.ts +3 -3
  70. package/dist/src/{rest → core/rest}/createRestRoutes/createRestRoutes.js +46 -41
  71. package/dist/src/core/rest/createRestRoutes/helpers/index.d.ts +1 -0
  72. package/dist/src/core/rest/createRestRoutes/helpers/index.js +17 -0
  73. package/dist/src/{rest → core/rest/createRestRoutes/helpers}/prepareRestRequestConfigs/prepareRestRequestConfigs.d.ts +2 -2
  74. package/dist/src/{rest → core/rest/createRestRoutes/helpers}/prepareRestRequestConfigs/prepareRestRequestConfigs.js +30 -30
  75. package/dist/src/core/rest/index.d.ts +1 -0
  76. package/dist/src/core/rest/index.js +17 -0
  77. package/dist/src/index.d.ts +3 -3
  78. package/dist/src/index.js +19 -19
  79. package/dist/src/server/createMockServer/createMockServer.d.ts +3 -3
  80. package/dist/src/server/createMockServer/createMockServer.js +46 -49
  81. package/dist/src/server/index.d.ts +2 -0
  82. package/dist/src/server/index.js +18 -0
  83. package/dist/src/server/startMockServer/startMockServer.d.ts +2 -2
  84. package/dist/src/server/startMockServer/startMockServer.js +17 -17
  85. package/dist/src/utils/constants/appPath.d.ts +1 -1
  86. package/dist/src/utils/constants/appPath.js +4 -4
  87. package/dist/src/utils/constants/default.d.ts +11 -11
  88. package/dist/src/utils/constants/default.js +14 -14
  89. package/dist/src/utils/constants/index.d.ts +2 -2
  90. package/dist/src/utils/constants/index.js +18 -18
  91. package/dist/src/utils/helpers/config/index.d.ts +1 -0
  92. package/dist/src/utils/helpers/config/index.js +17 -0
  93. package/dist/src/{configs → utils/helpers/config}/isEntitiesEqual/isEntityValuesEqual.d.ts +1 -1
  94. package/dist/src/{configs → utils/helpers/config}/isEntitiesEqual/isEntityValuesEqual.js +29 -29
  95. package/dist/src/{graphql → utils/helpers/graphql}/getGraphQLInput/getGraphQLInput.d.ts +3 -3
  96. package/dist/src/{graphql → utils/helpers/graphql}/getGraphQLInput/getGraphQLInput.js +21 -21
  97. package/dist/src/utils/helpers/graphql/index.d.ts +3 -0
  98. package/dist/src/utils/helpers/graphql/index.js +19 -0
  99. package/dist/src/{graphql → utils/helpers/graphql}/parseGraphQLRequest/parseGraphQLRequest.d.ts +3 -3
  100. package/dist/src/{graphql → utils/helpers/graphql}/parseGraphQLRequest/parseGraphQLRequest.js +12 -12
  101. package/dist/src/{graphql → utils/helpers/graphql}/parseQuery/parseQuery.d.ts +7 -7
  102. package/dist/src/{graphql → utils/helpers/graphql}/parseQuery/parseQuery.js +21 -21
  103. package/dist/src/utils/helpers/index.d.ts +6 -3
  104. package/dist/src/utils/helpers/index.js +22 -19
  105. package/dist/src/{routes → utils/helpers/interceptors}/callRequestInterceptors/callRequestInterceptors.d.ts +12 -12
  106. package/dist/src/{routes → utils/helpers/interceptors}/callRequestInterceptors/callRequestInterceptors.js +13 -13
  107. package/dist/src/{routes → utils/helpers/interceptors}/callResponseInterceptors/callResponseInterceptors.d.ts +14 -14
  108. package/dist/src/{routes → utils/helpers/interceptors}/callResponseInterceptors/callResponseInterceptors.js +55 -31
  109. package/dist/src/utils/helpers/interceptors/index.d.ts +2 -0
  110. package/dist/src/utils/helpers/interceptors/index.js +18 -0
  111. package/dist/src/utils/helpers/{isPlainObject.d.ts → isPlainObject/isPlainObject.d.ts} +1 -1
  112. package/dist/src/utils/helpers/{isPlainObject.js → isPlainObject/isPlainObject.js} +5 -5
  113. package/dist/src/utils/helpers/sleep.d.ts +1 -1
  114. package/dist/src/utils/helpers/sleep.js +7 -7
  115. package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.d.ts +1 -1
  116. package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.js +8 -8
  117. package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.d.ts +1 -1
  118. package/dist/src/utils/helpers/url/getUrlParts/getUrlParts.js +6 -6
  119. package/dist/src/utils/helpers/url/index.d.ts +4 -4
  120. package/dist/src/utils/helpers/url/index.js +20 -20
  121. package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.d.ts +1 -1
  122. package/dist/src/utils/helpers/url/removeLeadingAndTrailingSlashes/removeLeadingAndTrailingSlashes.js +5 -5
  123. package/dist/src/utils/helpers/url/urlJoin/urlJoin.d.ts +1 -1
  124. package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +14 -14
  125. package/dist/src/utils/types/graphql.d.ts +34 -5
  126. package/dist/src/utils/types/graphql.js +2 -2
  127. package/dist/src/utils/types/index.d.ts +5 -4
  128. package/dist/src/utils/types/index.js +21 -20
  129. package/dist/src/utils/types/interceptors.d.ts +21 -15
  130. package/dist/src/utils/types/interceptors.js +2 -2
  131. package/dist/src/utils/types/rest.d.ts +38 -0
  132. package/dist/src/utils/types/{configs.js → rest.js} +2 -2
  133. package/dist/src/utils/types/server.d.ts +37 -32
  134. package/dist/src/utils/types/server.js +2 -2
  135. package/dist/src/utils/types/values.d.ts +9 -0
  136. package/dist/src/utils/types/values.js +2 -0
  137. package/package.json +22 -18
  138. package/dist/src/notFound/urlSuggestions/getGraphqlUrlSuggestions/index.d.ts +0 -1
  139. package/dist/src/notFound/urlSuggestions/getRestUrlSuggestions/index.d.ts +0 -1
  140. package/dist/src/notFound/urlSuggestions/index.d.ts +0 -2
  141. package/dist/src/utils/types/configs.d.ts +0 -63
@@ -1 +1 @@
1
- export declare const urlJoin: (...paths: string[]) => string;
1
+ export declare const urlJoin: (...paths: string[]) => string;
@@ -1,14 +1,14 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.urlJoin = void 0;
7
- const os_1 = __importDefault(require("os"));
8
- const path_1 = __importDefault(require("path"));
9
- const convertWin32PathToUnix_1 = require("../convertWin32PathToUnix/convertWin32PathToUnix");
10
- const urlJoin = (...paths) => {
11
- const pathsToJoin = os_1.default.platform() === 'win32' ? paths.map((path) => (0, convertWin32PathToUnix_1.convertWin32PathToUnix)(path)) : paths;
12
- return path_1.default.posix.join(...pathsToJoin);
13
- };
14
- exports.urlJoin = urlJoin;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.urlJoin = void 0;
7
+ const os_1 = __importDefault(require("os"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const convertWin32PathToUnix_1 = require("../convertWin32PathToUnix/convertWin32PathToUnix");
10
+ const urlJoin = (...paths) => {
11
+ const pathsToJoin = os_1.default.platform() === 'win32' ? paths.map((path) => (0, convertWin32PathToUnix_1.convertWin32PathToUnix)(path)) : paths;
12
+ return path_1.default.posix.join(...pathsToJoin);
13
+ };
14
+ exports.urlJoin = urlJoin;
@@ -1,5 +1,34 @@
1
- export type GraphQLVariables = Record<string, any>;
2
- export interface GraphQLInput {
3
- query?: string;
4
- variables: GraphQLVariables;
5
- }
1
+ import type { Request } from 'express';
2
+ import type { Interceptors } from './interceptors';
3
+ import type { Data, PlainObject, VariablesValue } from './values';
4
+ export type GraphQLVariables = Record<string, any>;
5
+ export interface GraphQLInput {
6
+ query?: string;
7
+ variables: GraphQLVariables;
8
+ }
9
+ export type GraphQLEntities = 'headers' | 'query' | 'variables';
10
+ export type GraphQLEntitiesValues = {
11
+ [Key in GraphQLEntities]: Key extends 'variables' ? VariablesValue : PlainObject;
12
+ };
13
+ export interface GraphQLOperationsEntities {
14
+ query: GraphQLEntities;
15
+ mutation: GraphQLEntities;
16
+ }
17
+ export type GraphQLOperationType = 'query' | 'mutation';
18
+ export type GraphQLOperationName = string | RegExp;
19
+ export type GraphQLRouteConfigEntities = {
20
+ [Key in GraphQLOperationsEntities[GraphQLOperationType]]?: GraphQLEntitiesValues[Key];
21
+ };
22
+ export interface GraphQLRouteConfig<Entities extends GraphQLRouteConfigEntities = GraphQLRouteConfigEntities> {
23
+ entities?: Entities;
24
+ data: ((request: Request, entities: Entities) => Data | Promise<Data>) | Data;
25
+ interceptors?: Pick<Interceptors, 'response'>;
26
+ }
27
+ export interface GraphQLQuery {
28
+ operationType: GraphQLOperationType;
29
+ operationName: GraphQLOperationName;
30
+ }
31
+ export interface GraphQLRequestConfig extends GraphQLQuery {
32
+ routes: GraphQLRouteConfig[];
33
+ interceptors?: Interceptors;
34
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,5 @@
1
- export * from './configs';
2
- export * from './graphql';
3
- export * from './interceptors';
4
- export * from './server';
1
+ export * from './graphql';
2
+ export * from './interceptors';
3
+ export * from './rest';
4
+ export * from './server';
5
+ export * from './values';
@@ -1,20 +1,21 @@
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("./configs"), exports);
18
- __exportStar(require("./graphql"), exports);
19
- __exportStar(require("./interceptors"), exports);
20
- __exportStar(require("./server"), 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("./graphql"), exports);
18
+ __exportStar(require("./interceptors"), exports);
19
+ __exportStar(require("./rest"), exports);
20
+ __exportStar(require("./server"), exports);
21
+ __exportStar(require("./values"), exports);
@@ -1,15 +1,21 @@
1
- export interface InterceptorRequestParams {
2
- request: import('express').Request;
3
- }
4
- export type InterceptorRequest = (params: InterceptorRequestParams) => void;
5
- export interface InterceptorResponseParams {
6
- request: import('express').Request;
7
- response: import('express').Response;
8
- setDelay: (delay: number) => Promise<void>;
9
- setStatusCode: (statusCode: number) => void;
10
- }
11
- export type InterceptorResponse = <Data>(data: Data, params: InterceptorResponseParams) => any;
12
- export interface Interceptors {
13
- request?: InterceptorRequest;
14
- response?: InterceptorResponse;
15
- }
1
+ import type { CookieOptions, Request, Response } from 'express';
2
+ export interface InterceptorRequestParams {
3
+ request: Request;
4
+ }
5
+ export type InterceptorRequest = (params: InterceptorRequestParams) => void;
6
+ export interface InterceptorResponseParams {
7
+ request: Request;
8
+ response: Response;
9
+ setDelay: (delay: number) => Promise<void>;
10
+ setStatusCode: (statusCode: number) => void;
11
+ setHeader: (field: string, value?: string | string[]) => void;
12
+ appendHeader: (field: string, value?: string[] | string) => void;
13
+ setCookie: (name: string, value: string, options?: CookieOptions) => void;
14
+ clearCookie: (name: string, options?: CookieOptions) => void;
15
+ attachment: (filename: string) => void;
16
+ }
17
+ export type InterceptorResponse<DataType extends any = any> = (data: DataType, params: InterceptorResponseParams) => any;
18
+ export interface Interceptors {
19
+ request?: InterceptorRequest;
20
+ response?: InterceptorResponse;
21
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,38 @@
1
+ import type { Request } from 'express';
2
+ import type { Interceptors } from './interceptors';
3
+ import type { BodyValue, Data, HeadersValue, ParamsValue, QueryValue } from './values';
4
+ export type RestEntities = 'headers' | 'query' | 'params' | 'body';
5
+ export type RestEntitiesValue = BodyValue | QueryValue | HeadersValue | ParamsValue;
6
+ export type RestEntitiesValues = {
7
+ [Key in RestEntities]: Key extends 'body' ? BodyValue : Key extends 'query' ? QueryValue : Key extends 'headers' ? HeadersValue : Key extends 'params' ? ParamsValue : never;
8
+ };
9
+ export interface RestMethodsEntities {
10
+ get: Extract<RestEntities, 'headers' | 'query' | 'params'>;
11
+ delete: Extract<RestEntities, 'headers' | 'query' | 'params'>;
12
+ post: RestEntities;
13
+ put: RestEntities;
14
+ patch: RestEntities;
15
+ options: Extract<RestEntities, 'headers' | 'query' | 'params'>;
16
+ }
17
+ export type RestRouteConfigEntities<Method extends RestMethod> = {
18
+ [Key in RestMethodsEntities[Method]]?: RestEntitiesValues[Key];
19
+ };
20
+ export interface RestRouteConfig<Method extends RestMethod, Entities extends RestRouteConfigEntities<Method> = RestRouteConfigEntities<Method>> {
21
+ entities?: Entities;
22
+ data: ((request: Request, entities: Entities) => Data | Promise<Data>) | Data;
23
+ interceptors?: Pick<Interceptors, 'response'>;
24
+ }
25
+ export type RestMethod = 'get' | 'post' | 'delete' | 'put' | 'patch' | 'options';
26
+ export interface BaseRestRequestConfig<Method extends RestMethod> {
27
+ path: `/${string}` | RegExp;
28
+ method: Method;
29
+ routes: RestRouteConfig<Method>[];
30
+ interceptors?: Interceptors;
31
+ }
32
+ export type RestGetRequestConfig = BaseRestRequestConfig<'get'>;
33
+ export type RestPostRequestConfig = BaseRestRequestConfig<'post'>;
34
+ export type RestPutRequestConfig = BaseRestRequestConfig<'put'>;
35
+ export type RestDeleteRequestConfig = BaseRestRequestConfig<'delete'>;
36
+ export type RestPatchRequestConfig = BaseRestRequestConfig<'patch'>;
37
+ export type RestOptionsRequestConfig = BaseRestRequestConfig<'options'>;
38
+ export type RestRequestConfig = RestGetRequestConfig | RestPostRequestConfig | RestPutRequestConfig | RestDeleteRequestConfig | RestPatchRequestConfig | RestOptionsRequestConfig;
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,32 +1,37 @@
1
- export type StaticPathObject = {
2
- prefix: `/${string}`;
3
- path: `/${string}`;
4
- };
5
- export type StaticPath = `/${string}` | StaticPathObject | (StaticPathObject | `/${string}`)[];
6
- export type CorsHeader = string;
7
- export type CorsOrigin = string | RegExp | (RegExp | string)[];
8
- export type Cors = {
9
- origin: CorsOrigin | ((request: import('express').Request) => Promise<CorsOrigin> | CorsOrigin);
10
- methods?: Uppercase<import('./configs').RestMethod>[];
11
- allowedHeaders?: CorsHeader[];
12
- exposedHeaders?: CorsHeader[];
13
- credentials?: boolean;
14
- maxAge?: number;
15
- };
16
- export type Port = number;
17
- export type BaseUrl = `/${string}`;
18
- export interface MockServerConfig {
19
- baseUrl?: BaseUrl;
20
- rest?: {
21
- baseUrl?: BaseUrl;
22
- configs: import('./configs').RestRequestConfig[];
23
- };
24
- graphql?: {
25
- baseUrl?: BaseUrl;
26
- configs: import('./configs').GraphQLRequestConfig[];
27
- };
28
- port?: Port;
29
- staticPath?: StaticPath;
30
- interceptors?: import('./interceptors').Interceptors;
31
- cors?: Cors;
32
- }
1
+ import type { Request } from 'express';
2
+ import type { GraphQLRequestConfig } from './graphql';
3
+ import type { Interceptors } from './interceptors';
4
+ import type { RestMethod, RestRequestConfig } from './rest';
5
+ export type StaticPathObject = {
6
+ prefix: `/${string}`;
7
+ path: `/${string}`;
8
+ };
9
+ export type StaticPath = `/${string}` | StaticPathObject | (StaticPathObject | `/${string}`)[];
10
+ export type CorsHeader = string;
11
+ export type CorsOrigin = string | RegExp | (RegExp | string)[];
12
+ export type Cors = {
13
+ origin: CorsOrigin | ((request: Request) => Promise<CorsOrigin> | CorsOrigin);
14
+ methods?: Uppercase<RestMethod>[];
15
+ allowedHeaders?: CorsHeader[];
16
+ exposedHeaders?: CorsHeader[];
17
+ credentials?: boolean;
18
+ maxAge?: number;
19
+ };
20
+ export type Port = number;
21
+ export type BaseUrl = `/${string}`;
22
+ export interface MockServerConfig {
23
+ baseUrl?: BaseUrl;
24
+ rest?: {
25
+ baseUrl?: BaseUrl;
26
+ configs: RestRequestConfig[];
27
+ };
28
+ graphql?: {
29
+ baseUrl?: BaseUrl;
30
+ configs: GraphQLRequestConfig[];
31
+ };
32
+ port?: Port;
33
+ staticPath?: StaticPath;
34
+ interceptors?: Interceptors;
35
+ cors?: Cors;
36
+ }
37
+ export type MockServerConfigArgv = Partial<Pick<MockServerConfig, 'baseUrl' | 'port' | 'staticPath'>>;
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import type { ParsedQs } from 'qs';
2
+ export type PlainObject = Record<string, any>;
3
+ export type PlainFunction = (...args: any[]) => any;
4
+ export type BodyValue = any;
5
+ export type VariablesValue = any;
6
+ export type QueryValue = ParsedQs;
7
+ export type HeadersValue = Record<string, string>;
8
+ export type ParamsValue = Record<string, string>;
9
+ export type Data = boolean | number | string | any[] | Record<any, any> | null | undefined;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mock-config-server",
3
- "version": "2.0.2",
3
+ "version": "2.2.0",
4
4
  "description": "Tool that easily and quickly imitates server operation, create full fake api in few steps",
5
5
  "author": {
6
6
  "name": "SIBERIA CAN CODE 🧊",
@@ -20,37 +20,39 @@
20
20
  "url": "https://github.com/RiceWithMeat"
21
21
  }
22
22
  ],
23
- "license": "ISC",
23
+ "license": "MIT",
24
24
  "main": "./dist/index.js",
25
25
  "types": "./dist/index.d.ts",
26
26
  "bin": {
27
- "mock-config-server": "dist/bin/mock-config-server.js"
27
+ "mock-config-server": "dist/bin/bin.js",
28
+ "mcs": "dist/bin/bin.js"
28
29
  },
29
30
  "files": [
30
- "dist/**/*"
31
+ "dist"
31
32
  ],
32
33
  "engines": {
33
34
  "node": ">=14"
34
35
  },
35
36
  "scripts": {
36
- "build": "shx rm -rf dist && tsc -p tsconfig.production.json && shx cp -R src/static/views dist/src/static",
37
- "prepare": "yarn build",
37
+ "prepare": "husky install",
38
+ "build": "shx rm -rf dist && tsc -p tsconfig.production.json && tsc-alias -p tsconfig.production.json && shx cp -R src/static dist/src/static",
39
+ "start": "yarn build && node ./dist/bin/bin.js",
40
+ "dev": "nodemon --watch src --watch bin --watch mock-server.config.* -e js,ts,ejs --exec \"yarn start\"",
38
41
  "test": "jest",
42
+ "type": "tsc --noEmit",
39
43
  "lint": "eslint . --ext ts --no-error-on-unmatched-pattern",
40
- "format": "prettier --write '**/*.ts'"
44
+ "format": "prettier --write {src,bin}/**/*.ts",
45
+ "pretty": "yarn type && yarn format && yarn lint --fix"
41
46
  },
42
47
  "lint-staged": {
43
48
  "*.js": "yarn format",
44
- "*.ts": [
45
- "yarn format",
46
- "yarn lint --fix",
47
- "git add *"
48
- ]
49
+ "*.ts": "yarn pretty"
49
50
  },
50
51
  "dependencies": {
51
52
  "@types/body-parser": "^1.19.2",
52
53
  "@types/express": "^4.17.17",
53
54
  "@types/flat": "^5.0.2",
55
+ "@types/yargs": "^17.0.24",
54
56
  "ansi-colors": "^4.1.3",
55
57
  "body-parser": "^1.20.0",
56
58
  "ejs": "^3.1.8",
@@ -58,21 +60,22 @@
58
60
  "express": "^4.18.1",
59
61
  "flat": "^5.0.2",
60
62
  "graphql": "^16.6.0",
61
- "shx": "^0.3.4"
63
+ "please-upgrade-node": "^3.2.0",
64
+ "shx": "^0.3.4",
65
+ "yargs": "^17.7.1"
62
66
  },
63
67
  "devDependencies": {
64
68
  "@types/jest": "^29.4.0",
65
69
  "@types/supertest": "^2.0.12",
66
- "@typescript-eslint/eslint-plugin": "^5.51.0",
67
- "@typescript-eslint/parser": "^5.51.0",
68
- "eslint": "^8.34.0",
70
+ "@typescript-eslint/eslint-plugin": "^5.54.1",
71
+ "@typescript-eslint/parser": "^5.55.0",
72
+ "eslint": "^8.35.0",
69
73
  "eslint-config-airbnb": "^19.0.4",
70
74
  "eslint-config-airbnb-typescript": "^17.0.0",
71
- "eslint-config-prettier": "^8.5.0",
75
+ "eslint-config-prettier": "^8.7.0",
72
76
  "eslint-import-resolver-typescript": "^3.4.1",
73
77
  "eslint-plugin-import": "^2.27.5",
74
78
  "eslint-plugin-prettier": "^4.2.1",
75
- "eslint-plugin-simple-import-sort": "^10.0.0",
76
79
  "husky": "^8.0.1",
77
80
  "jest": "^29.4.2",
78
81
  "lint-staged": "^13.1.1",
@@ -80,6 +83,7 @@
80
83
  "prettier": "^2.8.3",
81
84
  "supertest": "^6.3.3",
82
85
  "ts-jest": "^29.0.3",
86
+ "tsc-alias": "^1.8.5",
83
87
  "typescript": "^4.9.5"
84
88
  },
85
89
  "homepage": "https://github.com/siberiacancode/mock-config-server",
@@ -1 +0,0 @@
1
- export * from './getGraphqlUrlSuggestions';
@@ -1 +0,0 @@
1
- export * from './getRestUrlSuggestions';
@@ -1,2 +0,0 @@
1
- export * from './getGraphqlUrlSuggestions';
2
- export * from './getRestUrlSuggestions';
@@ -1,63 +0,0 @@
1
- export type PlainObject = Record<string, string | number>;
2
- export type PlainFunction = (...args: any[]) => any;
3
- export type BodyValue = any;
4
- export type VariablesValue = any;
5
- export type QueryValue = Record<string, string | string[]>;
6
- export type HeadersOrParamsValue = Record<string, string>;
7
- export type RestEntities = 'headers' | 'query' | 'params' | 'body';
8
- export type RestEntitiesValue = BodyValue | QueryValue | HeadersOrParamsValue;
9
- export type RestEntitiesValues = {
10
- [Key in RestEntities]: Key extends 'body' ? BodyValue : Key extends 'query' ? QueryValue : Key extends 'headers' | 'params' ? HeadersOrParamsValue : never;
11
- };
12
- export interface RestMethodsEntities {
13
- get: Extract<RestEntities, 'headers' | 'query' | 'params'>;
14
- delete: Extract<RestEntities, 'headers' | 'query' | 'params'>;
15
- post: RestEntities;
16
- put: RestEntities;
17
- patch: RestEntities;
18
- }
19
- export interface RestRouteConfig<Method extends RestMethod> {
20
- entities?: {
21
- [Key in RestMethodsEntities[Method]]?: RestEntitiesValues[Key];
22
- };
23
- data: any;
24
- interceptors?: Pick<import('./interceptors').Interceptors, 'response'>;
25
- }
26
- export type RestMethod = 'get' | 'post' | 'delete' | 'put' | 'patch';
27
- export interface BaseRestRequestConfig<Method extends RestMethod> {
28
- path: `/${string}` | RegExp;
29
- method: Method;
30
- routes: RestRouteConfig<Method>[];
31
- interceptors?: import('./interceptors').Interceptors;
32
- }
33
- export type RestGetRequestConfig = BaseRestRequestConfig<'get'>;
34
- export type RestPostRequestConfig = BaseRestRequestConfig<'post'>;
35
- export type RestPutRequestConfig = BaseRestRequestConfig<'put'>;
36
- export type RestDeleteRequestConfig = BaseRestRequestConfig<'delete'>;
37
- export type RestPatchRequestConfig = BaseRestRequestConfig<'patch'>;
38
- export type RestRequestConfig = RestGetRequestConfig | RestPostRequestConfig | RestPutRequestConfig | RestDeleteRequestConfig | RestPatchRequestConfig;
39
- export type GraphQLEntities = 'headers' | 'query' | 'variables';
40
- export type GraphQLEntitiesValues = {
41
- [Key in GraphQLEntities]: Key extends 'variables' ? VariablesValue : PlainObject;
42
- };
43
- export interface GraphQLOperationsEntities {
44
- query: GraphQLEntities;
45
- mutation: GraphQLEntities;
46
- }
47
- export type GraphQLOperationType = 'query' | 'mutation';
48
- export type GraphQLOperationName = string | RegExp;
49
- export interface GraphQLRouteConfig {
50
- entities?: {
51
- [Key in GraphQLOperationsEntities[GraphQLOperationType]]?: GraphQLEntitiesValues[Key];
52
- };
53
- data: any;
54
- interceptors?: Pick<import('./interceptors').Interceptors, 'response'>;
55
- }
56
- export interface GraphQLQuery {
57
- operationType: GraphQLOperationType;
58
- operationName: GraphQLOperationName;
59
- }
60
- export interface GraphQLRequestConfig extends GraphQLQuery {
61
- routes: GraphQLRouteConfig[];
62
- interceptors?: import('./interceptors').Interceptors;
63
- }