mock-config-server 3.7.0 → 4.0.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 (216) hide show
  1. package/README.md +272 -224
  2. package/dist/bin/bin.js +1 -1
  3. package/dist/bin/build.d.ts +3 -1
  4. package/dist/bin/build.js +10 -0
  5. package/dist/bin/helpers/createTemplate.d.ts +3 -3
  6. package/dist/bin/helpers/createTemplate.js +1 -1
  7. package/dist/bin/helpers/index.d.ts +0 -3
  8. package/dist/bin/helpers/index.js +0 -3
  9. package/dist/bin/helpers/resolveConfigFile.d.ts +2 -2
  10. package/dist/bin/helpers/resolveConfigFile.js +2 -2
  11. package/dist/bin/helpers/resolveConfigFilePath.js +4 -4
  12. package/dist/bin/helpers/resolveExportsFromSourceCode.js +1 -2
  13. package/dist/bin/init.js +5 -8
  14. package/dist/bin/run.d.ts +1 -2
  15. package/dist/bin/run.js +1 -6
  16. package/dist/bin/runFlatConfig.d.ts +5 -0
  17. package/dist/bin/runFlatConfig.js +36 -0
  18. package/dist/bin/templates/js/full/mock-server.config.js +10 -7
  19. package/dist/bin/templates/js/graphql/mock-server.config.js +11 -6
  20. package/dist/bin/templates/js/rest/mock-server.config.js +11 -6
  21. package/dist/bin/templates/ts/full/mock-requests/graphql/index.ts +2 -2
  22. package/dist/bin/templates/ts/full/mock-requests/graphql/user.ts +37 -37
  23. package/dist/bin/templates/ts/full/mock-requests/graphql/users.ts +14 -14
  24. package/dist/bin/templates/ts/full/mock-requests/rest/index.ts +2 -2
  25. package/dist/bin/templates/ts/full/mock-requests/rest/user.ts +37 -37
  26. package/dist/bin/templates/ts/full/mock-requests/rest/users.ts +14 -14
  27. package/dist/bin/templates/ts/full/mock-server.config.ts +11 -8
  28. package/dist/bin/templates/ts/graphql/mock-requests/index.ts +2 -2
  29. package/dist/bin/templates/ts/graphql/mock-requests/user.ts +37 -37
  30. package/dist/bin/templates/ts/graphql/mock-requests/users.ts +14 -14
  31. package/dist/bin/templates/ts/graphql/mock-server.config.ts +12 -7
  32. package/dist/bin/templates/ts/rest/mock-requests/index.ts +2 -2
  33. package/dist/bin/templates/ts/rest/mock-requests/user.ts +37 -37
  34. package/dist/bin/templates/ts/rest/mock-requests/users.ts +14 -14
  35. package/dist/bin/templates/ts/rest/mock-server.config.ts +12 -7
  36. package/dist/src/core/database/createDatabaseRoutes/createDatabaseRoutes.js +2 -1
  37. package/dist/src/core/database/createDatabaseRoutes/helpers/createNestedDatabaseRoutes/createNestedDatabaseRoutes.js +8 -12
  38. package/dist/src/core/database/createDatabaseRoutes/helpers/filter/filter.d.ts +0 -1
  39. package/dist/src/core/database/createDatabaseRoutes/helpers/pagination/pagination.d.ts +0 -1
  40. package/dist/src/core/database/createDatabaseRoutes/helpers/search/search.d.ts +0 -1
  41. package/dist/src/core/database/createDatabaseRoutes/helpers/sort/sort.d.ts +0 -1
  42. package/dist/src/core/database/createDatabaseRoutes/helpers/splitDatabaseByNesting/splitDatabaseByNesting.d.ts +1 -1
  43. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.d.ts +5 -6
  44. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileStorage.js +4 -4
  45. package/dist/src/core/database/createDatabaseRoutes/storages/File/FileWriter.js +2 -2
  46. package/dist/src/core/database/createDatabaseRoutes/storages/Memory/MemoryStorage.d.ts +6 -7
  47. package/dist/src/core/database/createOrm/createOrm.d.ts +2 -0
  48. package/dist/src/core/database/createOrm/createOrm.js +119 -0
  49. package/dist/src/core/database/createStorage/createStorage.d.ts +2 -0
  50. package/dist/src/core/database/createStorage/createStorage.js +13 -0
  51. package/dist/src/core/database/index.d.ts +2 -0
  52. package/dist/src/core/database/index.js +2 -0
  53. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.d.ts +1 -1
  54. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +39 -17
  55. package/dist/src/core/graphql/createGraphQLRoutes/helpers/prepareGraphQLRequestConfigs/prepareGraphQLRequestConfigs.js +2 -2
  56. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.d.ts +2 -2
  57. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.js +24 -12
  58. package/dist/src/core/middlewares/destroyerMiddleware/destroyerMiddleware.d.ts +1 -2
  59. package/dist/src/core/middlewares/index.d.ts +0 -1
  60. package/dist/src/core/middlewares/index.js +0 -1
  61. package/dist/src/core/middlewares/requestInterceptorMiddleware/requestInterceptorMiddleware.d.ts +2 -2
  62. package/dist/src/core/rest/createRestRoutes/createRestRoutes.d.ts +1 -1
  63. package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +80 -24
  64. package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.d.ts +1 -1
  65. package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +6 -6
  66. package/dist/src/server/createFlatMockServer/createFlatMockServer.d.ts +3 -0
  67. package/dist/src/server/createFlatMockServer/createFlatMockServer.js +127 -0
  68. package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.d.ts +1 -1
  69. package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +3 -6
  70. package/dist/src/server/createMockServer/createMockServer.d.ts +1 -1
  71. package/dist/src/server/createMockServer/createMockServer.js +3 -5
  72. package/dist/src/server/createRestMockServer/createRestMockServer.d.ts +1 -1
  73. package/dist/src/server/createRestMockServer/createRestMockServer.js +3 -6
  74. package/dist/src/server/index.d.ts +2 -0
  75. package/dist/src/server/index.js +2 -0
  76. package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.d.ts +1 -2
  77. package/dist/src/server/startFlatMockServer/startFlatMockServer.d.ts +4 -0
  78. package/dist/src/server/startFlatMockServer/startFlatMockServer.js +28 -0
  79. package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.d.ts +1 -2
  80. package/dist/src/server/startMockServer/startMockServer.d.ts +1 -2
  81. package/dist/src/server/startRestMockServer/startRestMockServer.d.ts +1 -2
  82. package/dist/src/utils/constants/checkModes.d.ts +1 -3
  83. package/dist/src/utils/constants/checkModes.js +3 -19
  84. package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.d.ts +20 -2
  85. package/dist/src/utils/helpers/config/resolveEntityValues/resolveEntityValues.js +37 -71
  86. package/dist/src/utils/helpers/files/index.d.ts +1 -0
  87. package/dist/src/utils/helpers/files/index.js +1 -0
  88. package/dist/src/utils/helpers/files/isFileDescriptor/isFileDescriptor.d.ts +2 -0
  89. package/dist/src/utils/helpers/files/isFileDescriptor/isFileDescriptor.js +16 -0
  90. package/dist/src/utils/helpers/files/isFilePathValid/isFilePathValid.js +3 -3
  91. package/dist/src/utils/helpers/graphql/parseQuery/parseQuery.d.ts +1 -1
  92. package/dist/src/utils/helpers/index.d.ts +0 -1
  93. package/dist/src/utils/helpers/index.js +0 -1
  94. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.d.ts +1 -1
  95. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +2 -1
  96. package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +10 -5
  97. package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.d.ts +1 -1
  98. package/dist/src/utils/helpers/tests/createTmpDir.js +4 -4
  99. package/dist/src/utils/helpers/url/convertWin32PathToUnix/convertWin32PathToUnix.js +1 -1
  100. package/dist/src/utils/helpers/url/urlJoin/urlJoin.js +4 -4
  101. package/dist/src/utils/types/checkModes.d.ts +14 -7
  102. package/dist/src/utils/types/database.d.ts +30 -0
  103. package/dist/src/utils/types/entities.d.ts +13 -43
  104. package/dist/src/utils/types/files.d.ts +5 -0
  105. package/dist/src/utils/types/files.js +4 -0
  106. package/dist/src/utils/types/graphql.d.ts +9 -8
  107. package/dist/src/utils/types/index.d.ts +1 -0
  108. package/dist/src/utils/types/index.js +1 -0
  109. package/dist/src/utils/types/interceptors.d.ts +21 -16
  110. package/dist/src/utils/types/logger.d.ts +11 -11
  111. package/dist/src/utils/types/rest.d.ts +17 -12
  112. package/dist/src/utils/types/server.d.ts +48 -20
  113. package/dist/src/utils/types/shared.d.ts +1 -1
  114. package/dist/src/utils/types/utils.d.ts +4 -4
  115. package/dist/src/utils/types/values.d.ts +3 -4
  116. package/dist/{bin/validateMockServerConfig → src/utils/validate}/corsSchema/corsSchema.d.ts +2 -2
  117. package/dist/{bin/helpers → src/utils/validate}/getMostSpecificPathFromError.d.ts +1 -1
  118. package/dist/src/utils/validate/getValidationMessageFromPath.d.ts +1 -0
  119. package/dist/src/utils/validate/graphqlConfigSchema/graphqlConfigSchema.d.ts +535 -0
  120. package/dist/{bin/validateMockServerConfig → src/utils/validate}/graphqlConfigSchema/graphqlConfigSchema.js +14 -6
  121. package/dist/{bin/validateMockServerConfig → src/utils/validate}/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.d.ts +20 -5
  122. package/dist/{bin/validateMockServerConfig → src/utils/validate}/graphqlConfigSchema/routeConfigSchema/routeConfigSchema.js +5 -5
  123. package/dist/src/utils/validate/index.d.ts +14 -0
  124. package/dist/src/utils/validate/index.js +31 -0
  125. package/dist/{bin/helpers → src/utils/validate}/isOnlyRequestedDataResolvingPropertyExists.d.ts +1 -1
  126. package/dist/src/utils/validate/queueSchema/queueSchema.d.ts +20 -0
  127. package/dist/src/utils/validate/queueSchema/queueSchema.js +24 -0
  128. package/dist/src/utils/validate/restConfigSchema/restConfigSchema.d.ts +1659 -0
  129. package/dist/{bin/validateMockServerConfig → src/utils/validate}/restConfigSchema/restConfigSchema.js +13 -5
  130. package/dist/{bin/validateMockServerConfig → src/utils/validate}/restConfigSchema/routeConfigSchema/routeConfigSchema.d.ts +21 -6
  131. package/dist/{bin/validateMockServerConfig → src/utils/validate}/restConfigSchema/routeConfigSchema/routeConfigSchema.js +6 -6
  132. package/dist/src/utils/validate/utils/checkModeSchema/checkModeSchema.d.ts +23 -0
  133. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/checkModeSchema/checkModeSchema.js +24 -1
  134. package/dist/src/utils/validate/utils/entitiesSchema/entitiesSchema.d.ts +4 -0
  135. package/dist/src/utils/validate/utils/entitiesSchema/entitiesSchema.js +94 -0
  136. package/dist/src/utils/validate/utils/extendedDiscriminatedUnion/extendedDiscriminatedUnion.d.ts +8 -0
  137. package/dist/src/utils/validate/utils/extendedDiscriminatedUnion/extendedDiscriminatedUnion.js +46 -0
  138. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/index.d.ts +2 -2
  139. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/index.js +2 -2
  140. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/jsonSchema/jsonSchema.d.ts +2 -2
  141. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/jsonSchema/jsonSchema.js +1 -1
  142. package/dist/src/utils/validate/utils/nestedObjectOrArraySchema/nestedObjectOrArraySchema.d.ts +3 -0
  143. package/dist/src/utils/validate/utils/nestedObjectOrArraySchema/nestedObjectOrArraySchema.js +22 -0
  144. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/requiredPropertiesSchema/requiredPropertiesSchema.d.ts +1 -1
  145. package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/requiredPropertiesSchema/requiredPropertiesSchema.js +1 -1
  146. package/dist/src/utils/validate/validateApiMockServerConfig.d.ts +2 -0
  147. package/dist/{bin/validateMockServerConfig → src/utils/validate}/validateApiMockServerConfig.js +4 -3
  148. package/dist/src/utils/validate/validateFlatMockServerConfig.d.ts +2 -0
  149. package/dist/src/utils/validate/validateFlatMockServerConfig.js +53 -0
  150. package/dist/{bin/validateMockServerConfig → src/utils/validate}/validateMockServerConfig.d.ts +1 -1
  151. package/dist/{bin/validateMockServerConfig → src/utils/validate}/validateMockServerConfig.js +4 -3
  152. package/package.json +51 -52
  153. package/dist/bin/helpers/getValidationMessageFromPath.d.ts +0 -1
  154. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.d.ts +0 -258
  155. package/dist/bin/validateMockServerConfig/queueSchema/queueSchema.d.ts +0 -8
  156. package/dist/bin/validateMockServerConfig/queueSchema/queueSchema.js +0 -21
  157. package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.d.ts +0 -743
  158. package/dist/bin/validateMockServerConfig/utils/checkModeSchema/checkModeSchema.d.ts +0 -5
  159. package/dist/bin/validateMockServerConfig/utils/entitiesSchema/entitiesSchema.d.ts +0 -71
  160. package/dist/bin/validateMockServerConfig/utils/entitiesSchema/entitiesSchema.js +0 -124
  161. package/dist/bin/validateMockServerConfig/validateApiMockServerConfig.d.ts +0 -2
  162. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.d.ts +0 -11
  163. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getGraphqlUrlSuggestions/getGraphqlUrlSuggestions.js +0 -25
  164. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getLevenshteinDistance/getLevenshteinDistance.d.ts +0 -1
  165. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getLevenshteinDistance/getLevenshteinDistance.js +0 -85
  166. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.d.ts +0 -11
  167. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/getRestUrlSuggestions.js +0 -39
  168. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.d.ts +0 -1
  169. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getActualRestUrlMeaningfulString/getActualRestUrlMeaningfulString.js +0 -11
  170. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.d.ts +0 -1
  171. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/getPatternRestUrlMeaningfulString/getPatternRestUrlMeaningfulString.js +0 -11
  172. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.d.ts +0 -2
  173. package/dist/src/core/middlewares/notFoundMiddleware/helpers/getRestUrlSuggestions/helpers/index.js +0 -19
  174. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.d.ts +0 -3
  175. package/dist/src/core/middlewares/notFoundMiddleware/helpers/index.js +0 -20
  176. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.d.ts +0 -3
  177. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +0 -65
  178. package/dist/src/static/views/assets/icons/scheme-dark.svg +0 -3
  179. package/dist/src/static/views/assets/icons/scheme-light.svg +0 -3
  180. package/dist/src/static/views/assets/images/404.png +0 -0
  181. package/dist/src/static/views/assets/images/logo.png +0 -0
  182. package/dist/src/static/views/assets/styles/global.css +0 -88
  183. package/dist/src/static/views/components/header/index.css +0 -55
  184. package/dist/src/static/views/components/header/index.ejs +0 -40
  185. package/dist/src/static/views/components/header/index.js +0 -1
  186. package/dist/src/static/views/features/scheme/dark.css +0 -13
  187. package/dist/src/static/views/features/scheme/index.ejs +0 -3
  188. package/dist/src/static/views/features/scheme/index.js +0 -31
  189. package/dist/src/static/views/features/scheme/light.css +0 -13
  190. package/dist/src/static/views/features/tab/index.css +0 -30
  191. package/dist/src/static/views/features/tab/index.ejs +0 -2
  192. package/dist/src/static/views/features/tab/index.js +0 -12
  193. package/dist/src/static/views/pages/404/index.css +0 -10
  194. package/dist/src/static/views/pages/404/index.ejs +0 -82
  195. package/dist/src/utils/helpers/isRegExp/isRegExp.d.ts +0 -1
  196. package/dist/src/utils/helpers/isRegExp/isRegExp.js +0 -11
  197. package/dist/{bin/validateMockServerConfig → src/utils/validate}/baseUrlSchema/baseUrlSchema.d.ts +0 -0
  198. package/dist/{bin/validateMockServerConfig → src/utils/validate}/baseUrlSchema/baseUrlSchema.js +0 -0
  199. package/dist/{bin/validateMockServerConfig → src/utils/validate}/corsSchema/corsSchema.js +0 -0
  200. package/dist/{bin/validateMockServerConfig → src/utils/validate}/databaseConfigSchema/databaseConfigSchema.d.ts +0 -0
  201. package/dist/{bin/validateMockServerConfig → src/utils/validate}/databaseConfigSchema/databaseConfigSchema.js +0 -0
  202. package/dist/{bin/helpers → src/utils/validate}/getMostSpecificPathFromError.js +0 -0
  203. package/dist/{bin/helpers → src/utils/validate}/getValidationMessageFromPath.js +0 -0
  204. package/dist/{bin/validateMockServerConfig → src/utils/validate}/interceptorsSchema/interceptorsSchema.d.ts +0 -0
  205. package/dist/{bin/validateMockServerConfig → src/utils/validate}/interceptorsSchema/interceptorsSchema.js +0 -0
  206. package/dist/{bin/helpers → src/utils/validate}/isOnlyRequestedDataResolvingPropertyExists.js +0 -0
  207. package/dist/{bin/validateMockServerConfig → src/utils/validate}/portSchema/portSchema.d.ts +0 -0
  208. package/dist/{bin/validateMockServerConfig → src/utils/validate}/portSchema/portSchema.js +0 -0
  209. package/dist/{bin/validateMockServerConfig → src/utils/validate}/settingsSchema/settingsSchema.d.ts +2 -2
  210. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/settingsSchema/settingsSchema.js +0 -0
  211. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/staticPathSchema/staticPathSchema.d.ts +0 -0
  212. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/staticPathSchema/staticPathSchema.js +0 -0
  213. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/plainObjectSchema/plainObjectSchema.d.ts +0 -0
  214. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/plainObjectSchema/plainObjectSchema.js +0 -0
  215. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/sharedSchema/sharedSchema.d.ts +0 -0
  216. /package/dist/{bin/validateMockServerConfig → src/utils/validate}/utils/sharedSchema/sharedSchema.js +0 -0
