mock-config-server 3.6.0 → 3.7.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 (68) hide show
  1. package/README.md +291 -90
  2. package/dist/bin/templates/ts/full/mock-requests/graphql/index.ts +2 -2
  3. package/dist/bin/templates/ts/full/mock-requests/graphql/user.ts +37 -37
  4. package/dist/bin/templates/ts/full/mock-requests/graphql/users.ts +14 -14
  5. package/dist/bin/templates/ts/full/mock-requests/rest/index.ts +2 -2
  6. package/dist/bin/templates/ts/full/mock-requests/rest/user.ts +37 -37
  7. package/dist/bin/templates/ts/full/mock-requests/rest/users.ts +14 -14
  8. package/dist/bin/templates/ts/graphql/mock-requests/index.ts +2 -2
  9. package/dist/bin/templates/ts/graphql/mock-requests/user.ts +37 -37
  10. package/dist/bin/templates/ts/graphql/mock-requests/users.ts +14 -14
  11. package/dist/bin/templates/ts/rest/mock-requests/index.ts +2 -2
  12. package/dist/bin/templates/ts/rest/mock-requests/user.ts +37 -37
  13. package/dist/bin/templates/ts/rest/mock-requests/users.ts +14 -14
  14. package/dist/bin/validateMockServerConfig/graphqlConfigSchema/graphqlConfigSchema.d.ts +6 -6
  15. package/dist/bin/validateMockServerConfig/restConfigSchema/restConfigSchema.d.ts +14 -14
  16. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.d.ts +1 -1
  17. package/dist/src/core/graphql/createGraphQLRoutes/createGraphQLRoutes.js +1 -3
  18. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.d.ts +17 -0
  19. package/dist/src/core/middlewares/contextMiddleware/contextMiddleware.js +33 -0
  20. package/dist/src/core/middlewares/cookieParseMiddleware/helpers/parseCookie/parseCookie.d.ts +1 -2
  21. package/dist/src/core/middlewares/index.d.ts +1 -0
  22. package/dist/src/core/middlewares/index.js +1 -0
  23. package/dist/src/core/middlewares/notFoundMiddleware/notFoundMiddleware.js +3 -2
  24. package/dist/src/core/rest/createRestRoutes/createRestRoutes.d.ts +1 -1
  25. package/dist/src/core/rest/createRestRoutes/createRestRoutes.js +1 -3
  26. package/dist/src/core/rest/createRestRoutes/helpers/prepareRestRequestConfigs/prepareRestRequestConfigs.js +25 -1
  27. package/dist/src/server/createDatabaseMockServer/createDatabaseMockServer.js +1 -0
  28. package/dist/src/server/createGraphQLMockServer/createGraphQLMockServer.js +1 -0
  29. package/dist/src/server/createMockServer/createMockServer.js +1 -0
  30. package/dist/src/server/createRestMockServer/createRestMockServer.js +1 -0
  31. package/dist/src/server/startDatabaseMockServer/startDatabaseMockServer.js +1 -1
  32. package/dist/src/server/startGraphQLMockServer/startGraphQLMockServer.js +1 -1
  33. package/dist/src/server/startMockServer/startMockServer.js +1 -1
  34. package/dist/src/server/startRestMockServer/startRestMockServer.js +1 -1
  35. package/dist/src/static/views/pages/404/index.ejs +66 -69
  36. package/dist/src/utils/helpers/date/formatTimestamp/formatTimestamp.d.ts +1 -0
  37. package/dist/src/utils/helpers/date/formatTimestamp/formatTimestamp.js +18 -0
  38. package/dist/src/utils/helpers/date/index.d.ts +1 -0
  39. package/dist/src/utils/helpers/date/index.js +18 -0
  40. package/dist/src/utils/helpers/index.d.ts +2 -0
  41. package/dist/src/utils/helpers/index.js +2 -0
  42. package/dist/src/utils/helpers/interceptors/callRequestInterceptor/callRequestInterceptor.js +7 -1
  43. package/dist/src/utils/helpers/interceptors/callResponseInterceptors/callResponseInterceptors.js +9 -1
  44. package/dist/src/utils/helpers/logger/callRequestLogger/callRequestLogger.d.ts +8 -0
  45. package/dist/src/utils/helpers/logger/callRequestLogger/callRequestLogger.js +50 -0
  46. package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.d.ts +10 -0
  47. package/dist/src/utils/helpers/logger/callResponseLogger/callResponseLogger.js +54 -0
  48. package/dist/src/utils/helpers/logger/helpers/filterTokens/filterTokens.d.ts +5 -0
  49. package/dist/src/utils/helpers/logger/helpers/filterTokens/filterTokens.js +44 -0
  50. package/dist/src/utils/helpers/logger/helpers/formatTokens/formatTokens.d.ts +2 -0
  51. package/dist/src/utils/helpers/logger/helpers/formatTokens/formatTokens.js +23 -0
  52. package/dist/src/utils/helpers/logger/helpers/index.d.ts +2 -0
  53. package/dist/src/utils/helpers/logger/helpers/index.js +19 -0
  54. package/dist/src/utils/helpers/logger/index.d.ts +2 -0
  55. package/dist/src/utils/helpers/logger/index.js +19 -0
  56. package/dist/src/utils/types/checkModes.d.ts +0 -1
  57. package/dist/src/utils/types/graphql.d.ts +2 -5
  58. package/dist/src/utils/types/index.d.ts +2 -0
  59. package/dist/src/utils/types/index.js +2 -0
  60. package/dist/src/utils/types/interceptors.d.ts +11 -7
  61. package/dist/src/utils/types/logger.d.ts +43 -0
  62. package/dist/src/utils/types/logger.js +4 -0
  63. package/dist/src/utils/types/rest.d.ts +2 -2
  64. package/dist/src/utils/types/server.d.ts +2 -2
  65. package/dist/src/utils/types/shared.d.ts +1 -0
  66. package/dist/src/utils/types/shared.js +4 -0
  67. package/dist/src/utils/types/values.d.ts +7 -0
  68. package/package.json +1 -1
