@newmo/graphql-fake-server 0.24.1 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -45
- package/dist/esm/config.d.ts +68 -29
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +132 -52
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/server.d.ts +1 -5
- package/dist/esm/server.d.ts.map +1 -1
- package/dist/esm/server.js +8 -9
- package/dist/esm/server.js.map +1 -1
- package/package.json +3 -3
- package/src/config.ts +221 -81
- package/src/index.ts +1 -1
- package/src/server.ts +9 -24
package/README.md
CHANGED
|
@@ -164,62 +164,98 @@ Example of the config file: `graphql-fake-server.config.mjs`
|
|
|
164
164
|
```js
|
|
165
165
|
export default {
|
|
166
166
|
schemaFilePath: "./api/api.graphql",
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
167
|
+
logLevel: "info", // "debug" | "info" | "warn" | "error"
|
|
168
|
+
server: {
|
|
169
|
+
ports: {
|
|
170
|
+
fakeServer: 4000,
|
|
171
|
+
apolloServer: 4002,
|
|
172
|
+
},
|
|
173
|
+
maxRegisteredSequences: 1000,
|
|
174
|
+
maxQueryDepth: 10,
|
|
175
|
+
/**
|
|
176
|
+
* @type {string[] | undefined}
|
|
177
|
+
* Allowed CORS origins for the fake server
|
|
178
|
+
* If undefined, it allows localhost and internal network connections only
|
|
179
|
+
*/
|
|
180
|
+
allowedCORSOrigins: undefined,
|
|
181
|
+
/**
|
|
182
|
+
* @type {string[] | "auto" | undefined}
|
|
183
|
+
* Allowed Host headers for the fake server to prevent DNS rebinding attacks
|
|
184
|
+
* - "auto" (default): Automatically generates allowed hosts from CORS origins and localhost addresses
|
|
185
|
+
* - string[]: Explicit list of allowed Host headers
|
|
186
|
+
*/
|
|
187
|
+
allowedHosts: "auto",
|
|
188
|
+
},
|
|
189
|
+
mock: {
|
|
190
|
+
/**
|
|
191
|
+
* Maximum total nesting depth across all types.
|
|
192
|
+
* Prevents deep chains like: Query -> Book -> Author -> Publisher -> ...
|
|
193
|
+
*/
|
|
194
|
+
maxDepth: 9,
|
|
195
|
+
/**
|
|
196
|
+
* Maximum times a specific type can be visited in a single path.
|
|
197
|
+
* Prevents same-type recursion like: User -> User -> User -> ...
|
|
198
|
+
*/
|
|
199
|
+
maxTypeRecursion: 2,
|
|
200
|
+
/** Number of elements to generate for array/list fields */
|
|
201
|
+
listLength: 3,
|
|
202
|
+
defaultValues: {
|
|
203
|
+
String: "string",
|
|
204
|
+
Int: 12,
|
|
205
|
+
Float: 12.3,
|
|
206
|
+
Boolean: true,
|
|
207
|
+
ID: "xxxx-xxxx-xxxx-xxxx",
|
|
208
|
+
// CustomScalar: { DATE_YYYYMMDD: '"2022-01-01"' }
|
|
209
|
+
},
|
|
170
210
|
},
|
|
171
|
-
maxRegisteredSequences: 1000,
|
|
172
|
-
maxQueryDepth: 10,
|
|
173
|
-
maxTypeRecursion: 2,
|
|
174
|
-
logLevel: "info",
|
|
175
|
-
/**
|
|
176
|
-
* @type {string[] | undefined}
|
|
177
|
-
* Allowed CORS origins for the fake server
|
|
178
|
-
* If undefined, it allows localhost and internal network connections only
|
|
179
|
-
* @example ["https://example.com", "https://app.example.com"]
|
|
180
|
-
*/
|
|
181
|
-
allowedCORSOrigins: undefined,
|
|
182
|
-
/**
|
|
183
|
-
* @type {string[] | "auto" | undefined}
|
|
184
|
-
* Allowed Host headers for the fake server to prevent DNS rebinding attacks
|
|
185
|
-
* - "auto" (default): Automatically generates allowed hosts from CORS origins and localhost addresses
|
|
186
|
-
* - string[]: Explicit list of allowed Host headers
|
|
187
|
-
* - undefined: Same as "auto"
|
|
188
|
-
* @example ["localhost:4000", "myapp.local:4000"]
|
|
189
|
-
*/
|
|
190
|
-
allowedHosts: undefined,
|
|
191
211
|
};
|
|
192
212
|
```
|
|
193
213
|
|
|
194
|
-
|
|
214
|
+
### Config Schema
|
|
195
215
|
|
|
196
216
|
```ts
|
|
197
|
-
type
|
|
217
|
+
type FakeServerConfig = {
|
|
218
|
+
/** Path to the GraphQL schema file (required) */
|
|
198
219
|
schemaFilePath: string;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
220
|
+
/** Log level (default: "info") */
|
|
221
|
+
logLevel?: "debug" | "info" | "warn" | "error";
|
|
222
|
+
/** Server configuration */
|
|
223
|
+
server?: {
|
|
224
|
+
ports?: {
|
|
225
|
+
fakeServer?: number; // default: 4000
|
|
226
|
+
apolloServer?: number; // default: 4002
|
|
227
|
+
};
|
|
228
|
+
maxRegisteredSequences?: number; // default: 1000
|
|
229
|
+
maxQueryDepth?: number; // default: 10
|
|
230
|
+
allowedCORSOrigins?: string[];
|
|
231
|
+
allowedHosts?: string[] | "auto"; // default: "auto"
|
|
232
|
+
};
|
|
233
|
+
/** Mock data generation options */
|
|
234
|
+
mock?: {
|
|
235
|
+
maxDepth?: number; // default: 9
|
|
236
|
+
maxTypeRecursion?: number; // default: 2
|
|
237
|
+
listLength?: number; // default: 3
|
|
238
|
+
defaultValues?: {
|
|
239
|
+
String?: string;
|
|
240
|
+
Int?: number;
|
|
241
|
+
Float?: number;
|
|
242
|
+
Boolean?: boolean;
|
|
243
|
+
ID?: string;
|
|
244
|
+
CustomScalar?: Record<string, string>;
|
|
245
|
+
};
|
|
202
246
|
};
|
|
203
|
-
maxRegisteredSequences: number;
|
|
204
|
-
maxQueryDepth: number;
|
|
205
|
-
maxTypeRecursion: number;
|
|
206
|
-
logLevel?: LogLevel;
|
|
207
|
-
/**
|
|
208
|
-
* Allowed CORS origins for the fake server
|
|
209
|
-
* If undefined, it allows localhost and internal network connections only
|
|
210
|
-
* @example ["https://example.com", "https://app.example.com"]
|
|
211
|
-
*/
|
|
212
|
-
allowedCORSOrigins?: string[] | undefined;
|
|
213
|
-
/**
|
|
214
|
-
* Allowed Host headers for the fake server to prevent DNS rebinding attacks
|
|
215
|
-
* - "auto" (default): Automatically generates allowed hosts from CORS origins and localhost addresses
|
|
216
|
-
* - string[]: Explicit list of allowed Host headers
|
|
217
|
-
* @example ["localhost:4000", "myapp.local:4000"]
|
|
218
|
-
*/
|
|
219
|
-
allowedHosts?: string[] | "auto" | undefined;
|
|
220
247
|
};
|
|
221
248
|
```
|
|
222
249
|
|
|
250
|
+
### Depth Control
|
|
251
|
+
|
|
252
|
+
Mock generation uses two complementary depth controls to prevent heap overflow:
|
|
253
|
+
|
|
254
|
+
- **maxDepth**: Limits total nesting depth across ALL types (A -> B -> C -> D stops at depth limit)
|
|
255
|
+
- **maxTypeRecursion**: Limits how many times the SAME type can appear in a chain (User -> User -> User)
|
|
256
|
+
|
|
257
|
+
Both conditions must pass for generation to continue.
|
|
258
|
+
|
|
223
259
|
## Security
|
|
224
260
|
|
|
225
261
|
GraphQL Fake Server implements security features to prevent DNS rebinding and cross-origin attacks:
|
package/dist/esm/config.d.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MockConfig, RawMockConfig } from "@newmo/graphql-fake-core";
|
|
2
2
|
import type { LogLevel } from "./logger.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Server configuration options (user input - all fields optional).
|
|
5
|
+
* Controls ports, request limits, and security settings.
|
|
5
6
|
*/
|
|
6
|
-
export type
|
|
7
|
-
/**
|
|
8
|
-
* The path to the GraphQL schema file from cwd.
|
|
9
|
-
*/
|
|
10
|
-
schemaFilePath: string;
|
|
7
|
+
export type ServerConfig = {
|
|
11
8
|
/**
|
|
12
9
|
* The ports for the fake server and Apollo Server.
|
|
13
10
|
*/
|
|
@@ -29,29 +26,11 @@ export type FakeServerConfig = {
|
|
|
29
26
|
* Default is 1000.
|
|
30
27
|
*/
|
|
31
28
|
maxRegisteredSequences?: number | undefined;
|
|
32
|
-
/**
|
|
33
|
-
* Maximum number of times a type can be recursively visited.
|
|
34
|
-
* This prevents exponential explosion when generating mock data for recursive types.
|
|
35
|
-
* For example, if User has a field `friends: [User!]!`, setting maxTypeRecursion to 2
|
|
36
|
-
* will allow User -> User -> User but stop there.
|
|
37
|
-
* Default is 2.
|
|
38
|
-
*/
|
|
39
|
-
maxTypeRecursion?: RawConfig["maxTypeRecursion"] | undefined;
|
|
40
29
|
/**
|
|
41
30
|
* The maximum number of depth of complexity of query
|
|
42
31
|
* Default is 10
|
|
43
32
|
*/
|
|
44
33
|
maxQueryDepth?: number | undefined;
|
|
45
|
-
/**
|
|
46
|
-
* Default values for scalar types.
|
|
47
|
-
*/
|
|
48
|
-
defaultValues?: RawConfig["defaultValues"] | undefined;
|
|
49
|
-
/**
|
|
50
|
-
* Log level: "debug", "info", "warn", "error"
|
|
51
|
-
* If you want to see the debug logs, set the logLevel to "debug".
|
|
52
|
-
* Default is "info".
|
|
53
|
-
*/
|
|
54
|
-
logLevel?: LogLevel | undefined;
|
|
55
34
|
/**
|
|
56
35
|
* Additional origins to allow for CORS requests.
|
|
57
36
|
* By default, only localhost and private IP ranges are allowed.
|
|
@@ -66,20 +45,80 @@ export type FakeServerConfig = {
|
|
|
66
45
|
*/
|
|
67
46
|
allowedHosts?: string[] | "auto" | undefined;
|
|
68
47
|
};
|
|
69
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Configuration for the fake server (user input - most fields optional).
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```js
|
|
53
|
+
* export default {
|
|
54
|
+
* schemaFilePath: "./api.graphqls",
|
|
55
|
+
* logLevel: "debug",
|
|
56
|
+
* server: {
|
|
57
|
+
* ports: { fakeServer: 4000, apolloServer: 4002 },
|
|
58
|
+
* maxQueryDepth: 10,
|
|
59
|
+
* },
|
|
60
|
+
* mock: {
|
|
61
|
+
* maxDepth: 9,
|
|
62
|
+
* maxTypeRecursion: 2,
|
|
63
|
+
* listLength: 3,
|
|
64
|
+
* },
|
|
65
|
+
* };
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export type FakeServerConfig = {
|
|
69
|
+
/**
|
|
70
|
+
* The path to the GraphQL schema file from cwd.
|
|
71
|
+
* @required
|
|
72
|
+
*/
|
|
70
73
|
schemaFilePath: string;
|
|
74
|
+
/**
|
|
75
|
+
* Log level for the server.
|
|
76
|
+
* @default "info"
|
|
77
|
+
*/
|
|
78
|
+
logLevel?: LogLevel | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Server configuration options (ports, limits, security).
|
|
81
|
+
* @see ServerConfig
|
|
82
|
+
*/
|
|
83
|
+
server?: ServerConfig | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Mock data generation options (depth limits, default values).
|
|
86
|
+
* @see RawMockConfig from @newmo/graphql-fake-core
|
|
87
|
+
*/
|
|
88
|
+
mock?: RawMockConfig | undefined;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Server configuration (normalized - all fields required).
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
export type RequiredServerConfig = {
|
|
71
95
|
ports: {
|
|
72
96
|
fakeServer: number;
|
|
73
97
|
apolloServer: number;
|
|
74
98
|
};
|
|
75
99
|
maxRegisteredSequences: number;
|
|
76
|
-
maxTypeRecursion: number;
|
|
77
100
|
maxQueryDepth: number;
|
|
78
|
-
defaultValues: RawConfig["defaultValues"];
|
|
79
|
-
logLevel: LogLevel;
|
|
80
101
|
allowedCORSOrigins: string[];
|
|
81
102
|
allowedHosts: string[] | "auto";
|
|
82
103
|
};
|
|
104
|
+
/**
|
|
105
|
+
* Mock configuration (normalized - all fields required).
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
export type RequiredMockConfig = MockConfig;
|
|
109
|
+
/**
|
|
110
|
+
* Fake server configuration (normalized - all fields required).
|
|
111
|
+
* This is the internal config type with defaults applied.
|
|
112
|
+
*
|
|
113
|
+
* @see FakeServerConfig for user-facing config with optional fields
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
export type RequiredFakeServerConfig = {
|
|
117
|
+
schemaFilePath: string;
|
|
118
|
+
logLevel: LogLevel;
|
|
119
|
+
server: RequiredServerConfig;
|
|
120
|
+
mock: RequiredMockConfig;
|
|
121
|
+
};
|
|
83
122
|
export declare const normalizeFakeServerConfig: (config: FakeServerConfig) => RequiredFakeServerConfig;
|
|
84
123
|
export declare const validateFakeServerConfig: (config: FakeServerConfig) => FakeServerConfig;
|
|
85
124
|
/**
|
package/dist/esm/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB;;OAEG;IACH,KAAK,CAAC,EACA;QACI;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC;;;;WAIG;QACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACrC,GACD,SAAS,CAAC;IAChB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC1C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC;CAChD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AA8CF,eAAO,MAAM,yBAAyB,GAAI,QAAQ,gBAAgB,KAAG,wBA+BpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,gBAAgB,KAAG,gBAmGnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GACnB,KAAK,MAAM,EACX,YAAY,MAAM,KACnB,OAAO,CAAC,wBAAwB,CAMlC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GAAI,+BAGzC;IACC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACnC,KAAG,wBAYH,CAAC"}
|
package/dist/esm/config.js
CHANGED
|
@@ -1,19 +1,72 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
|
+
/**
|
|
4
|
+
* Default values for server configuration.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
const ServerDefaults = {
|
|
8
|
+
ports: {
|
|
9
|
+
fakeServer: 4000,
|
|
10
|
+
apolloServer: 4002,
|
|
11
|
+
},
|
|
12
|
+
maxRegisteredSequences: 1000,
|
|
13
|
+
maxQueryDepth: 10,
|
|
14
|
+
allowedCORSOrigins: [],
|
|
15
|
+
allowedHosts: "auto",
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Default log level.
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
const LogLevelDefault = "info";
|
|
22
|
+
/**
|
|
23
|
+
* Default values for mock generation options.
|
|
24
|
+
* @see RawMockConfig
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
const MockDefaultValues = {
|
|
28
|
+
maxDepth: 9,
|
|
29
|
+
maxTypeRecursion: 2,
|
|
30
|
+
listLength: 3,
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Default values for GraphQL scalar types.
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
const ScalarDefaults = {
|
|
37
|
+
String: "string",
|
|
38
|
+
Int: 12,
|
|
39
|
+
Float: 12.3,
|
|
40
|
+
Boolean: true,
|
|
41
|
+
ID: "xxxx-xxxx-xxxx-xxxx",
|
|
42
|
+
};
|
|
3
43
|
export const normalizeFakeServerConfig = (config) => {
|
|
4
44
|
return {
|
|
5
45
|
schemaFilePath: config.schemaFilePath,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
46
|
+
logLevel: config.logLevel ?? LogLevelDefault,
|
|
47
|
+
server: {
|
|
48
|
+
ports: {
|
|
49
|
+
fakeServer: config.server?.ports?.fakeServer ?? ServerDefaults.ports.fakeServer,
|
|
50
|
+
apolloServer: config.server?.ports?.apolloServer ?? ServerDefaults.ports.apolloServer,
|
|
51
|
+
},
|
|
52
|
+
maxRegisteredSequences: config.server?.maxRegisteredSequences ?? ServerDefaults.maxRegisteredSequences,
|
|
53
|
+
maxQueryDepth: config.server?.maxQueryDepth ?? ServerDefaults.maxQueryDepth,
|
|
54
|
+
allowedCORSOrigins: config.server?.allowedCORSOrigins ?? ServerDefaults.allowedCORSOrigins,
|
|
55
|
+
allowedHosts: config.server?.allowedHosts ?? ServerDefaults.allowedHosts,
|
|
56
|
+
},
|
|
57
|
+
mock: {
|
|
58
|
+
maxDepth: config.mock?.maxDepth ?? MockDefaultValues.maxDepth,
|
|
59
|
+
maxTypeRecursion: config.mock?.maxTypeRecursion ?? MockDefaultValues.maxTypeRecursion,
|
|
60
|
+
listLength: config.mock?.listLength ?? MockDefaultValues.listLength,
|
|
61
|
+
defaultValues: {
|
|
62
|
+
String: config.mock?.defaultValues?.String ?? ScalarDefaults.String,
|
|
63
|
+
Int: config.mock?.defaultValues?.Int ?? ScalarDefaults.Int,
|
|
64
|
+
Float: config.mock?.defaultValues?.Float ?? ScalarDefaults.Float,
|
|
65
|
+
Boolean: config.mock?.defaultValues?.Boolean ?? ScalarDefaults.Boolean,
|
|
66
|
+
ID: config.mock?.defaultValues?.ID ?? ScalarDefaults.ID,
|
|
67
|
+
CustomScalar: config.mock?.defaultValues?.CustomScalar ?? {},
|
|
68
|
+
},
|
|
9
69
|
},
|
|
10
|
-
maxRegisteredSequences: config.maxRegisteredSequences ?? 1000,
|
|
11
|
-
maxTypeRecursion: config.maxTypeRecursion ?? 2,
|
|
12
|
-
maxQueryDepth: config.maxQueryDepth ?? 10,
|
|
13
|
-
defaultValues: config.defaultValues ?? {},
|
|
14
|
-
logLevel: config.logLevel ?? "info",
|
|
15
|
-
allowedCORSOrigins: config.allowedCORSOrigins ?? [],
|
|
16
|
-
allowedHosts: config.allowedHosts ?? "auto",
|
|
17
70
|
};
|
|
18
71
|
};
|
|
19
72
|
export const validateFakeServerConfig = (config) => {
|
|
@@ -23,59 +76,86 @@ export const validateFakeServerConfig = (config) => {
|
|
|
23
76
|
if (typeof config.schemaFilePath !== "string") {
|
|
24
77
|
throw new Error("The schemaPath must be a string.");
|
|
25
78
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
79
|
+
// logLevel validation
|
|
80
|
+
if (config.logLevel && !["debug", "info", "warn", "error"].includes(config.logLevel)) {
|
|
81
|
+
throw new Error("The logLevel must be one of 'debug', 'info', 'warn', 'error'.");
|
|
82
|
+
}
|
|
83
|
+
// Server validation
|
|
84
|
+
if (config.server) {
|
|
85
|
+
if (typeof config.server !== "object") {
|
|
86
|
+
throw new Error("The server must be an object.");
|
|
29
87
|
}
|
|
30
|
-
if (config.
|
|
31
|
-
|
|
88
|
+
if (config.server.ports) {
|
|
89
|
+
if (typeof config.server.ports !== "object") {
|
|
90
|
+
throw new Error("The server.ports must be an object.");
|
|
91
|
+
}
|
|
92
|
+
if (config.server.ports.fakeServer &&
|
|
93
|
+
typeof config.server.ports.fakeServer !== "number") {
|
|
94
|
+
throw new Error("The server.ports.fakeServer must be a number.");
|
|
95
|
+
}
|
|
96
|
+
if (config.server.ports.apolloServer &&
|
|
97
|
+
typeof config.server.ports.apolloServer !== "number") {
|
|
98
|
+
throw new Error("The server.ports.apolloServer must be a number.");
|
|
99
|
+
}
|
|
32
100
|
}
|
|
33
|
-
if (config.
|
|
34
|
-
|
|
101
|
+
if (config.server.maxRegisteredSequences &&
|
|
102
|
+
typeof config.server.maxRegisteredSequences !== "number") {
|
|
103
|
+
throw new Error("The server.maxRegisteredSequences must be a number.");
|
|
35
104
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
throw new Error("The maxRegisteredSequences must be a number.");
|
|
39
|
-
}
|
|
40
|
-
if (config.maxTypeRecursion !== undefined) {
|
|
41
|
-
if (typeof config.maxTypeRecursion !== "number") {
|
|
42
|
-
throw new Error("The maxTypeRecursion must be a number.");
|
|
105
|
+
if (config.server.maxQueryDepth && typeof config.server.maxQueryDepth !== "number") {
|
|
106
|
+
throw new Error("The server.maxQueryDepth must be a number.");
|
|
43
107
|
}
|
|
44
|
-
if (config.
|
|
45
|
-
|
|
108
|
+
if (config.server.allowedCORSOrigins) {
|
|
109
|
+
if (!Array.isArray(config.server.allowedCORSOrigins)) {
|
|
110
|
+
throw new Error("The server.allowedCORSOrigins must be an array.");
|
|
111
|
+
}
|
|
112
|
+
for (const origin of config.server.allowedCORSOrigins) {
|
|
113
|
+
if (typeof origin !== "string") {
|
|
114
|
+
throw new Error("Each server.allowedCORSOrigin must be a string.");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
46
117
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
118
|
+
if (config.server.allowedHosts) {
|
|
119
|
+
if (config.server.allowedHosts !== "auto" &&
|
|
120
|
+
!Array.isArray(config.server.allowedHosts)) {
|
|
121
|
+
throw new Error("The server.allowedHosts must be 'auto' or an array of strings.");
|
|
122
|
+
}
|
|
123
|
+
if (Array.isArray(config.server.allowedHosts)) {
|
|
124
|
+
for (const host of config.server.allowedHosts) {
|
|
125
|
+
if (typeof host !== "string") {
|
|
126
|
+
throw new Error("Each server.allowedHost must be a string.");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
54
130
|
}
|
|
55
131
|
}
|
|
56
|
-
//
|
|
57
|
-
if (config.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (config.allowedCORSOrigins) {
|
|
61
|
-
if (!Array.isArray(config.allowedCORSOrigins)) {
|
|
62
|
-
throw new Error("The allowedCORSOrigins must be an array.");
|
|
132
|
+
// Mock validation
|
|
133
|
+
if (config.mock) {
|
|
134
|
+
if (typeof config.mock !== "object") {
|
|
135
|
+
throw new Error("The mock must be an object.");
|
|
63
136
|
}
|
|
64
|
-
|
|
65
|
-
if (typeof
|
|
66
|
-
throw new Error("
|
|
137
|
+
if (config.mock.maxDepth !== undefined) {
|
|
138
|
+
if (typeof config.mock.maxDepth !== "number") {
|
|
139
|
+
throw new Error("The mock.maxDepth must be a number.");
|
|
140
|
+
}
|
|
141
|
+
if (config.mock.maxDepth < 1) {
|
|
142
|
+
throw new Error("The mock.maxDepth must be at least 1.");
|
|
67
143
|
}
|
|
68
144
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
145
|
+
if (config.mock.maxTypeRecursion !== undefined) {
|
|
146
|
+
if (typeof config.mock.maxTypeRecursion !== "number") {
|
|
147
|
+
throw new Error("The mock.maxTypeRecursion must be a number.");
|
|
148
|
+
}
|
|
149
|
+
if (config.mock.maxTypeRecursion < 1) {
|
|
150
|
+
throw new Error("The mock.maxTypeRecursion must be at least 1.");
|
|
151
|
+
}
|
|
73
152
|
}
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
153
|
+
if (config.mock.listLength !== undefined && typeof config.mock.listLength !== "number") {
|
|
154
|
+
throw new Error("The mock.listLength must be a number.");
|
|
155
|
+
}
|
|
156
|
+
if (config.mock.defaultValues) {
|
|
157
|
+
if (typeof config.mock.defaultValues !== "object") {
|
|
158
|
+
throw new Error("The mock.defaultValues must be an object.");
|
|
79
159
|
}
|
|
80
160
|
}
|
|
81
161
|
}
|
package/dist/esm/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { FakeServerConfig, RequiredFakeServerConfig } from "./config.js";
|
|
1
|
+
export type { FakeServerConfig, RequiredFakeServerConfig, ServerConfig } from "./config.js";
|
|
2
2
|
export { normalizeFakeServerConfig, validateFakeServerConfig, } from "./config.js";
|
|
3
3
|
export type { ConditionRule, CreateFakeServerOptions, RegisterSequenceNetworkError, RegisterSequenceOperation, RegisterSequenceOptions, } from "./server.js";
|
|
4
4
|
export { createFakeServer } from "./server.js";
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EACH,yBAAyB,EACzB,wBAAwB,GAC3B,MAAM,aAAa,CAAC;AACrB,YAAY,EACR,aAAa,EACb,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/esm/server.d.ts
CHANGED
|
@@ -2,11 +2,7 @@ import { type MockObject } from "@newmo/graphql-fake-core";
|
|
|
2
2
|
import type { GraphQLSchema } from "graphql/index.js";
|
|
3
3
|
import type { RequiredFakeServerConfig } from "./config.js";
|
|
4
4
|
import { type LogLevel } from "./logger.js";
|
|
5
|
-
export type CreateFakeServerOptions = RequiredFakeServerConfig
|
|
6
|
-
logLevel?: LogLevel;
|
|
7
|
-
allowedCORSOrigins: string[];
|
|
8
|
-
allowedHosts?: string[] | "auto";
|
|
9
|
-
};
|
|
5
|
+
export type CreateFakeServerOptions = RequiredFakeServerConfig;
|
|
10
6
|
type FakeServerInternal = {
|
|
11
7
|
mockObject: MockObject;
|
|
12
8
|
schema: GraphQLSchema;
|
package/dist/esm/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAe1D,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAe1D,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAE/D,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,mDAIlC;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACpC,KAAG,GAAG,CAAC,MAAM,CAqCb,CAAC;AA6IF,MAAM,MAAM,aAAa,GACnB;IACI,IAAI,EAAE,QAAQ,CAAC;CAClB,GACD;IACI,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAGR,MAAM,MAAM,YAAY,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC;KACjB,CAAC;CACL,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAElC,gBAAgB,EAAE,aAAa,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9B,gBAAgB,EAAE,aAAa,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAAG,yBAAyB,CAAC;AA0tB/F,eAAO,MAAM,gBAAgB,GAAU,SAAS,uBAAuB;;;;;;;;EA0BtE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,SAAS,kBAAkB;;;;;;;;EAuCzE,CAAC"}
|
package/dist/esm/server.js
CHANGED
|
@@ -763,13 +763,12 @@ const createRoutingServer = async ({ logLevel, ports, maxRegisteredSequences, al
|
|
|
763
763
|
return app;
|
|
764
764
|
};
|
|
765
765
|
export const createFakeServer = async (options) => {
|
|
766
|
-
const {
|
|
766
|
+
const { schemaFilePath, logLevel, server, mock } = options;
|
|
767
767
|
const logger = createLogger(logLevel);
|
|
768
768
|
const schema = buildSchema(await fs.readFile(schemaFilePath, "utf-8"));
|
|
769
769
|
const mockResult = await createMock({
|
|
770
770
|
schema,
|
|
771
|
-
|
|
772
|
-
defaultValues,
|
|
771
|
+
mock,
|
|
773
772
|
});
|
|
774
773
|
if (!mockResult.ok) {
|
|
775
774
|
logger.error("Failed to create mock data", mockResult);
|
|
@@ -780,14 +779,14 @@ export const createFakeServer = async (options) => {
|
|
|
780
779
|
logger.debug("created mock code", mockResult.code);
|
|
781
780
|
logger.debug("created mock data", mockResult.mock);
|
|
782
781
|
return createFakeServerInternal({
|
|
783
|
-
ports,
|
|
782
|
+
ports: server.ports,
|
|
784
783
|
schema,
|
|
785
784
|
mockObject: mockResult.mock,
|
|
786
|
-
maxQueryDepth,
|
|
787
|
-
maxRegisteredSequences,
|
|
788
|
-
logLevel: logLevel
|
|
789
|
-
allowedCORSOrigins,
|
|
790
|
-
allowedHosts,
|
|
785
|
+
maxQueryDepth: server.maxQueryDepth,
|
|
786
|
+
maxRegisteredSequences: server.maxRegisteredSequences,
|
|
787
|
+
logLevel: logLevel,
|
|
788
|
+
allowedCORSOrigins: server.allowedCORSOrigins,
|
|
789
|
+
allowedHosts: server.allowedHosts,
|
|
791
790
|
});
|
|
792
791
|
};
|
|
793
792
|
export const createFakeServerInternal = async (options) => {
|
package/dist/esm/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@newmo/graphql-fake-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "GraphQL fake server for testing",
|
|
6
6
|
"keywords": [
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@graphql-tools/mock": "^9.0.23",
|
|
53
53
|
"@graphql-tools/schema": "^10.0.23",
|
|
54
54
|
"@hono/node-server": "^1.14.4",
|
|
55
|
-
"@newmo/graphql-fake-core": "0.
|
|
55
|
+
"@newmo/graphql-fake-core": "0.25.0",
|
|
56
56
|
"cors": "^2.8.5",
|
|
57
57
|
"express": "^5.1.0",
|
|
58
58
|
"graphql-depth-limit": "^1.1.0",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"access": "public",
|
|
81
81
|
"registry": "https://registry.npmjs.org/"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "d86dc669a3978f3c46f86c0d2e84b4d2c8f9311a"
|
|
84
84
|
}
|
package/src/config.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
|
-
import type {
|
|
3
|
+
import type { MockConfig, RawMockConfig } from "@newmo/graphql-fake-core";
|
|
4
4
|
import type { LogLevel } from "./logger.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Server configuration options (user input - all fields optional).
|
|
8
|
+
* Controls ports, request limits, and security settings.
|
|
8
9
|
*/
|
|
9
|
-
export type
|
|
10
|
-
/**
|
|
11
|
-
* The path to the GraphQL schema file from cwd.
|
|
12
|
-
*/
|
|
13
|
-
schemaFilePath: string;
|
|
10
|
+
export type ServerConfig = {
|
|
14
11
|
/**
|
|
15
12
|
* The ports for the fake server and Apollo Server.
|
|
16
13
|
*/
|
|
@@ -34,29 +31,11 @@ export type FakeServerConfig = {
|
|
|
34
31
|
* Default is 1000.
|
|
35
32
|
*/
|
|
36
33
|
maxRegisteredSequences?: number | undefined;
|
|
37
|
-
/**
|
|
38
|
-
* Maximum number of times a type can be recursively visited.
|
|
39
|
-
* This prevents exponential explosion when generating mock data for recursive types.
|
|
40
|
-
* For example, if User has a field `friends: [User!]!`, setting maxTypeRecursion to 2
|
|
41
|
-
* will allow User -> User -> User but stop there.
|
|
42
|
-
* Default is 2.
|
|
43
|
-
*/
|
|
44
|
-
maxTypeRecursion?: RawConfig["maxTypeRecursion"] | undefined;
|
|
45
34
|
/**
|
|
46
35
|
* The maximum number of depth of complexity of query
|
|
47
36
|
* Default is 10
|
|
48
37
|
*/
|
|
49
38
|
maxQueryDepth?: number | undefined;
|
|
50
|
-
/**
|
|
51
|
-
* Default values for scalar types.
|
|
52
|
-
*/
|
|
53
|
-
defaultValues?: RawConfig["defaultValues"] | undefined;
|
|
54
|
-
/**
|
|
55
|
-
* Log level: "debug", "info", "warn", "error"
|
|
56
|
-
* If you want to see the debug logs, set the logLevel to "debug".
|
|
57
|
-
* Default is "info".
|
|
58
|
-
*/
|
|
59
|
-
logLevel?: LogLevel | undefined;
|
|
60
39
|
/**
|
|
61
40
|
* Additional origins to allow for CORS requests.
|
|
62
41
|
* By default, only localhost and private IP ranges are allowed.
|
|
@@ -71,37 +50,162 @@ export type FakeServerConfig = {
|
|
|
71
50
|
*/
|
|
72
51
|
allowedHosts?: string[] | "auto" | undefined;
|
|
73
52
|
};
|
|
74
|
-
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Configuration for the fake server (user input - most fields optional).
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```js
|
|
59
|
+
* export default {
|
|
60
|
+
* schemaFilePath: "./api.graphqls",
|
|
61
|
+
* logLevel: "debug",
|
|
62
|
+
* server: {
|
|
63
|
+
* ports: { fakeServer: 4000, apolloServer: 4002 },
|
|
64
|
+
* maxQueryDepth: 10,
|
|
65
|
+
* },
|
|
66
|
+
* mock: {
|
|
67
|
+
* maxDepth: 9,
|
|
68
|
+
* maxTypeRecursion: 2,
|
|
69
|
+
* listLength: 3,
|
|
70
|
+
* },
|
|
71
|
+
* };
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export type FakeServerConfig = {
|
|
75
|
+
/**
|
|
76
|
+
* The path to the GraphQL schema file from cwd.
|
|
77
|
+
* @required
|
|
78
|
+
*/
|
|
75
79
|
schemaFilePath: string;
|
|
80
|
+
/**
|
|
81
|
+
* Log level for the server.
|
|
82
|
+
* @default "info"
|
|
83
|
+
*/
|
|
84
|
+
logLevel?: LogLevel | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Server configuration options (ports, limits, security).
|
|
87
|
+
* @see ServerConfig
|
|
88
|
+
*/
|
|
89
|
+
server?: ServerConfig | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Mock data generation options (depth limits, default values).
|
|
92
|
+
* @see RawMockConfig from @newmo/graphql-fake-core
|
|
93
|
+
*/
|
|
94
|
+
mock?: RawMockConfig | undefined;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Server configuration (normalized - all fields required).
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
export type RequiredServerConfig = {
|
|
76
102
|
ports: {
|
|
77
103
|
fakeServer: number;
|
|
78
104
|
apolloServer: number;
|
|
79
105
|
};
|
|
80
106
|
maxRegisteredSequences: number;
|
|
81
|
-
maxTypeRecursion: number;
|
|
82
107
|
maxQueryDepth: number;
|
|
83
|
-
defaultValues: RawConfig["defaultValues"];
|
|
84
|
-
logLevel: LogLevel;
|
|
85
108
|
allowedCORSOrigins: string[];
|
|
86
109
|
allowedHosts: string[] | "auto";
|
|
87
110
|
};
|
|
88
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Mock configuration (normalized - all fields required).
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
export type RequiredMockConfig = MockConfig;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Fake server configuration (normalized - all fields required).
|
|
120
|
+
* This is the internal config type with defaults applied.
|
|
121
|
+
*
|
|
122
|
+
* @see FakeServerConfig for user-facing config with optional fields
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
export type RequiredFakeServerConfig = {
|
|
126
|
+
schemaFilePath: string;
|
|
127
|
+
logLevel: LogLevel;
|
|
128
|
+
server: RequiredServerConfig;
|
|
129
|
+
mock: RequiredMockConfig;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Default values for server configuration.
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
const ServerDefaults = {
|
|
137
|
+
ports: {
|
|
138
|
+
fakeServer: 4000,
|
|
139
|
+
apolloServer: 4002,
|
|
140
|
+
},
|
|
141
|
+
maxRegisteredSequences: 1000,
|
|
142
|
+
maxQueryDepth: 10,
|
|
143
|
+
allowedCORSOrigins: [] as string[],
|
|
144
|
+
allowedHosts: "auto" as const,
|
|
145
|
+
} as const;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Default log level.
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
const LogLevelDefault = "info" as LogLevel;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Default values for mock generation options.
|
|
155
|
+
* @see RawMockConfig
|
|
156
|
+
* @internal
|
|
157
|
+
*/
|
|
158
|
+
const MockDefaultValues = {
|
|
159
|
+
maxDepth: 9,
|
|
160
|
+
maxTypeRecursion: 2,
|
|
161
|
+
listLength: 3,
|
|
162
|
+
} as const;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Default values for GraphQL scalar types.
|
|
166
|
+
* @internal
|
|
167
|
+
*/
|
|
168
|
+
const ScalarDefaults = {
|
|
169
|
+
String: "string",
|
|
170
|
+
Int: 12,
|
|
171
|
+
Float: 12.3,
|
|
172
|
+
Boolean: true,
|
|
173
|
+
ID: "xxxx-xxxx-xxxx-xxxx",
|
|
174
|
+
} as const;
|
|
175
|
+
|
|
89
176
|
export const normalizeFakeServerConfig = (config: FakeServerConfig): RequiredFakeServerConfig => {
|
|
90
177
|
return {
|
|
91
178
|
schemaFilePath: config.schemaFilePath,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
179
|
+
logLevel: config.logLevel ?? LogLevelDefault,
|
|
180
|
+
server: {
|
|
181
|
+
ports: {
|
|
182
|
+
fakeServer: config.server?.ports?.fakeServer ?? ServerDefaults.ports.fakeServer,
|
|
183
|
+
apolloServer:
|
|
184
|
+
config.server?.ports?.apolloServer ?? ServerDefaults.ports.apolloServer,
|
|
185
|
+
},
|
|
186
|
+
maxRegisteredSequences:
|
|
187
|
+
config.server?.maxRegisteredSequences ?? ServerDefaults.maxRegisteredSequences,
|
|
188
|
+
maxQueryDepth: config.server?.maxQueryDepth ?? ServerDefaults.maxQueryDepth,
|
|
189
|
+
allowedCORSOrigins:
|
|
190
|
+
config.server?.allowedCORSOrigins ?? ServerDefaults.allowedCORSOrigins,
|
|
191
|
+
allowedHosts: config.server?.allowedHosts ?? ServerDefaults.allowedHosts,
|
|
192
|
+
},
|
|
193
|
+
mock: {
|
|
194
|
+
maxDepth: config.mock?.maxDepth ?? MockDefaultValues.maxDepth,
|
|
195
|
+
maxTypeRecursion: config.mock?.maxTypeRecursion ?? MockDefaultValues.maxTypeRecursion,
|
|
196
|
+
listLength: config.mock?.listLength ?? MockDefaultValues.listLength,
|
|
197
|
+
defaultValues: {
|
|
198
|
+
String: config.mock?.defaultValues?.String ?? ScalarDefaults.String,
|
|
199
|
+
Int: config.mock?.defaultValues?.Int ?? ScalarDefaults.Int,
|
|
200
|
+
Float: config.mock?.defaultValues?.Float ?? ScalarDefaults.Float,
|
|
201
|
+
Boolean: config.mock?.defaultValues?.Boolean ?? ScalarDefaults.Boolean,
|
|
202
|
+
ID: config.mock?.defaultValues?.ID ?? ScalarDefaults.ID,
|
|
203
|
+
CustomScalar: config.mock?.defaultValues?.CustomScalar ?? {},
|
|
204
|
+
},
|
|
95
205
|
},
|
|
96
|
-
maxRegisteredSequences: config.maxRegisteredSequences ?? 1000,
|
|
97
|
-
maxTypeRecursion: config.maxTypeRecursion ?? 2,
|
|
98
|
-
maxQueryDepth: config.maxQueryDepth ?? 10,
|
|
99
|
-
defaultValues: config.defaultValues ?? {},
|
|
100
|
-
logLevel: config.logLevel ?? "info",
|
|
101
|
-
allowedCORSOrigins: config.allowedCORSOrigins ?? [],
|
|
102
|
-
allowedHosts: config.allowedHosts ?? "auto",
|
|
103
206
|
};
|
|
104
207
|
};
|
|
208
|
+
|
|
105
209
|
export const validateFakeServerConfig = (config: FakeServerConfig): FakeServerConfig => {
|
|
106
210
|
if (!config.schemaFilePath) {
|
|
107
211
|
throw new Error("The schemaFilePath is required.");
|
|
@@ -109,59 +213,94 @@ export const validateFakeServerConfig = (config: FakeServerConfig): FakeServerCo
|
|
|
109
213
|
if (typeof config.schemaFilePath !== "string") {
|
|
110
214
|
throw new Error("The schemaPath must be a string.");
|
|
111
215
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
216
|
+
// logLevel validation
|
|
217
|
+
if (config.logLevel && !["debug", "info", "warn", "error"].includes(config.logLevel)) {
|
|
218
|
+
throw new Error("The logLevel must be one of 'debug', 'info', 'warn', 'error'.");
|
|
219
|
+
}
|
|
220
|
+
// Server validation
|
|
221
|
+
if (config.server) {
|
|
222
|
+
if (typeof config.server !== "object") {
|
|
223
|
+
throw new Error("The server must be an object.");
|
|
115
224
|
}
|
|
116
|
-
if (config.
|
|
117
|
-
|
|
225
|
+
if (config.server.ports) {
|
|
226
|
+
if (typeof config.server.ports !== "object") {
|
|
227
|
+
throw new Error("The server.ports must be an object.");
|
|
228
|
+
}
|
|
229
|
+
if (
|
|
230
|
+
config.server.ports.fakeServer &&
|
|
231
|
+
typeof config.server.ports.fakeServer !== "number"
|
|
232
|
+
) {
|
|
233
|
+
throw new Error("The server.ports.fakeServer must be a number.");
|
|
234
|
+
}
|
|
235
|
+
if (
|
|
236
|
+
config.server.ports.apolloServer &&
|
|
237
|
+
typeof config.server.ports.apolloServer !== "number"
|
|
238
|
+
) {
|
|
239
|
+
throw new Error("The server.ports.apolloServer must be a number.");
|
|
240
|
+
}
|
|
118
241
|
}
|
|
119
|
-
if (
|
|
120
|
-
|
|
242
|
+
if (
|
|
243
|
+
config.server.maxRegisteredSequences &&
|
|
244
|
+
typeof config.server.maxRegisteredSequences !== "number"
|
|
245
|
+
) {
|
|
246
|
+
throw new Error("The server.maxRegisteredSequences must be a number.");
|
|
121
247
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
throw new Error("The maxRegisteredSequences must be a number.");
|
|
125
|
-
}
|
|
126
|
-
if (config.maxTypeRecursion !== undefined) {
|
|
127
|
-
if (typeof config.maxTypeRecursion !== "number") {
|
|
128
|
-
throw new Error("The maxTypeRecursion must be a number.");
|
|
248
|
+
if (config.server.maxQueryDepth && typeof config.server.maxQueryDepth !== "number") {
|
|
249
|
+
throw new Error("The server.maxQueryDepth must be a number.");
|
|
129
250
|
}
|
|
130
|
-
if (config.
|
|
131
|
-
|
|
251
|
+
if (config.server.allowedCORSOrigins) {
|
|
252
|
+
if (!Array.isArray(config.server.allowedCORSOrigins)) {
|
|
253
|
+
throw new Error("The server.allowedCORSOrigins must be an array.");
|
|
254
|
+
}
|
|
255
|
+
for (const origin of config.server.allowedCORSOrigins) {
|
|
256
|
+
if (typeof origin !== "string") {
|
|
257
|
+
throw new Error("Each server.allowedCORSOrigin must be a string.");
|
|
258
|
+
}
|
|
259
|
+
}
|
|
132
260
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
261
|
+
if (config.server.allowedHosts) {
|
|
262
|
+
if (
|
|
263
|
+
config.server.allowedHosts !== "auto" &&
|
|
264
|
+
!Array.isArray(config.server.allowedHosts)
|
|
265
|
+
) {
|
|
266
|
+
throw new Error("The server.allowedHosts must be 'auto' or an array of strings.");
|
|
267
|
+
}
|
|
268
|
+
if (Array.isArray(config.server.allowedHosts)) {
|
|
269
|
+
for (const host of config.server.allowedHosts) {
|
|
270
|
+
if (typeof host !== "string") {
|
|
271
|
+
throw new Error("Each server.allowedHost must be a string.");
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
140
275
|
}
|
|
141
276
|
}
|
|
142
|
-
//
|
|
143
|
-
if (config.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (config.allowedCORSOrigins) {
|
|
147
|
-
if (!Array.isArray(config.allowedCORSOrigins)) {
|
|
148
|
-
throw new Error("The allowedCORSOrigins must be an array.");
|
|
277
|
+
// Mock validation
|
|
278
|
+
if (config.mock) {
|
|
279
|
+
if (typeof config.mock !== "object") {
|
|
280
|
+
throw new Error("The mock must be an object.");
|
|
149
281
|
}
|
|
150
|
-
|
|
151
|
-
if (typeof
|
|
152
|
-
throw new Error("
|
|
282
|
+
if (config.mock.maxDepth !== undefined) {
|
|
283
|
+
if (typeof config.mock.maxDepth !== "number") {
|
|
284
|
+
throw new Error("The mock.maxDepth must be a number.");
|
|
285
|
+
}
|
|
286
|
+
if (config.mock.maxDepth < 1) {
|
|
287
|
+
throw new Error("The mock.maxDepth must be at least 1.");
|
|
153
288
|
}
|
|
154
289
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
290
|
+
if (config.mock.maxTypeRecursion !== undefined) {
|
|
291
|
+
if (typeof config.mock.maxTypeRecursion !== "number") {
|
|
292
|
+
throw new Error("The mock.maxTypeRecursion must be a number.");
|
|
293
|
+
}
|
|
294
|
+
if (config.mock.maxTypeRecursion < 1) {
|
|
295
|
+
throw new Error("The mock.maxTypeRecursion must be at least 1.");
|
|
296
|
+
}
|
|
159
297
|
}
|
|
160
|
-
if (
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
298
|
+
if (config.mock.listLength !== undefined && typeof config.mock.listLength !== "number") {
|
|
299
|
+
throw new Error("The mock.listLength must be a number.");
|
|
300
|
+
}
|
|
301
|
+
if (config.mock.defaultValues) {
|
|
302
|
+
if (typeof config.mock.defaultValues !== "object") {
|
|
303
|
+
throw new Error("The mock.defaultValues must be an object.");
|
|
165
304
|
}
|
|
166
305
|
}
|
|
167
306
|
}
|
|
@@ -182,6 +321,7 @@ export const loadConfig = async (
|
|
|
182
321
|
validateFakeServerConfig(normalizedConfig);
|
|
183
322
|
return normalizedConfig;
|
|
184
323
|
};
|
|
324
|
+
|
|
185
325
|
/**
|
|
186
326
|
* Load the fake server configuration from the CLI flags.
|
|
187
327
|
* @param cliFlag
|
package/src/index.ts
CHANGED
package/src/server.ts
CHANGED
|
@@ -33,11 +33,7 @@ const PRIVATE_IP_RANGES = [
|
|
|
33
33
|
/^172\.(1[6-9]|2\d|3[0-1])\.\d{1,3}\.\d{1,3}$/, // 172.16.0.0/12
|
|
34
34
|
];
|
|
35
35
|
|
|
36
|
-
export type CreateFakeServerOptions = RequiredFakeServerConfig
|
|
37
|
-
logLevel?: LogLevel;
|
|
38
|
-
allowedCORSOrigins: string[];
|
|
39
|
-
allowedHosts?: string[] | "auto";
|
|
40
|
-
};
|
|
36
|
+
export type CreateFakeServerOptions = RequiredFakeServerConfig;
|
|
41
37
|
|
|
42
38
|
type FakeServerInternal = {
|
|
43
39
|
mockObject: MockObject;
|
|
@@ -1017,23 +1013,12 @@ const createRoutingServer = async ({
|
|
|
1017
1013
|
return app;
|
|
1018
1014
|
};
|
|
1019
1015
|
export const createFakeServer = async (options: CreateFakeServerOptions) => {
|
|
1020
|
-
const {
|
|
1021
|
-
logLevel,
|
|
1022
|
-
maxTypeRecursion,
|
|
1023
|
-
maxQueryDepth,
|
|
1024
|
-
maxRegisteredSequences,
|
|
1025
|
-
ports,
|
|
1026
|
-
schemaFilePath,
|
|
1027
|
-
defaultValues,
|
|
1028
|
-
allowedCORSOrigins,
|
|
1029
|
-
allowedHosts = "auto",
|
|
1030
|
-
} = options;
|
|
1016
|
+
const { schemaFilePath, logLevel, server, mock } = options;
|
|
1031
1017
|
const logger = createLogger(logLevel);
|
|
1032
1018
|
const schema = buildSchema(await fs.readFile(schemaFilePath, "utf-8"));
|
|
1033
1019
|
const mockResult = await createMock({
|
|
1034
1020
|
schema,
|
|
1035
|
-
|
|
1036
|
-
defaultValues,
|
|
1021
|
+
mock,
|
|
1037
1022
|
});
|
|
1038
1023
|
if (!mockResult.ok) {
|
|
1039
1024
|
logger.error("Failed to create mock data", mockResult);
|
|
@@ -1044,14 +1029,14 @@ export const createFakeServer = async (options: CreateFakeServerOptions) => {
|
|
|
1044
1029
|
logger.debug("created mock code", mockResult.code);
|
|
1045
1030
|
logger.debug("created mock data", mockResult.mock);
|
|
1046
1031
|
return createFakeServerInternal({
|
|
1047
|
-
ports,
|
|
1032
|
+
ports: server.ports,
|
|
1048
1033
|
schema,
|
|
1049
1034
|
mockObject: mockResult.mock,
|
|
1050
|
-
maxQueryDepth,
|
|
1051
|
-
maxRegisteredSequences,
|
|
1052
|
-
logLevel: logLevel
|
|
1053
|
-
allowedCORSOrigins,
|
|
1054
|
-
allowedHosts,
|
|
1035
|
+
maxQueryDepth: server.maxQueryDepth,
|
|
1036
|
+
maxRegisteredSequences: server.maxRegisteredSequences,
|
|
1037
|
+
logLevel: logLevel,
|
|
1038
|
+
allowedCORSOrigins: server.allowedCORSOrigins,
|
|
1039
|
+
allowedHosts: server.allowedHosts,
|
|
1055
1040
|
});
|
|
1056
1041
|
};
|
|
1057
1042
|
|