@newmo/graphql-fake-server 0.12.2 → 0.14.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 +140 -5
- package/dist/esm/config.d.ts +10 -4
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +2 -2
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/server.d.ts +16 -0
- package/dist/esm/server.d.ts.map +1 -1
- package/dist/esm/server.js +92 -3
- package/dist/esm/server.js.map +1 -1
- package/package.json +3 -3
- package/src/config.ts +12 -7
- package/src/server.ts +121 -3
package/README.md
CHANGED
|
@@ -10,10 +10,133 @@ See <https://github.com/newmo-oss/graphql-fake-server>
|
|
|
10
10
|
|
|
11
11
|
- Integrate Apollo Server
|
|
12
12
|
- Support `/fake` API
|
|
13
|
+
- Support `/fake/called` API
|
|
13
14
|
- Support `/graphql` API
|
|
14
15
|
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Usage: npx @newmo/graphql-fake-server --schema <path> [options]
|
|
20
|
+
|
|
21
|
+
Options:
|
|
22
|
+
|
|
23
|
+
--config <path> Path to a config file
|
|
24
|
+
--schema <path> Path to a schema file
|
|
25
|
+
--logLevel <logLevel> log level: debug, info, warn, error
|
|
26
|
+
--cwd <path> Current working directory
|
|
27
|
+
--help Show help
|
|
28
|
+
|
|
29
|
+
Examples:
|
|
30
|
+
|
|
31
|
+
# Provide a schema file - use default config
|
|
32
|
+
npx @newmo/graphql-fake-server --schema api.graphql
|
|
33
|
+
# Use a config file
|
|
34
|
+
npx @newmo/graphql-fake-server --config graphql-fake-server.config.js
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## HTTP APIs
|
|
38
|
+
|
|
39
|
+
### `/graphql` and `/query`
|
|
40
|
+
|
|
41
|
+
GraphQL Endpoint.
|
|
42
|
+
|
|
43
|
+
You need to set `sequence-id` header to identify the sequence with the request.
|
|
44
|
+
|
|
45
|
+
```js
|
|
46
|
+
await fetch(`${urls.fakeServer}/graphql`, {
|
|
47
|
+
method: "POST",
|
|
48
|
+
headers: {
|
|
49
|
+
"Content-Type": "application/json",
|
|
50
|
+
"sequence-id": sequenceId,
|
|
51
|
+
},
|
|
52
|
+
body: JSON.stringify({
|
|
53
|
+
operationName: "CreateBook",
|
|
54
|
+
query: `
|
|
55
|
+
mutation CreateBook($title: String!) {
|
|
56
|
+
createBook(title: $title) {
|
|
57
|
+
id
|
|
58
|
+
title
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`,
|
|
62
|
+
variables: {
|
|
63
|
+
title: "The Great Gatsby",
|
|
64
|
+
},
|
|
65
|
+
}),
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### `/fake`
|
|
70
|
+
|
|
71
|
+
Register the fake data for `sequence-id` and `operationName`.
|
|
72
|
+
|
|
73
|
+
```js
|
|
74
|
+
await fetch(`${urls.fakeServer}/fake`, {
|
|
75
|
+
method: "POST",
|
|
76
|
+
headers: {
|
|
77
|
+
"Content-Type": "application/json",
|
|
78
|
+
"sequence-id": sequenceId,
|
|
79
|
+
},
|
|
80
|
+
body: JSON.stringify({
|
|
81
|
+
type: "operation",
|
|
82
|
+
operationName: "CreateBook",
|
|
83
|
+
data: {
|
|
84
|
+
createBook: {
|
|
85
|
+
id: "new-id",
|
|
86
|
+
title: "new BOOK",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
}),
|
|
90
|
+
});
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### `/fake/called`
|
|
94
|
+
|
|
95
|
+
Return request and response for the request with `sequence-id` and `operationName`.
|
|
96
|
+
|
|
97
|
+
```js
|
|
98
|
+
const calledResponse = await fetch(`${urls.fakeServer}/fake/called`, {
|
|
99
|
+
method: "POST",
|
|
100
|
+
headers: {
|
|
101
|
+
"Content-Type": "application/json",
|
|
102
|
+
"sequence-id": sequenceId,
|
|
103
|
+
},
|
|
104
|
+
body: JSON.stringify({
|
|
105
|
+
operationName: "CreateBook",
|
|
106
|
+
}),
|
|
107
|
+
});
|
|
108
|
+
````
|
|
109
|
+
|
|
15
110
|
## Config
|
|
16
111
|
|
|
112
|
+
You can customize the configuration by `--config` option.
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
npx @newmo/graphql-fake-server --config graphql-fake-server.config.mjs
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Example of the config file: `graphql-fake-server.config.mjs`
|
|
119
|
+
|
|
120
|
+
```js
|
|
121
|
+
export default {
|
|
122
|
+
schemaFilePath: "./api/api.graphql",
|
|
123
|
+
ports: {
|
|
124
|
+
fakeServer: 4000,
|
|
125
|
+
apolloServer: 4002,
|
|
126
|
+
},
|
|
127
|
+
maxRegisteredSequences: 1000,
|
|
128
|
+
maxFieldRecursionDepth: 9,
|
|
129
|
+
maxQueryDepth: 10,
|
|
130
|
+
defaultValues: {
|
|
131
|
+
String: "string",
|
|
132
|
+
Int: 1,
|
|
133
|
+
Float: 1.1,
|
|
134
|
+
Boolean: true,
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
|
|
17
140
|
Please See [src/config.ts](src/config.ts)
|
|
18
141
|
|
|
19
142
|
```ts
|
|
@@ -22,10 +145,14 @@ Please See [src/config.ts](src/config.ts)
|
|
|
22
145
|
*/
|
|
23
146
|
export type FakeServerConfig = {
|
|
24
147
|
/**
|
|
25
|
-
* The path to the GraphQL schema file.
|
|
148
|
+
* The path to the GraphQL schema file from cwd.
|
|
26
149
|
*/
|
|
27
150
|
schemaFilePath: string;
|
|
28
|
-
|
|
151
|
+
/**
|
|
152
|
+
* The ports for the fake server and Apollo Server.
|
|
153
|
+
*/
|
|
154
|
+
ports?:
|
|
155
|
+
| {
|
|
29
156
|
/**
|
|
30
157
|
* Fake Server port.
|
|
31
158
|
* Default is 4000.
|
|
@@ -37,7 +164,8 @@ export type FakeServerConfig = {
|
|
|
37
164
|
* Default is 4002.
|
|
38
165
|
*/
|
|
39
166
|
apolloServer?: number | undefined;
|
|
40
|
-
}
|
|
167
|
+
}
|
|
168
|
+
| undefined;
|
|
41
169
|
/**
|
|
42
170
|
* The maximum number of registered sequences.
|
|
43
171
|
* Default is 1000.
|
|
@@ -45,18 +173,25 @@ export type FakeServerConfig = {
|
|
|
45
173
|
maxRegisteredSequences?: number | undefined;
|
|
46
174
|
/**
|
|
47
175
|
* The maximum number of depth of field recursion.
|
|
48
|
-
* Default is
|
|
176
|
+
* Default is 9.
|
|
49
177
|
*/
|
|
50
178
|
maxFieldRecursionDepth?: RawConfig["maxFieldRecursionDepth"] | undefined;
|
|
51
179
|
/**
|
|
52
180
|
* The maximum number of depth of complexity of query
|
|
53
|
-
*
|
|
181
|
+
* this value should be maxFieldRecursionDepth + 1
|
|
182
|
+
* Default is 10
|
|
54
183
|
*/
|
|
55
184
|
maxQueryDepth?: number | undefined;
|
|
56
185
|
/**
|
|
57
186
|
* Default values for scalar types.
|
|
58
187
|
*/
|
|
59
188
|
defaultValues?: RawConfig["defaultValues"] | undefined;
|
|
189
|
+
/**
|
|
190
|
+
* Log level: "debug", "info", "warn", "error"
|
|
191
|
+
* If you want to see the debug logs, set the logLevel to "debug".
|
|
192
|
+
* Default is "info".
|
|
193
|
+
*/
|
|
194
|
+
logLevel?: LogLevel | undefined;
|
|
60
195
|
};
|
|
61
196
|
```
|
|
62
197
|
|
package/dist/esm/config.d.ts
CHANGED
|
@@ -5,9 +5,12 @@ import type { LogLevel } from "./logger.js";
|
|
|
5
5
|
*/
|
|
6
6
|
export type FakeServerConfig = {
|
|
7
7
|
/**
|
|
8
|
-
* The path to the GraphQL schema file.
|
|
8
|
+
* The path to the GraphQL schema file from cwd.
|
|
9
9
|
*/
|
|
10
10
|
schemaFilePath: string;
|
|
11
|
+
/**
|
|
12
|
+
* The ports for the fake server and Apollo Server.
|
|
13
|
+
*/
|
|
11
14
|
ports?: {
|
|
12
15
|
/**
|
|
13
16
|
* Fake Server port.
|
|
@@ -28,12 +31,13 @@ export type FakeServerConfig = {
|
|
|
28
31
|
maxRegisteredSequences?: number | undefined;
|
|
29
32
|
/**
|
|
30
33
|
* The maximum number of depth of field recursion.
|
|
31
|
-
* Default is
|
|
34
|
+
* Default is 9.
|
|
32
35
|
*/
|
|
33
36
|
maxFieldRecursionDepth?: RawConfig["maxFieldRecursionDepth"] | undefined;
|
|
34
37
|
/**
|
|
35
38
|
* The maximum number of depth of complexity of query
|
|
36
|
-
*
|
|
39
|
+
* this value should be maxFieldRecursionDepth + 1
|
|
40
|
+
* Default is 10
|
|
37
41
|
*/
|
|
38
42
|
maxQueryDepth?: number | undefined;
|
|
39
43
|
/**
|
|
@@ -41,7 +45,9 @@ export type FakeServerConfig = {
|
|
|
41
45
|
*/
|
|
42
46
|
defaultValues?: RawConfig["defaultValues"] | undefined;
|
|
43
47
|
/**
|
|
44
|
-
* Log level
|
|
48
|
+
* Log level: "debug", "info", "warn", "error"
|
|
49
|
+
* If you want to see the debug logs, set the logLevel to "debug".
|
|
50
|
+
* Default is "info".
|
|
45
51
|
*/
|
|
46
52
|
logLevel?: LogLevel | undefined;
|
|
47
53
|
};
|
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,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;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,sBAAsB,CAAC,EAAE,SAAS,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;IACzE;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACvD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1C,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,yBAAyB,WAAY,gBAAgB,KAAG,wBAapE,CAAC;AACF,eAAO,MAAM,wBAAwB,WAAY,gBAAgB,KAAG,gBAqCnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,QACd,MAAM,cACC,MAAM,KACnB,QAAQ,wBAAwB,CAMlC,CAAC;AACF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,kCAGrC;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
|
@@ -8,8 +8,8 @@ export const normalizeFakeServerConfig = (config) => {
|
|
|
8
8
|
apolloServer: config.ports?.apolloServer ?? 4002,
|
|
9
9
|
},
|
|
10
10
|
maxRegisteredSequences: config.maxRegisteredSequences ?? 1000,
|
|
11
|
-
maxFieldRecursionDepth: config.maxFieldRecursionDepth ??
|
|
12
|
-
maxQueryDepth: config.maxQueryDepth ??
|
|
11
|
+
maxFieldRecursionDepth: config.maxFieldRecursionDepth ?? 9,
|
|
12
|
+
maxQueryDepth: config.maxQueryDepth ?? 10,
|
|
13
13
|
defaultValues: config.defaultValues ?? {},
|
|
14
14
|
logLevel: config.logLevel ?? "info",
|
|
15
15
|
};
|
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/server.d.ts
CHANGED
|
@@ -29,6 +29,22 @@ export type RegisterSequenceOperation = {
|
|
|
29
29
|
data: Record<string, unknown>;
|
|
30
30
|
};
|
|
31
31
|
export type RegisterSequenceOptions = RegisterSequenceNetworkError | RegisterSequenceOperation;
|
|
32
|
+
export type CalledResult = {
|
|
33
|
+
requestTimestamp: number;
|
|
34
|
+
request: {
|
|
35
|
+
headers: Record<string, unknown>;
|
|
36
|
+
body: Record<string, unknown>;
|
|
37
|
+
};
|
|
38
|
+
response: {
|
|
39
|
+
status: number;
|
|
40
|
+
headers: Record<string, unknown>;
|
|
41
|
+
body: Record<string, unknown>;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export type CalledResultResponse = {
|
|
45
|
+
ok: true;
|
|
46
|
+
data: CalledResult[];
|
|
47
|
+
};
|
|
32
48
|
export type RegisterOperationResponse = {
|
|
33
49
|
ok: true;
|
|
34
50
|
} | {
|
package/dist/esm/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAc,MAAM,0BAA0B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG;IAC7D,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,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,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC;AAiBF,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;CACrC,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;CACjC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAAG,yBAAyB,CAAC;AAC/F,MAAM,MAAM,yBAAyB,GAC/B;IACI,EAAE,EAAE,IAAI,CAAC;CACZ,GACD;IACI,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAc,MAAM,0BAA0B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG;IAC7D,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,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,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC;AAiBF,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;CACrC,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;CACjC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,GAAG,yBAAyB,CAAC;AAC/F,MAAM,MAAM,YAAY,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,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,OAAO,CAAC,CAAC;QACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;CACL,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,yBAAyB,GAC/B;IACI,EAAE,EAAE,IAAI,CAAC;CACZ,GACD;IACI,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAmWR,eAAO,MAAM,gBAAgB,YAAmB,uBAAuB;;;;;;;;EAkCtE,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAAmB,kBAAkB;;;;;;;;EA6BzE,CAAC"}
|
package/dist/esm/server.js
CHANGED
|
@@ -91,6 +91,13 @@ const createRoutingServer = async ({ logLevel, ports, maxRegisteredSequences, })
|
|
|
91
91
|
// add params to URL
|
|
92
92
|
if (c.req.query())
|
|
93
93
|
url = `${url}?${new URLSearchParams(c.req.query())}`;
|
|
94
|
+
const sequenceId = c.req.header("sequence-id");
|
|
95
|
+
const requestBody = await c.req.raw.clone().json();
|
|
96
|
+
const operationName = typeof requestBody === "object" &&
|
|
97
|
+
requestBody !== null &&
|
|
98
|
+
"operationName" in requestBody
|
|
99
|
+
? requestBody.operationName
|
|
100
|
+
: undefined;
|
|
94
101
|
// request
|
|
95
102
|
const rep = await fetch(url, {
|
|
96
103
|
method: c.req.method,
|
|
@@ -101,9 +108,38 @@ const createRoutingServer = async ({ logLevel, ports, maxRegisteredSequences, })
|
|
|
101
108
|
// log response with pipe
|
|
102
109
|
if (rep.status === 101)
|
|
103
110
|
return rep;
|
|
111
|
+
// save request and response for /called api
|
|
112
|
+
if (sequenceId && typeof operationName === "string") {
|
|
113
|
+
const responseBody = (await rep.clone().json());
|
|
114
|
+
const cacheKey = createMapKey({
|
|
115
|
+
sequenceId,
|
|
116
|
+
operationName,
|
|
117
|
+
});
|
|
118
|
+
sequenceCalledResultLruMap.set(cacheKey, [
|
|
119
|
+
...(sequenceCalledResultLruMap.get(cacheKey) ?? []),
|
|
120
|
+
{
|
|
121
|
+
requestTimestamp: Date.now(),
|
|
122
|
+
request: {
|
|
123
|
+
headers: Object.fromEntries(c.req.raw.headers),
|
|
124
|
+
body: requestBody,
|
|
125
|
+
},
|
|
126
|
+
response: {
|
|
127
|
+
status: rep.status,
|
|
128
|
+
headers: Object.fromEntries(rep.headers),
|
|
129
|
+
body: responseBody,
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
]);
|
|
133
|
+
}
|
|
104
134
|
return new Response(rep.body, rep);
|
|
105
135
|
};
|
|
106
|
-
|
|
136
|
+
// sequenceId x operationName -> FakeResponse
|
|
137
|
+
const sequenceFakeResponseLruMap = new LRUMap({
|
|
138
|
+
maxSize: maxRegisteredSequences,
|
|
139
|
+
});
|
|
140
|
+
// sequenceId x operationName -> Called Result
|
|
141
|
+
// CalledResult is first request is index 0, second request is index 1 and so on
|
|
142
|
+
const sequenceCalledResultLruMap = new LRUMap({
|
|
107
143
|
maxSize: maxRegisteredSequences,
|
|
108
144
|
});
|
|
109
145
|
const app = new Hono();
|
|
@@ -133,7 +169,7 @@ const createRoutingServer = async ({ logLevel, ports, maxRegisteredSequences, })
|
|
|
133
169
|
sequenceId,
|
|
134
170
|
type: body.type,
|
|
135
171
|
});
|
|
136
|
-
|
|
172
|
+
sequenceFakeResponseLruMap.set(createMapKey({
|
|
137
173
|
sequenceId,
|
|
138
174
|
operationName,
|
|
139
175
|
}), body);
|
|
@@ -141,7 +177,39 @@ const createRoutingServer = async ({ logLevel, ports, maxRegisteredSequences, })
|
|
|
141
177
|
status: 200,
|
|
142
178
|
});
|
|
143
179
|
});
|
|
180
|
+
app.use("/fake/called", async (c) => {
|
|
181
|
+
// sequenceId x operationName にマッチする CalledResult を返す
|
|
182
|
+
const sequenceId = c.req.header("sequence-id");
|
|
183
|
+
if (!sequenceId) {
|
|
184
|
+
return Response.json(JSON.stringify({ ok: false, errors: ["sequence-id is required"] }), {
|
|
185
|
+
status: 400,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
// req.bodyからoperationNameを取得
|
|
189
|
+
const body = await c.req.json();
|
|
190
|
+
const operationName = body.operationName;
|
|
191
|
+
if (!operationName) {
|
|
192
|
+
return Response.json(JSON.stringify({ ok: false, errors: ["operationName is required"] }), {
|
|
193
|
+
status: 400,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const key = createMapKey({
|
|
197
|
+
sequenceId,
|
|
198
|
+
operationName,
|
|
199
|
+
});
|
|
200
|
+
// if not found, return empty array
|
|
201
|
+
const result = sequenceCalledResultLruMap.get(key);
|
|
202
|
+
if (!result) {
|
|
203
|
+
return Response.json({ ok: true, data: [] }, {
|
|
204
|
+
status: 200,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
return Response.json({ ok: true, data: result }, {
|
|
208
|
+
status: 200,
|
|
209
|
+
});
|
|
210
|
+
});
|
|
144
211
|
const fakeGraphQLQuery = async (c) => {
|
|
212
|
+
const requestTimestamp = Date.now();
|
|
145
213
|
/**
|
|
146
214
|
* Steps:
|
|
147
215
|
* 1. Receive a request for a GraphQL query
|
|
@@ -169,7 +237,7 @@ const createRoutingServer = async ({ logLevel, ports, maxRegisteredSequences, })
|
|
|
169
237
|
return passToApollo(c);
|
|
170
238
|
if (!requestOperationName)
|
|
171
239
|
return passToApollo(c);
|
|
172
|
-
const sequence =
|
|
240
|
+
const sequence = sequenceFakeResponseLruMap.get(createMapKey({
|
|
173
241
|
sequenceId,
|
|
174
242
|
operationName: requestOperationName,
|
|
175
243
|
}));
|
|
@@ -225,6 +293,27 @@ const createRoutingServer = async ({ logLevel, ports, maxRegisteredSequences, })
|
|
|
225
293
|
...responseBody.data,
|
|
226
294
|
...data,
|
|
227
295
|
};
|
|
296
|
+
const cacheKey = createMapKey({
|
|
297
|
+
sequenceId,
|
|
298
|
+
operationName: requestOperationName,
|
|
299
|
+
});
|
|
300
|
+
sequenceCalledResultLruMap.set(cacheKey, [
|
|
301
|
+
...(sequenceCalledResultLruMap.get(cacheKey) ?? []),
|
|
302
|
+
{
|
|
303
|
+
requestTimestamp: Date.now(),
|
|
304
|
+
request: {
|
|
305
|
+
headers: Object.fromEntries(c.req.raw.headers),
|
|
306
|
+
body: requestBody,
|
|
307
|
+
},
|
|
308
|
+
response: {
|
|
309
|
+
status: rep.status,
|
|
310
|
+
headers: Object.fromEntries(rep.headers),
|
|
311
|
+
body: {
|
|
312
|
+
data: merged,
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
},
|
|
316
|
+
]);
|
|
228
317
|
return Response.json({
|
|
229
318
|
data: merged,
|
|
230
319
|
}, rep);
|
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.14.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "GraphQL fake server for testing",
|
|
6
6
|
"keywords": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@graphql-tools/mock": "^9.0.2",
|
|
52
52
|
"@graphql-tools/schema": "^10.0.3",
|
|
53
53
|
"@hono/node-server": "^1.11.1",
|
|
54
|
-
"@newmo/graphql-fake-core": "0.
|
|
54
|
+
"@newmo/graphql-fake-core": "0.14.0",
|
|
55
55
|
"graphql-depth-limit": "^1.1.0",
|
|
56
56
|
"hono": "^4.3.2"
|
|
57
57
|
},
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"access": "public",
|
|
78
78
|
"registry": "https://registry.npmjs.org/"
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "b9817caa0b36489d9a2329be75adc99aa7b628c1"
|
|
81
81
|
}
|
package/src/config.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
3
|
import type { RawConfig } from "@newmo/graphql-fake-core";
|
|
4
|
-
import { configDefaults } from "vitest/config";
|
|
5
4
|
import type { LogLevel } from "./logger.js";
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -9,9 +8,12 @@ import type { LogLevel } from "./logger.js";
|
|
|
9
8
|
*/
|
|
10
9
|
export type FakeServerConfig = {
|
|
11
10
|
/**
|
|
12
|
-
* The path to the GraphQL schema file.
|
|
11
|
+
* The path to the GraphQL schema file from cwd.
|
|
13
12
|
*/
|
|
14
13
|
schemaFilePath: string;
|
|
14
|
+
/**
|
|
15
|
+
* The ports for the fake server and Apollo Server.
|
|
16
|
+
*/
|
|
15
17
|
ports?:
|
|
16
18
|
| {
|
|
17
19
|
/**
|
|
@@ -34,12 +36,13 @@ export type FakeServerConfig = {
|
|
|
34
36
|
maxRegisteredSequences?: number | undefined;
|
|
35
37
|
/**
|
|
36
38
|
* The maximum number of depth of field recursion.
|
|
37
|
-
* Default is
|
|
39
|
+
* Default is 9.
|
|
38
40
|
*/
|
|
39
41
|
maxFieldRecursionDepth?: RawConfig["maxFieldRecursionDepth"] | undefined;
|
|
40
42
|
/**
|
|
41
43
|
* The maximum number of depth of complexity of query
|
|
42
|
-
*
|
|
44
|
+
* this value should be maxFieldRecursionDepth + 1
|
|
45
|
+
* Default is 10
|
|
43
46
|
*/
|
|
44
47
|
maxQueryDepth?: number | undefined;
|
|
45
48
|
/**
|
|
@@ -47,7 +50,9 @@ export type FakeServerConfig = {
|
|
|
47
50
|
*/
|
|
48
51
|
defaultValues?: RawConfig["defaultValues"] | undefined;
|
|
49
52
|
/**
|
|
50
|
-
* Log level
|
|
53
|
+
* Log level: "debug", "info", "warn", "error"
|
|
54
|
+
* If you want to see the debug logs, set the logLevel to "debug".
|
|
55
|
+
* Default is "info".
|
|
51
56
|
*/
|
|
52
57
|
logLevel?: LogLevel | undefined;
|
|
53
58
|
};
|
|
@@ -72,8 +77,8 @@ export const normalizeFakeServerConfig = (config: FakeServerConfig): RequiredFak
|
|
|
72
77
|
apolloServer: config.ports?.apolloServer ?? 4002,
|
|
73
78
|
},
|
|
74
79
|
maxRegisteredSequences: config.maxRegisteredSequences ?? 1000,
|
|
75
|
-
maxFieldRecursionDepth: config.maxFieldRecursionDepth ??
|
|
76
|
-
maxQueryDepth: config.maxQueryDepth ??
|
|
80
|
+
maxFieldRecursionDepth: config.maxFieldRecursionDepth ?? 9,
|
|
81
|
+
maxQueryDepth: config.maxQueryDepth ?? 10,
|
|
77
82
|
defaultValues: config.defaultValues ?? {},
|
|
78
83
|
logLevel: config.logLevel ?? "info",
|
|
79
84
|
};
|
package/src/server.ts
CHANGED
|
@@ -58,6 +58,22 @@ export type RegisterSequenceOperation = {
|
|
|
58
58
|
data: Record<string, unknown>;
|
|
59
59
|
};
|
|
60
60
|
export type RegisterSequenceOptions = RegisterSequenceNetworkError | RegisterSequenceOperation;
|
|
61
|
+
export type CalledResult = {
|
|
62
|
+
requestTimestamp: number;
|
|
63
|
+
request: {
|
|
64
|
+
headers: Record<string, unknown>;
|
|
65
|
+
body: Record<string, unknown>;
|
|
66
|
+
};
|
|
67
|
+
response: {
|
|
68
|
+
status: number;
|
|
69
|
+
headers: Record<string, unknown>;
|
|
70
|
+
body: Record<string, unknown>;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
export type CalledResultResponse = {
|
|
74
|
+
ok: true;
|
|
75
|
+
data: CalledResult[];
|
|
76
|
+
};
|
|
61
77
|
export type RegisterOperationResponse =
|
|
62
78
|
| {
|
|
63
79
|
ok: true;
|
|
@@ -154,6 +170,14 @@ const createRoutingServer = async ({
|
|
|
154
170
|
let url = `http://127.0.0.1:${ports.apolloServer}${path}`;
|
|
155
171
|
// add params to URL
|
|
156
172
|
if (c.req.query()) url = `${url}?${new URLSearchParams(c.req.query())}`;
|
|
173
|
+
const sequenceId = c.req.header("sequence-id");
|
|
174
|
+
const requestBody = await c.req.raw.clone().json();
|
|
175
|
+
const operationName =
|
|
176
|
+
typeof requestBody === "object" &&
|
|
177
|
+
requestBody !== null &&
|
|
178
|
+
"operationName" in requestBody
|
|
179
|
+
? requestBody.operationName
|
|
180
|
+
: undefined;
|
|
157
181
|
// request
|
|
158
182
|
const rep = await fetch(url, {
|
|
159
183
|
method: c.req.method,
|
|
@@ -163,9 +187,38 @@ const createRoutingServer = async ({
|
|
|
163
187
|
});
|
|
164
188
|
// log response with pipe
|
|
165
189
|
if (rep.status === 101) return rep;
|
|
190
|
+
// save request and response for /called api
|
|
191
|
+
if (sequenceId && typeof operationName === "string") {
|
|
192
|
+
const responseBody = (await rep.clone().json()) as Record<string, unknown>;
|
|
193
|
+
const cacheKey = createMapKey({
|
|
194
|
+
sequenceId,
|
|
195
|
+
operationName,
|
|
196
|
+
});
|
|
197
|
+
sequenceCalledResultLruMap.set(cacheKey, [
|
|
198
|
+
...(sequenceCalledResultLruMap.get(cacheKey) ?? []),
|
|
199
|
+
{
|
|
200
|
+
requestTimestamp: Date.now(),
|
|
201
|
+
request: {
|
|
202
|
+
headers: Object.fromEntries(c.req.raw.headers),
|
|
203
|
+
body: requestBody as Record<string, unknown>,
|
|
204
|
+
},
|
|
205
|
+
response: {
|
|
206
|
+
status: rep.status,
|
|
207
|
+
headers: Object.fromEntries(rep.headers),
|
|
208
|
+
body: responseBody,
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
]);
|
|
212
|
+
}
|
|
166
213
|
return new Response(rep.body, rep);
|
|
167
214
|
};
|
|
168
|
-
|
|
215
|
+
// sequenceId x operationName -> FakeResponse
|
|
216
|
+
const sequenceFakeResponseLruMap = new LRUMap<string, RegisterSequenceOptions>({
|
|
217
|
+
maxSize: maxRegisteredSequences,
|
|
218
|
+
});
|
|
219
|
+
// sequenceId x operationName -> Called Result
|
|
220
|
+
// CalledResult is first request is index 0, second request is index 1 and so on
|
|
221
|
+
const sequenceCalledResultLruMap = new LRUMap<string, CalledResult[]>({
|
|
169
222
|
maxSize: maxRegisteredSequences,
|
|
170
223
|
});
|
|
171
224
|
const app = new Hono();
|
|
@@ -198,7 +251,7 @@ const createRoutingServer = async ({
|
|
|
198
251
|
sequenceId,
|
|
199
252
|
type: body.type,
|
|
200
253
|
});
|
|
201
|
-
|
|
254
|
+
sequenceFakeResponseLruMap.set(
|
|
202
255
|
createMapKey({
|
|
203
256
|
sequenceId,
|
|
204
257
|
operationName,
|
|
@@ -209,7 +262,51 @@ const createRoutingServer = async ({
|
|
|
209
262
|
status: 200,
|
|
210
263
|
});
|
|
211
264
|
});
|
|
265
|
+
app.use("/fake/called", async (c) => {
|
|
266
|
+
// sequenceId x operationName にマッチする CalledResult を返す
|
|
267
|
+
const sequenceId = c.req.header("sequence-id");
|
|
268
|
+
if (!sequenceId) {
|
|
269
|
+
return Response.json(
|
|
270
|
+
JSON.stringify({ ok: false, errors: ["sequence-id is required"] }),
|
|
271
|
+
{
|
|
272
|
+
status: 400,
|
|
273
|
+
},
|
|
274
|
+
);
|
|
275
|
+
}
|
|
276
|
+
// req.bodyからoperationNameを取得
|
|
277
|
+
const body = await c.req.json();
|
|
278
|
+
const operationName = body.operationName;
|
|
279
|
+
if (!operationName) {
|
|
280
|
+
return Response.json(
|
|
281
|
+
JSON.stringify({ ok: false, errors: ["operationName is required"] }),
|
|
282
|
+
{
|
|
283
|
+
status: 400,
|
|
284
|
+
},
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
const key = createMapKey({
|
|
288
|
+
sequenceId,
|
|
289
|
+
operationName,
|
|
290
|
+
});
|
|
291
|
+
// if not found, return empty array
|
|
292
|
+
const result = sequenceCalledResultLruMap.get(key);
|
|
293
|
+
if (!result) {
|
|
294
|
+
return Response.json(
|
|
295
|
+
{ ok: true, data: [] },
|
|
296
|
+
{
|
|
297
|
+
status: 200,
|
|
298
|
+
},
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
return Response.json(
|
|
302
|
+
{ ok: true, data: result },
|
|
303
|
+
{
|
|
304
|
+
status: 200,
|
|
305
|
+
},
|
|
306
|
+
);
|
|
307
|
+
});
|
|
212
308
|
const fakeGraphQLQuery = async (c: Context) => {
|
|
309
|
+
const requestTimestamp = Date.now();
|
|
213
310
|
/**
|
|
214
311
|
* Steps:
|
|
215
312
|
* 1. Receive a request for a GraphQL query
|
|
@@ -236,7 +333,7 @@ const createRoutingServer = async ({
|
|
|
236
333
|
// 2. Does it contain a sequence id?
|
|
237
334
|
if (!sequenceId) return passToApollo(c);
|
|
238
335
|
if (!requestOperationName) return passToApollo(c);
|
|
239
|
-
const sequence =
|
|
336
|
+
const sequence = sequenceFakeResponseLruMap.get(
|
|
240
337
|
createMapKey({
|
|
241
338
|
sequenceId,
|
|
242
339
|
operationName: requestOperationName,
|
|
@@ -303,6 +400,27 @@ const createRoutingServer = async ({
|
|
|
303
400
|
...responseBody.data,
|
|
304
401
|
...data,
|
|
305
402
|
};
|
|
403
|
+
const cacheKey = createMapKey({
|
|
404
|
+
sequenceId,
|
|
405
|
+
operationName: requestOperationName,
|
|
406
|
+
});
|
|
407
|
+
sequenceCalledResultLruMap.set(cacheKey, [
|
|
408
|
+
...(sequenceCalledResultLruMap.get(cacheKey) ?? []),
|
|
409
|
+
{
|
|
410
|
+
requestTimestamp: Date.now(),
|
|
411
|
+
request: {
|
|
412
|
+
headers: Object.fromEntries(c.req.raw.headers),
|
|
413
|
+
body: requestBody as Record<string, unknown>,
|
|
414
|
+
},
|
|
415
|
+
response: {
|
|
416
|
+
status: rep.status,
|
|
417
|
+
headers: Object.fromEntries(rep.headers),
|
|
418
|
+
body: {
|
|
419
|
+
data: merged,
|
|
420
|
+
},
|
|
421
|
+
},
|
|
422
|
+
},
|
|
423
|
+
]);
|
|
306
424
|
return Response.json(
|
|
307
425
|
{
|
|
308
426
|
data: merged,
|