package/dist/bin/bin.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- const pleaseUpgradeNode = require('please-upgrade-node');
6
+ /* eslint-disable ts/no-require-imports */ const pleaseUpgradeNode = require('please-upgrade-node');
7
7
  const packageJson = require('../../package.json');
8
8
  pleaseUpgradeNode(packageJson);
9
9
  const { cli } = require('./cli');
@@ -1,2 +1,4 @@
1
1
  import type { MockServerConfigArgv } from '../src/utils/types';
2
- export declare const build: (argv: MockServerConfigArgv) => Promise<void>;
2
+ export declare const build: (argv: MockServerConfigArgv) => Promise<(import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> & {
3
+ destroy: import("http").Server["close"];
4
+ }) | undefined>;
package/dist/bin/build.js CHANGED
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "build", {
11
11
  const _esbuild = require("esbuild");
12
12
  const _helpers = require("./helpers");
13
13
  const _run = require("./run");
14
+ const _runFlatConfig = require("./runFlatConfig");
14
15
  const build = async (argv)=>{
15
16
  const configFilePath = (0, _helpers.resolveConfigFilePath)(argv.config);
16
17
  if (!configFilePath) {
@@ -41,6 +42,11 @@ const build = async (argv)=>{
41
42
  build.onEnd((result)=>{
42
43
  if (!result.errors.length) {
43
44
  const mockConfig = (0, _helpers.resolveConfigFile)(result.outputFiles[0].text);
45
+ const isFlatConfig = Array.isArray(mockConfig);
46
+ if (isFlatConfig) {
47
+ instance = (0, _runFlatConfig.runFlatConfig)(mockConfig, argv);
48
+ return;
49
+ }
44
50
  instance = (0, _run.run)(mockConfig, argv);
45
51
  }
46
52
  });
@@ -53,5 +59,9 @@ const build = async (argv)=>{
53
59
  }
54
60
  const { outputFiles } = await (0, _esbuild.build)(buildOptions);
55
61
  const mockConfig = (0, _helpers.resolveConfigFile)(outputFiles[0].text);
62
+ const isFlatConfig = Array.isArray(mockConfig);
63
+ if (isFlatConfig) {
64
+ return (0, _runFlatConfig.runFlatConfig)(mockConfig, argv);
65
+ }
56
66
  (0, _run.run)(mockConfig, argv);
57
67
  };
@@ -1,9 +1,9 @@
1
1
  interface CreateTemplateOptions {
2
- withTypescript: boolean;
2
+ apiType: 'full' | 'graphql' | 'rest';
3
3
  baseUrl: string;
4
- staticPath: string;
5
4
  port: number;
6
- apiType: 'rest' | 'graphql' | 'full';
5
+ staticPath: string;
6
+ withTypescript: boolean;
7
7
  }
8
8
  export declare const createTemplate: (options: CreateTemplateOptions) => void;
9
9
  export {};
@@ -25,7 +25,7 @@ const createTemplate = (options)=>{
25
25
  });
26
26
  let mockServerConfig = _nodefs.default.readFileSync(`${templatePath}/mock-server.config.${language}`, 'utf8');
27
27
  if (options.staticPath !== '/') {
28
- mockServerConfig = mockServerConfig.replace(`port: ${_constants.DEFAULT.PORT}`, `port: ${_constants.DEFAULT.PORT},\n staticPath: '${options.staticPath}'`);
28
+ mockServerConfig = mockServerConfig.replace(`port: ${_constants.DEFAULT.PORT}`, `port: ${_constants.DEFAULT.PORT},\n\u0020\u0020\u0020\u0020staticPath: '${options.staticPath}'`);
29
29
  }
30
30
  mockServerConfig = mockServerConfig.replace(`port: ${_constants.DEFAULT.PORT}`, `port: ${options.port.toString()}`);
31
31
  mockServerConfig = mockServerConfig.replace("baseUrl: '/'", `baseUrl: '${options.baseUrl}'`);
@@ -1,7 +1,4 @@
1
1
  export * from './createTemplate';
2
- export * from './getMostSpecificPathFromError';
3
- export * from './getValidationMessageFromPath';
4
- export * from './isOnlyRequestedDataResolvingPropertyExists';
5
2
  export * from './resolveConfigFile';
6
3
  export * from './resolveConfigFilePath';
7
4
  export * from './resolveExportsFromSourceCode';
@@ -3,9 +3,6 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  _export_star(require("./createTemplate"), exports);
6
- _export_star(require("./getMostSpecificPathFromError"), exports);
7
- _export_star(require("./getValidationMessageFromPath"), exports);
8
- _export_star(require("./isOnlyRequestedDataResolvingPropertyExists"), exports);
9
6
  _export_star(require("./resolveConfigFile"), exports);
10
7
  _export_star(require("./resolveConfigFilePath"), exports);
11
8
  _export_star(require("./resolveExportsFromSourceCode"), exports);
@@ -1,2 +1,2 @@
1
- import type { MockServerConfig } from '../../src/utils/types';
2
- export declare const resolveConfigFile: (configSourceCode: string) => MockServerConfig;
1
+ import type { FlatMockServerConfig, MockServerConfig } from '../../src/utils/types';
2
+ export declare const resolveConfigFile: (configSourceCode: string) => FlatMockServerConfig | MockServerConfig;
@@ -19,8 +19,8 @@ const resolveConfigFile = (configSourceCode)=>{
19
19
  if (!mockServerConfig) {
20
20
  throw new Error('Cannot handle exports of mock-server.config.(ts|js)');
21
21
  }
22
- if (!(0, _helpers.isPlainObject)(mockServerConfig)) {
23
- throw new Error('configuration should be plain object; see our doc (https://www.npmjs.com/package/mock-config-server) for more information');
22
+ if (!(0, _helpers.isPlainObject)(mockServerConfig) && !Array.isArray(mockServerConfig)) {
23
+ throw new Error('configuration should be plain object or array; see our doc (https://www.npmjs.com/package/mock-config-server) for more information');
24
24
  }
25
25
  return mockServerConfig;
26
26
  };
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "resolveConfigFilePath", {
8
8
  return resolveConfigFilePath;
9
9
  }
10
10
  });
11
- const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
- const _path = /*#__PURE__*/ _interop_require_default(require("path"));
11
+ const _nodefs = /*#__PURE__*/ _interop_require_default(require("node:fs"));
12
+ const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
13
13
  function _interop_require_default(obj) {
14
14
  return obj && obj.__esModule ? obj : {
15
15
  default: obj
@@ -17,7 +17,7 @@ function _interop_require_default(obj) {
17
17
  }
18
18
  const resolveConfigFilePath = (cliConfigFilePath)=>{
19
19
  const appPath = process.cwd();
20
- if (cliConfigFilePath) return _path.default.resolve(appPath, cliConfigFilePath);
20
+ if (cliConfigFilePath) return _nodepath.default.resolve(appPath, cliConfigFilePath);
21
21
  const configFileNameRegex = /mock-server.config.(?:ts|mts|cts|js|mjs|cjs)/;
22
- return _fs.default.readdirSync(appPath).find((fileName)=>configFileNameRegex.test(fileName));
22
+ return _nodefs.default.readdirSync(appPath).find((fileName)=>configFileNameRegex.test(fileName));
23
23
  };
@@ -9,9 +9,8 @@ Object.defineProperty(exports, "resolveExportsFromSourceCode", {
9
9
  }
10
10
  });
11
11
  const resolveExportsFromSourceCode = (sourceCode)=>{
12
- // @ts-ignore
12
+ // @ts-expect-error: module is constructed
13
13
  const moduleInstance = new module.constructor();
14
- // eslint-disable-next-line no-underscore-dangle
15
14
  moduleInstance._compile(sourceCode, '');
16
15
  return moduleInstance.exports;
17
16
  };
package/dist/bin/init.js CHANGED
@@ -10,9 +10,7 @@ Object.defineProperty(exports, "init", {
10
10
  });
11
11
  const _ansicolors = /*#__PURE__*/ _interop_require_default(require("ansi-colors"));
12
12
  const _prompts = /*#__PURE__*/ _interop_require_default(require("prompts"));
13
- const _baseUrlSchema = require("./validateMockServerConfig/baseUrlSchema/baseUrlSchema");
14
- const _portSchema = require("./validateMockServerConfig/portSchema/portSchema");
15
- const _staticPathSchema = require("./validateMockServerConfig/staticPathSchema/staticPathSchema");
13
+ const _validate = require("../src/utils/validate");
16
14
  const _helpers = require("./helpers");
17
15
  function _interop_require_default(obj) {
18
16
  return obj && obj.__esModule ? obj : {
@@ -60,7 +58,7 @@ const init = async (argv)=>{
60
58
  initial: '/',
61
59
  validate: (baseUrl)=>{
62
60
  try {
63
- _baseUrlSchema.baseUrlSchema.parse(baseUrl);
61
+ _validate.baseUrlSchema.parse(baseUrl);
64
62
  return true;
65
63
  } catch {
66
64
  return 'Invalid base url value';
@@ -74,9 +72,9 @@ const init = async (argv)=>{
74
72
  initial: 31299,
75
73
  validate: (port)=>{
76
74
  try {
77
- _portSchema.portSchema.parse(+port);
75
+ _validate.portSchema.parse(+port);
78
76
  return true;
79
- } catch (error) {
77
+ } catch {
80
78
  return 'Invalid port value';
81
79
  }
82
80
  }
@@ -88,7 +86,7 @@ const init = async (argv)=>{
88
86
  initial: '/',
89
87
  validate: (staticPath)=>{
90
88
  try {
91
- _staticPathSchema.staticPathSchema.parse(staticPath);
89
+ _validate.staticPathSchema.parse(staticPath);
92
90
  return true;
93
91
  } catch {
94
92
  return 'Invalid static path value';
@@ -106,7 +104,6 @@ const init = async (argv)=>{
106
104
  });
107
105
  var _process_env_npm_config_user_agent;
108
106
  const userAgent = (_process_env_npm_config_user_agent = process.env.npm_config_user_agent) !== null && _process_env_npm_config_user_agent !== void 0 ? _process_env_npm_config_user_agent : '';
109
- // eslint-disable-next-line no-nested-ternary
110
107
  const packageManager = /pnpm/.test(userAgent) ? 'pnpm' : /yarn/.test(userAgent) ? 'yarn' : 'npx';
111
108
  console.log('\n');
112
109
  console.log(_ansicolors.default.bold('🎉 Thanks for using mock-config-server! 🎉'));
package/dist/bin/run.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env node
2
- /// <reference types="node" />
3
2
  import type { MockServerConfig, MockServerConfigArgv } from '../src';
4
3
  export declare const run: (mockConfig: MockServerConfig, { baseUrl, port, staticPath }: MockServerConfigArgv) => (import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> & {
5
- destroy: (callback?: ((err?: Error | undefined) => void) | undefined) => import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
4
+ destroy: import("http").Server["close"];
6
5
  }) | undefined;
package/dist/bin/run.js CHANGED
@@ -11,9 +11,8 @@ Object.defineProperty(exports, "run", {
11
11
  });
12
12
  const _server = require("../src/server");
13
13
  const _helpers = require("../src/utils/helpers");
14
- const _validateApiMockServerConfig = require("./validateMockServerConfig/validateApiMockServerConfig");
15
- const _validateMockServerConfig = require("./validateMockServerConfig/validateMockServerConfig");
16
14
  const run = (mockConfig, { baseUrl, port, staticPath })=>{
15
+ console.warn(`**DEPRECATION WARNING**\nThe old mock config format is deprecated and will be removed in the next major version. Please use new format of config (flat config); see our doc (https://github.com/siberiacancode/mock-config-server) for more information`);
17
16
  try {
18
17
  const mergedMockServerConfig = {
19
18
  ...mockConfig,
@@ -30,17 +29,13 @@ const run = (mockConfig, { baseUrl, port, staticPath })=>{
30
29
  if (!mergedMockServerConfig.rest && !mergedMockServerConfig.graphql && 'configs' in mergedMockServerConfig) {
31
30
  const mergedApiMockServerConfig = mergedMockServerConfig;
32
31
  if (Array.isArray(mergedApiMockServerConfig.configs) && (0, _helpers.isPlainObject)(mergedApiMockServerConfig.configs[0]) && 'path' in mergedApiMockServerConfig.configs[0]) {
33
- (0, _validateApiMockServerConfig.validateApiMockServerConfig)(mergedApiMockServerConfig, 'rest');
34
32
  return (0, _server.startRestMockServer)(mergedApiMockServerConfig);
35
33
  }
36
34
  if (Array.isArray(mergedApiMockServerConfig.configs) && (0, _helpers.isPlainObject)(mergedApiMockServerConfig.configs[0]) && ('query' in mergedApiMockServerConfig.configs[0] || 'operationName' in mergedApiMockServerConfig.configs[0])) {
37
- (0, _validateApiMockServerConfig.validateApiMockServerConfig)(mergedApiMockServerConfig, 'graphql');
38
35
  return (0, _server.startGraphQLMockServer)(mergedApiMockServerConfig);
39
36
  }
40
- (0, _validateApiMockServerConfig.validateApiMockServerConfig)(mergedApiMockServerConfig, 'rest');
41
37
  return (0, _server.startRestMockServer)(mergedApiMockServerConfig);
42
38
  }
43
- (0, _validateMockServerConfig.validateMockServerConfig)(mergedMockServerConfig);
44
39
  return (0, _server.startMockServer)(mergedMockServerConfig);
45
40
  } catch (error) {
46
41
  console.error(error.message);
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import type { FlatMockServerConfig, MockServerConfigArgv } from '../src';
3
+ export declare const runFlatConfig: (flatMockServerConfig: FlatMockServerConfig, { baseUrl, port, staticPath }: MockServerConfigArgv) => (import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> & {
4
+ destroy: import("http").Server["close"];
5
+ }) | undefined;
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "runFlatConfig", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return runFlatConfig;
10
+ }
11
+ });
12
+ const _server = require("../src/server");
13
+ const runFlatConfig = (flatMockServerConfig, { baseUrl, port, staticPath })=>{
14
+ try {
15
+ const [option, ...flatMockServerComponents] = flatMockServerConfig;
16
+ const flatMockServerSettings = !('configs' in option) ? option : undefined;
17
+ const mergedFlatMockServerConfig = [
18
+ {
19
+ ...flatMockServerSettings,
20
+ ...baseUrl && {
21
+ baseUrl
22
+ },
23
+ ...port && {
24
+ port
25
+ },
26
+ ...staticPath && {
27
+ staticPath
28
+ }
29
+ },
30
+ ...flatMockServerSettings ? flatMockServerComponents : flatMockServerConfig
31
+ ];
32
+ return (0, _server.startFlatMockServer)(mergedFlatMockServerConfig);
33
+ } catch (error) {
34
+ console.error(error.message);
35
+ }
36
+ };
@@ -1,16 +1,19 @@
1
1
  import { createUserMutation, getUserQuery, getUsersQuery } from './mock-requests/graphql';
2
2
  import { getUserRequest, getUsersRequest, postUserRequest } from './mock-requests/rest';
3
3
 
4
- const mockServerConfig = {
5
- port: 31299,
6
- baseUrl: '/',
7
- rest: {
4
+ const mockServerConfig = [
5
+ {
6
+ port: 31299,
7
+ baseUrl: '/'
8
+ },
9
+ {
10
+ name: 'rest',
8
11
  configs: [getUserRequest, getUsersRequest, postUserRequest]
9
12
  },
10
- graphql: {
11
- baseUrl: '/graphql',
13
+ {
14
+ name: 'graphql',
12
15
  configs: [getUserQuery, getUsersQuery, createUserMutation]
13
16
  }
14
- };
17
+ ];
15
18
 
16
19
  export default mockServerConfig;
@@ -1,9 +1,14 @@
1
1
  import { createUserMutation, getUserQuery, getUsersQuery } from './mock-requests';
2
2
 
3
- const restMockServerConfig = {
4
- port: 31299,
5
- baseUrl: '/',
6
- configs: [getUserQuery, getUsersQuery, createUserMutation]
7
- };
3
+ const mockServerConfig = [
4
+ {
5
+ port: 31299,
6
+ baseUrl: '/graphql'
7
+ },
8
+ {
9
+ name: 'graphql',
10
+ configs: [getUserQuery, getUsersQuery, createUserMutation]
11
+ }
12
+ ];
8
13
 
9
- export default restMockServerConfig;
14
+ export default mockServerConfig;
@@ -1,9 +1,14 @@
1
1
  import { getUserRequest, getUsersRequest, postUserRequest } from './mock-requests';
2
2
 
3
- const restMockServerConfig = {
4
- port: 31299,
5
- baseUrl: '/',
6
- configs: [getUserRequest, getUsersRequest, postUserRequest]
7
- };
3
+ const mockServerConfig = [
4
+ {
5
+ port: 31299,
6
+ baseUrl: '/'
7
+ },
8
+ {
9
+ name: 'rest',
10
+ configs: [getUserRequest, getUsersRequest, postUserRequest]
11
+ }
12
+ ];
8
13
 
9
- export default restMockServerConfig;
14
+ export default mockServerConfig;
@@ -1,2 +1,2 @@
1
- export * from './user';
2
- export * from './users';
1
+ export * from './user';
2
+ export * from './users';
@@ -1,37 +1,37 @@
1
- import type { GraphQLRequestConfig } from 'mock-config-server';
2
-
3
- export const getUserQuery: GraphQLRequestConfig = {
4
- operationName: 'getUser',
5
- operationType: 'query',
6
- routes: [
7
- {
8
- data: { id: 1, emoji: '🎉' }
9
- },
10
- {
11
- data: { id: 2, emoji: '🔥' },
12
- entities: {
13
- variables: {
14
- id: 2
15
- }
16
- }
17
- }
18
- ]
19
- };
20
-
21
- export const createUserMutation: GraphQLRequestConfig = {
22
- operationName: 'createUser',
23
- operationType: 'mutation',
24
- routes: [
25
- {
26
- data: { id: 1, emoji: '🎉' }
27
- },
28
- {
29
- data: { id: 2, emoji: '🔥' },
30
- entities: {
31
- variables: {
32
- emoji: '🔥'
33
- }
34
- }
35
- }
36
- ]
37
- };
1
+ import type { GraphQLRequestConfig } from 'mock-config-server';
2
+
3
+ export const getUserQuery: GraphQLRequestConfig = {
4
+ operationName: 'getUser',
5
+ operationType: 'query',
6
+ routes: [
7
+ {
8
+ data: { id: 1, emoji: '🎉' }
9
+ },
10
+ {
11
+ data: { id: 2, emoji: '🔥' },
12
+ entities: {
13
+ variables: {
14
+ id: 2
15
+ }
16
+ }
17
+ }
18
+ ]
19
+ };
20
+
21
+ export const createUserMutation: GraphQLRequestConfig = {
22
+ operationName: 'createUser',
23
+ operationType: 'mutation',
24
+ routes: [
25
+ {
26
+ data: { id: 1, emoji: '🎉' }
27
+ },
28
+ {
29
+ data: { id: 2, emoji: '🔥' },
30
+ entities: {
31
+ variables: {
32
+ emoji: '🔥'
33
+ }
34
+ }
35
+ }
36
+ ]
37
+ };
@@ -1,14 +1,14 @@
1
- import type { GraphQLRequestConfig } from 'mock-config-server';
2
-
3
- export const getUsersQuery: GraphQLRequestConfig = {
4
- operationName: 'getUsers',
5
- operationType: 'query',
6
- routes: [
7
- {
8
- data: [
9
- { id: 1, emoji: '🎉' },
10
- { id: 2, emoji: '🔥' }
11
- ]
12
- }
13
- ]
14
- };
1
+ import type { GraphQLRequestConfig } from 'mock-config-server';
2
+
3
+ export const getUsersQuery: GraphQLRequestConfig = {
4
+ operationName: 'getUsers',
5
+ operationType: 'query',
6
+ routes: [
7
+ {
8
+ data: [
9
+ { id: 1, emoji: '🎉' },
10
+ { id: 2, emoji: '🔥' }
11
+ ]
12
+ }
13
+ ]
14
+ };
@@ -1,2 +1,2 @@
1
- export * from './user';
2
- export * from './users';
1
+ export * from './user';
2
+ export * from './users';
@@ -1,37 +1,37 @@
1
- import type { RestRequestConfig } from 'mock-config-server';
2
-
3
- export const getUserRequest: RestRequestConfig = {
4
- method: 'get',
5
- path: '/users/:id',
6
- routes: [
7
- {
8
- data: { id: 1, emoji: '🎉' }
9
- },
10
- {
11
- data: { id: 2, emoji: '🔥' },
12
- entities: {
13
- params: {
14
- id: 2
15
- }
16
- }
17
- }
18
- ]
19
- };
20
-
21
- export const postUserRequest: RestRequestConfig = {
22
- method: 'post',
23
- path: '/users',
24
- routes: [
25
- {
26
- data: { id: 1, emoji: '🎉' }
27
- },
28
- {
29
- data: { id: 2, emoji: '🔥' },
30
- entities: {
31
- body: {
32
- emoji: '🔥'
33
- }
34
- }
35
- }
36
- ]
37
- };
1
+ import type { RestRequestConfig } from 'mock-config-server';
2
+
3
+ export const getUserRequest: RestRequestConfig = {
4
+ method: 'get',
5
+ path: '/users/:id',
6
+ routes: [
7
+ {
8
+ data: { id: 1, emoji: '🎉' }
9
+ },
10
+ {
11
+ data: { id: 2, emoji: '🔥' },
12
+ entities: {
13
+ params: {
14
+ id: 2
15
+ }
16
+ }
17
+ }
18
+ ]
19
+ };
20
+
21
+ export const postUserRequest: RestRequestConfig = {
22
+ method: 'post',
23
+ path: '/users',
24
+ routes: [
25
+ {
26
+ data: { id: 1, emoji: '🎉' }
27
+ },
28
+ {
29
+ data: { id: 2, emoji: '🔥' },
30
+ entities: {
31
+ body: {
32
+ emoji: '🔥'
33
+ }
34
+ }
35
+ }
36
+ ]
37
+ };
@@ -1,14 +1,14 @@
1
- import type { RestRequestConfig } from 'mock-config-server';
2
-
3
- export const getUsersRequest: RestRequestConfig = {
4
- path: '/users',
5
- method: 'get',
6
- routes: [
7
- {
8
- data: [
9
- { id: 1, emoji: '🎉' },
10
- { id: 2, emoji: '🔥' }
11
- ]
12
- }
13
- ]
14
- };
1
+ import type { RestRequestConfig } from 'mock-config-server';
2
+
3
+ export const getUsersRequest: RestRequestConfig = {
4
+ path: '/users',
5
+ method: 'get',
6
+ routes: [
7
+ {
8
+ data: [
9
+ { id: 1, emoji: '🎉' },
10
+ { id: 2, emoji: '🔥' }
11
+ ]
12
+ }
13
+ ]
14
+ };
@@ -1,18 +1,21 @@
1
- import type { MockServerConfig } from 'mock-config-server';
1
+ import type { FlatMockServerConfig } from 'mock-config-server';
2
2
 
3
3
  import { createUserMutation, getUserQuery, getUsersQuery } from './mock-requests/graphql';
4
4
  import { getUserRequest, getUsersRequest, postUserRequest } from './mock-requests/rest';
5
5
 
6
- const mockServerConfig: MockServerConfig = {
7
- port: 31299,
8
- baseUrl: '/',
9
- rest: {
6
+ const mockServerConfig: FlatMockServerConfig = [
7
+ {
8
+ port: 31299,
9
+ baseUrl: '/'
10
+ },
11
+ {
12
+ name: 'rest',
10
13
  configs: [getUserRequest, getUsersRequest, postUserRequest]
11
14
  },
12
- graphql: {
13
- baseUrl: '/graphql',
15
+ {
16
+ name: 'graphql',
14
17
  configs: [getUserQuery, getUsersQuery, createUserMutation]
15
18
  }
16
- };
19
+ ];
17
20
 
18
21
  export default mockServerConfig;
@@ -1,2 +1,2 @@
1
- export * from './user';
2
- export * from './users';
1
+ export * from './user';
2
+ export * from './users';