@@ -1,15 +1,18 @@
1
1
  import type { CookieOptions, Request, Response } from 'express';
2
+ import type { Logger, LoggerTokens } from './logger';
3
+ import type { ApiType } from './shared';
2
4
  type RequestInterceptorCookieValue = string | undefined;
3
5
  type RequestInterceptorHeaderValue = string | number | string[] | undefined;
4
- export interface RequestInterceptorParams {
6
+ export interface RequestInterceptorParams<Api extends ApiType = ApiType> {
5
7
  request: Request;
6
8
  setDelay: (delay: number) => Promise<void>;
7
9
  getCookie: (name: string) => RequestInterceptorCookieValue;
8
10
  getHeader: (field: string) => RequestInterceptorHeaderValue;
9
11
  getHeaders: () => Record<string, RequestInterceptorHeaderValue>;
12
+ log: (logger?: Logger<'request', Api>) => Partial<LoggerTokens>;
10
13
  }
11
- export type RequestInterceptor = (params: RequestInterceptorParams) => void | Promise<void>;
12
- export interface ResponseInterceptorParams {
14
+ export type RequestInterceptor<Api extends ApiType = ApiType> = (params: RequestInterceptorParams<Api>) => void | Promise<void>;
15
+ export interface ResponseInterceptorParams<Api extends ApiType = ApiType> {
13
16
  request: Request;
14
17
  response: Response;
15
18
  setDelay: (delay: number) => Promise<void>;
@@ -22,10 +25,11 @@ export interface ResponseInterceptorParams {
22
25
  getCookie: (name: string) => RequestInterceptorCookieValue;
23
26
  clearCookie: (name: string, options?: CookieOptions) => void;
24
27
  attachment: (filename: string) => void;
28
+ log: (logger?: Logger<'response', Api>) => Partial<LoggerTokens>;
25
29
  }
26
- export type ResponseInterceptor<Data = any> = (data: Data, params: ResponseInterceptorParams) => any;
27
- export interface Interceptors {
28
- request?: RequestInterceptor;
29
- response?: ResponseInterceptor;
30
+ export type ResponseInterceptor<Data = any, Api extends ApiType = ApiType> = (data: Data, params: ResponseInterceptorParams<Api>) => any;
31
+ export interface Interceptors<Api extends ApiType = ApiType> {
32
+ request?: RequestInterceptor<Api>;
33
+ response?: ResponseInterceptor<any, Api>;
30
34
  }
31
35
  export {};
@@ -0,0 +1,43 @@
1
+ import type { GraphQLOperationName, GraphQLOperationType } from './graphql';
2
+ import type { RestMethod } from './rest';
3
+ import type { ApiType } from './shared';
4
+ import type { Cookies, Headers, Params, PlainObject, Query } from './values';
5
+ export interface LoggerBaseTokens {
6
+ type: string;
7
+ id: number;
8
+ timestamp: number;
9
+ method: RestMethod;
10
+ url: string;
11
+ headers: Headers;
12
+ cookies: Cookies;
13
+ query: Query;
14
+ params: Params;
15
+ body: any;
16
+ }
17
+ interface LoggerRestRequestTokens extends LoggerBaseTokens {
18
+ }
19
+ interface LoggerRestResponseTokens extends LoggerRestRequestTokens {
20
+ statusCode: number;
21
+ data: any;
22
+ }
23
+ interface LoggerGraphQLRequestTokens extends LoggerBaseTokens {
24
+ graphQLOperationType: GraphQLOperationType | null;
25
+ graphQLOperationName: GraphQLOperationName | null;
26
+ graphQLQuery: string | null;
27
+ variables: PlainObject | null;
28
+ }
29
+ interface LoggerGraphQLResponseTokens extends LoggerGraphQLRequestTokens {
30
+ statusCode: number;
31
+ data: any;
32
+ }
33
+ export type LoggerType = 'request' | 'response';
34
+ export type LoggerTokens<Type extends LoggerType = LoggerType, Api extends ApiType = ApiType> = Type extends 'request' ? Api extends 'rest' ? LoggerRestRequestTokens : Api extends 'graphql' ? LoggerGraphQLRequestTokens : never : Type extends 'response' ? Api extends 'rest' ? LoggerRestResponseTokens : Api extends 'graphql' ? LoggerGraphQLResponseTokens : never : never;
35
+ type LoggerTokensToLoggerOptions<Type> = {
36
+ [Key in keyof Type]?: Type[Key] extends PlainObject ? Record<string, boolean> | boolean : boolean;
37
+ };
38
+ export type LoggerOptions<Type extends LoggerType = LoggerType, Api extends ApiType = ApiType> = LoggerTokensToLoggerOptions<LoggerTokens<Type, Api>>;
39
+ export interface Logger<Type extends LoggerType = LoggerType, Api extends ApiType = ApiType> {
40
+ options?: LoggerOptions<Type, Api>;
41
+ rewrite?: (tokens: Partial<LoggerTokens<Type, Api>>) => void;
42
+ }
43
+ export {};
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
@@ -36,14 +36,14 @@ export type RestRouteConfig<Method extends RestMethod> = ({
36
36
  file: string;
37
37
  }) & {
38
38
  entities?: RestEntitiesByEntityName<Method>;
39
- interceptors?: Interceptors;
39
+ interceptors?: Interceptors<'rest'>;
40
40
  };
41
41
  export type RestPathString = `/${string}`;
42
42
  interface BaseRestRequestConfig<Method extends RestMethod> {
43
43
  path: RestPathString | RegExp;
44
44
  method: Method;
45
45
  routes: RestRouteConfig<Method>[];
46
- interceptors?: Interceptors;
46
+ interceptors?: Interceptors<'rest'>;
47
47
  }
48
48
  type RestGetRequestConfig = BaseRestRequestConfig<'get'>;
49
49
  type RestPostRequestConfig = BaseRestRequestConfig<'post'>;
@@ -23,12 +23,12 @@ export type BaseUrl = `/${string}`;
23
23
  export interface RestConfig {
24
24
  baseUrl?: BaseUrl;
25
25
  configs: RestRequestConfig[];
26
- interceptors?: Interceptors;
26
+ interceptors?: Interceptors<'rest'>;
27
27
  }
28
28
  export interface GraphqlConfig {
29
29
  baseUrl?: BaseUrl;
30
30
  configs: GraphQLRequestConfig[];
31
- interceptors?: Interceptors;
31
+ interceptors?: Interceptors<'graphql'>;
32
32
  }
33
33
  export type DatabaseConfig = {
34
34
  data: Record<string, unknown> | `${string}.json`;
@@ -0,0 +1 @@
1
+ export type ApiType = 'rest' | 'graphql';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
@@ -1,3 +1,10 @@
1
+ /// <reference types="node" />
2
+ import type { ParamsDictionary, Query as ExpressQuery } from 'express-serve-static-core';
3
+ import type { IncomingHttpHeaders } from 'http';
1
4
  export type PlainObject = Record<string, any>;
2
5
  export type Primitive = boolean | number | bigint | string | null | undefined | symbol;
6
+ export type Headers = IncomingHttpHeaders;
7
+ export type Query = ExpressQuery;
8
+ export type Params = ParamsDictionary;
9
+ export type Cookies = Record<string, string>;
3
10
  export type Data = boolean | number | string | any[] | Record<any, any> | null | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mock-config-server",
3
- "version": "3.6.0",
3
+ "version": "3.7.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 🧊",