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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 siberiacancode
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -58,18 +58,20 @@ Start **🎉 Mock Config Server**
58
58
 
59
59
  ```bash
60
60
  $ npx mock-config-server
61
-
62
- # 🎉 Mock Config Server is running at http://localhost:31299
63
61
  ```
64
62
 
63
+ > If the package is already installed you can use short command `mcs`
64
+
65
65
  ## 🎭 Parameters for mock-server.config.(js|ts)
66
66
 
67
67
  - `rest?` Rest configs for mock requests
68
68
  - `baseUrl?` {string} part of the url that will be substituted at the beginning of rest request url (default: `'/'`)
69
69
  - `configs` {Array<RestRequestConfig>} configs for mock requests, [read](#configs)
70
+ - `interceptors?` {Interceptors} functions to change request or response parameters, [read](#interceptors)
70
71
  - `graphql?` GraphQL configs for mock requests
71
72
  - `baseUrl?` {string} part of the url that will be substituted at the beginning of graphql request url (default: `'/'`)
72
73
  - `configs` {Array<GraphQLRequestConfig>} configs for mock requests, [read](#configs)
74
+ - `interceptors?` {Interceptors} functions to change request or response parameters, [read](#interceptors)
73
75
  - `staticPath?` {StaticPath} entity for working with static files, [read](#static-path)
74
76
  - `interceptors?` {Interceptors} functions to change request or response parameters, [read](#interceptors)
75
77
  - `cors?` {Cors} CORS settings object (default: `CORS is turn off`), [read](#cors)
@@ -230,6 +232,13 @@ Functions to change request or response parameters
230
232
 
231
233
  - `params`
232
234
  - `request` request object
235
+ - `setDelay` (delay) => Promise<void>
236
+ - `delay` {number} milliseconds of delay time
237
+ - `getHeader` (field) => string | number | string[] | undefined
238
+ - `field` {string} name of response header
239
+ - `getHeaders` () => Record<string | number | string[] | undefined>
240
+ - `setCookie` (name) => string | undefined
241
+ - `name` {string} name of cookie
233
242
 
234
243
  ##### Response
235
244
 
@@ -238,9 +247,44 @@ Functions to change request or response parameters
238
247
  - `request` request object
239
248
  - `response` response object
240
249
  - `setDelay` (delay) => Promise<void>
241
- - `delay` {number} seconds of delay time
250
+ - `delay` {number} milliseconds of delay time
242
251
  - `setStatusCode` (statusCode) => void
243
252
  - `statusCode` {number} status code for response
253
+ - `setHeader` (field, value) => void
254
+ - `field` {string} name of response header
255
+ - `value` {string | string[] | undefined} value of response header
256
+ - `appendHeader` (field, value) => void
257
+ - `field` {string} name of response header
258
+ - `value` {string | string[] | undefined} value of response header
259
+ - `setCookie` (name, value, options) => void
260
+ - `name` {string} name of cookie
261
+ - `value` {string} value of cookie
262
+ - `options` {[CookieOptions](https://expressjs.com/en/resources/middleware/cookie-session.html) | undefined} cookie options (like path, expires, etc.)
263
+ - `clearCookie` (name, options) => void
264
+ - `name` {string} name of cookie
265
+ - `options` {[CookieOptions](https://expressjs.com/en/resources/middleware/cookie-session.html) | undefined} cookie options (like path, expires, etc.)
266
+ - `attachment` (filename) => void
267
+ - `filename` {string} name of file in 'Content-Disposition' header
268
+
269
+ ## CLI usage
270
+
271
+ ```
272
+ mcs [options]
273
+
274
+ Options:
275
+ --baseUrl, -b Set base url (default: '/')
276
+ --port, -p Set port (default: 31299)
277
+ --staticPath, -s Set static path
278
+ --config, -c Set path to config file (default: './mock-server.config.(?:ts|mts|cts|js|mjs|cjs)')
279
+ --watch, -w Enables server restart after config file changes (default: false)
280
+
281
+ --version, -v Show version number
282
+ --help, -h Show help
283
+
284
+ Examples:
285
+ mcs --baseurl /base/url --port 3000 --config ./path/to/config.ts -w
286
+ mcs --help
287
+ ```
244
288
 
245
289
  ## ✨ Contributors
246
290
 
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
2
- export {};
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const pleaseUpgradeNode = require('please-upgrade-node');
5
+ const packageJson = require('../../package.json');
6
+ pleaseUpgradeNode(packageJson);
7
+ const { cli } = require('./cli');
8
+ cli();
@@ -0,0 +1 @@
1
+ export declare const cli: () => void;
@@ -0,0 +1,36 @@
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.cli = void 0;
7
+ const yargs_1 = __importDefault(require("yargs"));
8
+ const helpers_1 = require("yargs/helpers");
9
+ const start_1 = require("./start");
10
+ const cli = () => {
11
+ const argv = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
12
+ .options({
13
+ baseUrl: {
14
+ alias: 'b',
15
+ description: 'Set base url for mock server',
16
+ type: 'string'
17
+ },
18
+ port: {
19
+ alias: 'p',
20
+ description: 'Set port for server',
21
+ type: 'number'
22
+ },
23
+ staticPath: {
24
+ alias: 's',
25
+ description: 'Set static path for mock server',
26
+ type: 'string'
27
+ }
28
+ })
29
+ .version()
30
+ .alias('version', 'v')
31
+ .help()
32
+ .alias('help', 'h')
33
+ .parse();
34
+ (0, start_1.start)(argv);
35
+ };
36
+ exports.cli = cli;
@@ -1 +1 @@
1
- export declare const resolveExportsFromSourceCode: (sourceCode: string) => any;
1
+ export declare const resolveExportsFromSourceCode: (sourceCode: string) => any;
@@ -1,11 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveExportsFromSourceCode = void 0;
4
- const resolveExportsFromSourceCode = (sourceCode) => {
5
- // @ts-ignore
6
- const moduleInstance = new module.constructor();
7
- // eslint-disable-next-line no-underscore-dangle
8
- moduleInstance._compile(sourceCode, '');
9
- return moduleInstance.exports;
10
- };
11
- exports.resolveExportsFromSourceCode = resolveExportsFromSourceCode;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveExportsFromSourceCode = void 0;
4
+ const resolveExportsFromSourceCode = (sourceCode) => {
5
+ // @ts-ignore
6
+ const moduleInstance = new module.constructor();
7
+ // eslint-disable-next-line no-underscore-dangle
8
+ moduleInstance._compile(sourceCode, '');
9
+ return moduleInstance.exports;
10
+ };
11
+ exports.resolveExportsFromSourceCode = resolveExportsFromSourceCode;
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import type { MockServerConfigArgv } from '../src';
3
+ export declare const start: (argv: MockServerConfigArgv) => Promise<void>;
@@ -1,67 +1,73 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- const esbuild_1 = require("esbuild");
28
- const fs = __importStar(require("fs"));
29
- const src_1 = require("../src");
30
- const validateMockServerConfig_1 = require("./validateMockServerConfig/validateMockServerConfig");
31
- const resolveExportsFromSourceCode_1 = require("./resolveExportsFromSourceCode");
32
- const start = async () => {
33
- try {
34
- const appPath = process.cwd();
35
- const mockServerConfigFileRegex = /mock-server.config.(?:ts|js)/;
36
- const mockServerConfigFile = fs
37
- .readdirSync(appPath)
38
- .find((file) => mockServerConfigFileRegex.test(file));
39
- if (!mockServerConfigFile) {
40
- throw new Error('Cannot find config file mock-server.config.(ts|js)');
41
- }
42
- const { outputFiles } = await (0, esbuild_1.build)({
43
- entryPoints: [mockServerConfigFile],
44
- bundle: true,
45
- platform: 'node',
46
- target: 'esnext',
47
- minifySyntax: true,
48
- minify: true,
49
- write: false,
50
- metafile: false
51
- });
52
- const mockServerConfigSourceCode = outputFiles[0]?.text;
53
- if (!mockServerConfigSourceCode) {
54
- throw new Error('Cannot handle source code of mock-server.config.(ts|js)');
55
- }
56
- const mockServerConfigExports = (0, resolveExportsFromSourceCode_1.resolveExportsFromSourceCode)(mockServerConfigSourceCode);
57
- if (!mockServerConfigExports?.default) {
58
- throw new Error('Cannot handle exports of mock-server.config.(ts|js)');
59
- }
60
- (0, validateMockServerConfig_1.validateMockServerConfig)(mockServerConfigExports.default);
61
- (0, src_1.startMockServer)(mockServerConfigExports.default);
62
- }
63
- catch (error) {
64
- console.error(error.message);
65
- }
66
- };
67
- start();
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.start = void 0;
28
+ const fs = __importStar(require("fs"));
29
+ const esbuild_1 = require("esbuild");
30
+ const server_1 = require("../src/server");
31
+ const helpers_1 = require("../src/utils/helpers");
32
+ const resolveExportsFromSourceCode_1 = require("./resolveExportsFromSourceCode/resolveExportsFromSourceCode");
33
+ const validateMockServerConfig_1 = require("./validateMockServerConfig/validateMockServerConfig");
34
+ const start = async (argv) => {
35
+ try {
36
+ const appPath = process.cwd();
37
+ const mockServerConfigFileRegex = /mock-server.config.(?:ts|js)/;
38
+ const mockServerConfigFile = fs
39
+ .readdirSync(appPath)
40
+ .find((file) => mockServerConfigFileRegex.test(file));
41
+ if (!mockServerConfigFile) {
42
+ throw new Error('Cannot find config file mock-server.config.(ts|js)');
43
+ }
44
+ const { outputFiles } = await (0, esbuild_1.build)({
45
+ entryPoints: [mockServerConfigFile],
46
+ bundle: true,
47
+ platform: 'node',
48
+ target: 'esnext',
49
+ minifySyntax: true,
50
+ minify: true,
51
+ write: false,
52
+ metafile: false
53
+ });
54
+ const mockServerConfigSourceCode = outputFiles[0]?.text;
55
+ if (!mockServerConfigSourceCode) {
56
+ throw new Error('Cannot handle source code of mock-server.config.(ts|js)');
57
+ }
58
+ const mockServerConfigExports = (0, resolveExportsFromSourceCode_1.resolveExportsFromSourceCode)(mockServerConfigSourceCode);
59
+ if (!mockServerConfigExports?.default) {
60
+ throw new Error('Cannot handle exports of mock-server.config.(ts|js)');
61
+ }
62
+ if (!(0, helpers_1.isPlainObject)(mockServerConfigExports.default)) {
63
+ throw new Error('configuration should be plain object; see our doc (https://www.npmjs.com/package/mock-config-server) for more information');
64
+ }
65
+ const mergedMockServerConfig = { ...mockServerConfigExports.default, ...argv };
66
+ (0, validateMockServerConfig_1.validateMockServerConfig)(mergedMockServerConfig);
67
+ (0, server_1.startMockServer)(mergedMockServerConfig);
68
+ }
69
+ catch (error) {
70
+ console.error(error.message);
71
+ }
72
+ };
73
+ exports.start = start;
@@ -1 +1 @@
1
- export declare const validateBaseUrl: (baseUrl: unknown) => void;
1
+ export declare const validateBaseUrl: (baseUrl: unknown) => void;
@@ -1,12 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateBaseUrl = void 0;
4
- const validateBaseUrl = (baseUrl) => {
5
- if (typeof baseUrl !== 'string' && typeof baseUrl !== 'undefined') {
6
- throw new Error('baseUrl');
7
- }
8
- if (typeof baseUrl === 'string' && !baseUrl.startsWith('/')) {
9
- throw new Error('baseUrl');
10
- }
11
- };
12
- exports.validateBaseUrl = validateBaseUrl;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateBaseUrl = void 0;
4
+ const validateBaseUrl = (baseUrl) => {
5
+ if (typeof baseUrl !== 'string' && typeof baseUrl !== 'undefined') {
6
+ throw new Error('baseUrl');
7
+ }
8
+ if (typeof baseUrl === 'string' && !baseUrl.startsWith('/')) {
9
+ throw new Error('baseUrl');
10
+ }
11
+ };
12
+ exports.validateBaseUrl = validateBaseUrl;
@@ -1 +1 @@
1
- export declare const validateCors: (cors: unknown) => void;
1
+ export declare const validateCors: (cors: unknown) => void;
@@ -1,82 +1,82 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateCors = void 0;
4
- const helpers_1 = require("../../../src/utils/helpers");
5
- const validateOrigin = (origin) => {
6
- const isOriginArray = Array.isArray(origin);
7
- if (isOriginArray) {
8
- origin.forEach((originElement, index) => {
9
- const isOriginElementStringOrRegExp = typeof originElement === 'string' || originElement instanceof RegExp;
10
- if (!isOriginElementStringOrRegExp) {
11
- throw new Error(`origin[${index}]`);
12
- }
13
- });
14
- return;
15
- }
16
- const isOriginStringOrRegexp = typeof origin === 'string' || origin instanceof RegExp;
17
- const isOriginFunction = typeof origin === 'function';
18
- if (!isOriginStringOrRegexp && !isOriginFunction) {
19
- throw new Error('origin');
20
- }
21
- };
22
- const validateMethods = (methods) => {
23
- const isMethodsArray = Array.isArray(methods);
24
- if (isMethodsArray) {
25
- const allowedMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'];
26
- methods.forEach((method, index) => {
27
- // ✅ important:
28
- // compare without 'toUpperCase' because 'Access-Control-Allow-Methods' value is case-sensitive
29
- if (!allowedMethods.includes(method)) {
30
- throw new Error(`methods[${index}]`);
31
- }
32
- });
33
- return;
34
- }
35
- if (typeof methods !== 'undefined') {
36
- throw new Error('methods');
37
- }
38
- };
39
- const validateHeaders = (headers) => {
40
- const isHeadersArray = Array.isArray(headers);
41
- if (isHeadersArray) {
42
- headers.forEach((header, index) => {
43
- if (typeof header !== 'string') {
44
- throw new Error(`headers[${index}]`);
45
- }
46
- });
47
- return;
48
- }
49
- if (typeof headers !== 'undefined') {
50
- throw new Error('headers');
51
- }
52
- };
53
- const validateCredentials = (credentials) => {
54
- if (typeof credentials !== 'boolean' && typeof credentials !== 'undefined') {
55
- throw new Error('credentials');
56
- }
57
- };
58
- const validateMaxAge = (maxAge) => {
59
- if (typeof maxAge !== 'number' && typeof maxAge !== 'undefined') {
60
- throw new Error('maxAge');
61
- }
62
- };
63
- const validateCors = (cors) => {
64
- const isCorsObject = (0, helpers_1.isPlainObject)(cors);
65
- if (isCorsObject) {
66
- try {
67
- validateOrigin(cors.origin);
68
- validateMethods(cors.methods);
69
- validateHeaders(cors.headers);
70
- validateCredentials(cors.credentials);
71
- validateMaxAge(cors.maxAge);
72
- }
73
- catch (error) {
74
- throw new Error(`cors.${error.message}`);
75
- }
76
- return;
77
- }
78
- if (typeof cors !== 'undefined') {
79
- throw new Error('cors');
80
- }
81
- };
82
- exports.validateCors = validateCors;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateCors = void 0;
4
+ const helpers_1 = require("../../../src/utils/helpers");
5
+ const validateOrigin = (origin) => {
6
+ const isOriginArray = Array.isArray(origin);
7
+ if (isOriginArray) {
8
+ origin.forEach((originElement, index) => {
9
+ const isOriginElementStringOrRegExp = typeof originElement === 'string' || originElement instanceof RegExp;
10
+ if (!isOriginElementStringOrRegExp) {
11
+ throw new Error(`origin[${index}]`);
12
+ }
13
+ });
14
+ return;
15
+ }
16
+ const isOriginStringOrRegexp = typeof origin === 'string' || origin instanceof RegExp;
17
+ const isOriginFunction = typeof origin === 'function';
18
+ if (!isOriginStringOrRegexp && !isOriginFunction) {
19
+ throw new Error('origin');
20
+ }
21
+ };
22
+ const validateMethods = (methods) => {
23
+ const isMethodsArray = Array.isArray(methods);
24
+ if (isMethodsArray) {
25
+ const allowedMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'];
26
+ methods.forEach((method, index) => {
27
+ // ✅ important:
28
+ // compare without 'toUpperCase' because 'Access-Control-Allow-Methods' value is case-sensitive
29
+ if (!allowedMethods.includes(method)) {
30
+ throw new Error(`methods[${index}]`);
31
+ }
32
+ });
33
+ return;
34
+ }
35
+ if (typeof methods !== 'undefined') {
36
+ throw new Error('methods');
37
+ }
38
+ };
39
+ const validateHeaders = (headers) => {
40
+ const isHeadersArray = Array.isArray(headers);
41
+ if (isHeadersArray) {
42
+ headers.forEach((header, index) => {
43
+ if (typeof header !== 'string') {
44
+ throw new Error(`headers[${index}]`);
45
+ }
46
+ });
47
+ return;
48
+ }
49
+ if (typeof headers !== 'undefined') {
50
+ throw new Error('headers');
51
+ }
52
+ };
53
+ const validateCredentials = (credentials) => {
54
+ if (typeof credentials !== 'boolean' && typeof credentials !== 'undefined') {
55
+ throw new Error('credentials');
56
+ }
57
+ };
58
+ const validateMaxAge = (maxAge) => {
59
+ if (typeof maxAge !== 'number' && typeof maxAge !== 'undefined') {
60
+ throw new Error('maxAge');
61
+ }
62
+ };
63
+ const validateCors = (cors) => {
64
+ const isCorsObject = (0, helpers_1.isPlainObject)(cors);
65
+ if (isCorsObject) {
66
+ try {
67
+ validateOrigin(cors.origin);
68
+ validateMethods(cors.methods);
69
+ validateHeaders(cors.headers);
70
+ validateCredentials(cors.credentials);
71
+ validateMaxAge(cors.maxAge);
72
+ }
73
+ catch (error) {
74
+ throw new Error(`cors.${error.message}`);
75
+ }
76
+ return;
77
+ }
78
+ if (typeof cors !== 'undefined') {
79
+ throw new Error('cors');
80
+ }
81
+ };
82
+ exports.validateCors = validateCors;
@@ -1 +1 @@
1
- export declare const validateGraphqlConfig: (graphqlConfig: unknown) => void;
1
+ export declare const validateGraphqlConfig: (graphqlConfig: unknown) => void;
@@ -1,48 +1,48 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateGraphqlConfig = void 0;
4
- const helpers_1 = require("../../../src/utils/helpers");
5
- const validateBaseUrl_1 = require("../validateBaseUrl/validateBaseUrl");
6
- const validateInterceptors_1 = require("../validateInterceptors/validateInterceptors");
7
- const validateRoutes_1 = require("./validateRoutes/validateRoutes");
8
- const validateConfigs = (configs) => {
9
- const isConfigsArray = Array.isArray(configs);
10
- if (isConfigsArray) {
11
- configs.forEach((config, index) => {
12
- const { operationType, operationName } = config;
13
- if (operationType !== 'query' && operationType !== 'mutation') {
14
- throw new Error(`configs[${index}].operationType`);
15
- }
16
- const isOperationNameStringOrRegExp = typeof operationName === 'string' || operationName instanceof RegExp;
17
- if (!isOperationNameStringOrRegExp) {
18
- throw new Error(`configs[${index}].operationName`);
19
- }
20
- try {
21
- (0, validateRoutes_1.validateRoutes)(config.routes, operationType);
22
- (0, validateInterceptors_1.validateInterceptors)(config.interceptors);
23
- }
24
- catch (error) {
25
- throw new Error(`configs[${index}].${error.message}`);
26
- }
27
- });
28
- return;
29
- }
30
- throw new Error('configs');
31
- };
32
- const validateGraphqlConfig = (graphqlConfig) => {
33
- const isGraphqlConfigObject = (0, helpers_1.isPlainObject)(graphqlConfig);
34
- if (isGraphqlConfigObject) {
35
- try {
36
- (0, validateBaseUrl_1.validateBaseUrl)(graphqlConfig.baseUrl);
37
- validateConfigs(graphqlConfig.configs);
38
- }
39
- catch (error) {
40
- throw new Error(`graphql.${error.message}`);
41
- }
42
- return;
43
- }
44
- if (typeof graphqlConfig !== 'undefined') {
45
- throw new Error('graphql');
46
- }
47
- };
48
- exports.validateGraphqlConfig = validateGraphqlConfig;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateGraphqlConfig = void 0;
4
+ const helpers_1 = require("../../../src/utils/helpers");
5
+ const validateBaseUrl_1 = require("../validateBaseUrl/validateBaseUrl");
6
+ const validateInterceptors_1 = require("../validateInterceptors/validateInterceptors");
7
+ const validateRoutes_1 = require("./validateRoutes/validateRoutes");
8
+ const validateConfigs = (configs) => {
9
+ const isConfigsArray = Array.isArray(configs);
10
+ if (isConfigsArray) {
11
+ configs.forEach((config, index) => {
12
+ const { operationType, operationName } = config;
13
+ if (operationType !== 'query' && operationType !== 'mutation') {
14
+ throw new Error(`configs[${index}].operationType`);
15
+ }
16
+ const isOperationNameStringOrRegExp = typeof operationName === 'string' || operationName instanceof RegExp;
17
+ if (!isOperationNameStringOrRegExp) {
18
+ throw new Error(`configs[${index}].operationName`);
19
+ }
20
+ try {
21
+ (0, validateRoutes_1.validateRoutes)(config.routes, operationType);
22
+ (0, validateInterceptors_1.validateInterceptors)(config.interceptors);
23
+ }
24
+ catch (error) {
25
+ throw new Error(`configs[${index}].${error.message}`);
26
+ }
27
+ });
28
+ return;
29
+ }
30
+ throw new Error('configs');
31
+ };
32
+ const validateGraphqlConfig = (graphqlConfig) => {
33
+ const isGraphqlConfigObject = (0, helpers_1.isPlainObject)(graphqlConfig);
34
+ if (isGraphqlConfigObject) {
35
+ try {
36
+ (0, validateBaseUrl_1.validateBaseUrl)(graphqlConfig.baseUrl);
37
+ validateConfigs(graphqlConfig.configs);
38
+ }
39
+ catch (error) {
40
+ throw new Error(`graphql.${error.message}`);
41
+ }
42
+ return;
43
+ }
44
+ if (typeof graphqlConfig !== 'undefined') {
45
+ throw new Error('graphql');
46
+ }
47
+ };
48
+ exports.validateGraphqlConfig = validateGraphqlConfig;
@@ -1,2 +1,2 @@
1
- import type { GraphQLOperationType } from '../../../../src';
2
- export declare const validateRoutes: (routes: unknown, operationType: GraphQLOperationType) => void;
1
+ import type { GraphQLOperationType } from '../../../../src/utils/types';
2
+ export declare const validateRoutes: (routes: unknown, operationType: GraphQLOperationType) => void;