@newmo/graphql-fake-core 0.9.7 → 0.10.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/dist/esm/config.d.ts +32 -13
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +5 -0
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/createMock.d.ts +2 -2
- package/dist/esm/createMock.d.ts.map +1 -1
- package/dist/esm/createMock.js +4 -3
- package/dist/esm/createMock.js.map +1 -1
- package/dist/esm/schema-scanner.d.ts +6 -2
- package/dist/esm/schema-scanner.d.ts.map +1 -1
- package/dist/esm/schema-scanner.js +73 -16
- package/dist/esm/schema-scanner.js.map +1 -1
- package/package.json +2 -2
- package/src/config.ts +44 -14
- package/src/createMock.ts +7 -6
- package/src/schema-scanner.ts +105 -26
package/dist/esm/config.d.ts
CHANGED
|
@@ -5,20 +5,36 @@ export type RawConfig = {
|
|
|
5
5
|
* this is generated by client preset
|
|
6
6
|
* e.g. ) "typeFile: "./graphql"
|
|
7
7
|
*/
|
|
8
|
-
typesFile?: string;
|
|
9
|
-
skipTypename?: RawTypesConfig["skipTypename"];
|
|
10
|
-
namingConvention?: RawTypesConfig["namingConvention"];
|
|
11
|
-
typesPrefix?: RawTypesConfig["typesPrefix"];
|
|
12
|
-
typesSuffix?: RawTypesConfig["typesSuffix"];
|
|
13
|
-
maxFieldRecursionDepth?: number;
|
|
8
|
+
typesFile?: string | undefined;
|
|
9
|
+
skipTypename?: RawTypesConfig["skipTypename"] | undefined;
|
|
10
|
+
namingConvention?: RawTypesConfig["namingConvention"] | undefined;
|
|
11
|
+
typesPrefix?: RawTypesConfig["typesPrefix"] | undefined;
|
|
12
|
+
typesSuffix?: RawTypesConfig["typesSuffix"] | undefined;
|
|
13
|
+
maxFieldRecursionDepth?: number | undefined;
|
|
14
14
|
defaultValues?: {
|
|
15
|
-
String?: string;
|
|
16
|
-
Int?: number;
|
|
17
|
-
Float?: number;
|
|
18
|
-
Boolean?: boolean;
|
|
19
|
-
ID?: string;
|
|
20
|
-
listLength?: number;
|
|
21
|
-
|
|
15
|
+
String?: string | undefined;
|
|
16
|
+
Int?: number | undefined;
|
|
17
|
+
Float?: number | undefined;
|
|
18
|
+
Boolean?: boolean | undefined;
|
|
19
|
+
ID?: string | undefined;
|
|
20
|
+
listLength?: number | undefined;
|
|
21
|
+
CustomScalar?: {
|
|
22
|
+
/**
|
|
23
|
+
* CustomScalar default expression
|
|
24
|
+
* The value must be an JavaScript expression.
|
|
25
|
+
* If you want to put a string value, you must put it in quotes
|
|
26
|
+
* @example
|
|
27
|
+
* ```js
|
|
28
|
+
* CustomScalar: {
|
|
29
|
+
* Digit: "1",
|
|
30
|
+
* DateYYYYMMDD: "'2022-02-03'",
|
|
31
|
+
* ISODateTime: "new Date().toISOString()"
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
[key: string]: string;
|
|
36
|
+
};
|
|
37
|
+
} | undefined;
|
|
22
38
|
};
|
|
23
39
|
export declare const DefaultValues: {
|
|
24
40
|
String: string;
|
|
@@ -42,6 +58,9 @@ export type Config = {
|
|
|
42
58
|
Boolean: boolean;
|
|
43
59
|
ID: string;
|
|
44
60
|
listLength: number;
|
|
61
|
+
CustomScalar?: {
|
|
62
|
+
[key: string]: string;
|
|
63
|
+
};
|
|
45
64
|
};
|
|
46
65
|
};
|
|
47
66
|
export declare function validateConfig(rawConfig: unknown, outputType?: "typescript" | "javascript"): asserts rawConfig is RawConfig;
|
package/dist/esm/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,MAAM,SAAS,GAAG;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,MAAM,SAAS,GAAG;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAClE,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACxD,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACxD,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,aAAa,CAAC,EACR;QACI,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,YAAY,CAAC,EAAE;YACX;;;;;;;;;;;;eAYG;YACH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB,CAAC;KACL,GACD,SAAS,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC;IACjE,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/D,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/D,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,CAAC;IACzE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QAEnB,YAAY,CAAC,EAAE;YAEX,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB,CAAC;KACL,CAAC;CACL,CAAC;AAEF,wBAAgB,cAAc,CAC1B,SAAS,EAAE,OAAO,EAClB,UAAU,GAAE,YAAY,GAAG,YAA2B,GACvD,OAAO,CAAC,SAAS,IAAI,SAAS,CAmDhC;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAkB5D"}
|
package/dist/esm/config.js
CHANGED
|
@@ -48,6 +48,10 @@ export function validateConfig(rawConfig, outputType = "javascript") {
|
|
|
48
48
|
typeof defaultValues.listLength !== "number") {
|
|
49
49
|
throw new Error("config.defaultValues.listLength must be a number");
|
|
50
50
|
}
|
|
51
|
+
if (defaultValues.CustomScalar !== undefined &&
|
|
52
|
+
typeof defaultValues.CustomScalar !== "object") {
|
|
53
|
+
throw new Error("config.defaultValues.CustomScalar must be an object");
|
|
54
|
+
}
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
export function normalizeConfig(rawConfig) {
|
|
@@ -65,6 +69,7 @@ export function normalizeConfig(rawConfig) {
|
|
|
65
69
|
Boolean: rawConfig.defaultValues?.Boolean ?? DefaultValues.Boolean,
|
|
66
70
|
ID: rawConfig.defaultValues?.ID ?? DefaultValues.ID,
|
|
67
71
|
listLength: rawConfig.defaultValues?.listLength ?? DefaultValues.listLength,
|
|
72
|
+
CustomScalar: rawConfig.defaultValues?.CustomScalar ?? {},
|
|
68
73
|
},
|
|
69
74
|
};
|
|
70
75
|
}
|
package/dist/esm/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/createMock.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { GraphQLSchema } from "graphql/index.js";
|
|
2
|
+
import { type RawConfig } from "./config.js";
|
|
2
3
|
import { type TypeInfo } from "./schema-scanner.js";
|
|
3
4
|
export type MockObject = Record<string, unknown>;
|
|
4
5
|
export type CreateMockOptions = {
|
|
5
6
|
schema: GraphQLSchema;
|
|
6
|
-
|
|
7
|
-
};
|
|
7
|
+
} & Partial<RawConfig>;
|
|
8
8
|
export type CreateMockResult = {
|
|
9
9
|
ok: true;
|
|
10
10
|
code: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMock.d.ts","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"createMock.d.ts","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,qBAAqB,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,aAAa,CAAC;CACzB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAIvB,MAAM,MAAM,gBAAgB,GACtB;IACI,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACpB,GACD;IACI,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AACR;;;GAGG;AACH,eAAO,MAAM,UAAU,YAAmB,iBAAiB,KAAG,QAAQ,gBAAgB,CAkCrF,CAAC"}
|
package/dist/esm/createMock.js
CHANGED
|
@@ -10,15 +10,16 @@ const cloneAsJSON = (obj) => {
|
|
|
10
10
|
* It supports @example directive
|
|
11
11
|
*/
|
|
12
12
|
export const createMock = async (options) => {
|
|
13
|
+
const { schema, ...rawConfig } = options;
|
|
13
14
|
const normalizedConfig = normalizeConfig({
|
|
14
|
-
maxFieldRecursionDepth:
|
|
15
|
+
maxFieldRecursionDepth: rawConfig.maxFieldRecursionDepth ?? 3,
|
|
16
|
+
...rawConfig,
|
|
15
17
|
});
|
|
16
|
-
const typeInfos = getTypeInfos(normalizedConfig,
|
|
18
|
+
const typeInfos = getTypeInfos(normalizedConfig, schema);
|
|
17
19
|
const code = generateCode({
|
|
18
20
|
...normalizedConfig,
|
|
19
21
|
outputType: "commonjs",
|
|
20
22
|
}, typeInfos);
|
|
21
|
-
console.log(code);
|
|
22
23
|
try {
|
|
23
24
|
// execute code in vm and get all exports
|
|
24
25
|
const exports = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMock.js","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"createMock.js","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMlE,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,EAAE;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAaF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAA0B,EAA6B,EAAE;IACtF,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,gBAAgB,GAAG,eAAe,CAAC;QACrC,sBAAsB,EAAE,SAAS,CAAC,sBAAsB,IAAI,CAAC;QAC7D,GAAG,SAAS;KACf,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,YAAY,CACrB;QACI,GAAG,gBAAgB;QACnB,UAAU,EAAE,UAAU;KACzB,EACD,SAAS,CACZ,CAAC;IAEF,IAAI,CAAC;QACD,yCAAyC;QACzC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACtC,8DAA8D;QAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO;YACH,EAAE,EAAE,IAAI;YACR,IAAI;YACJ,IAAI,EAAE,WAAW;SACpB,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,SAAS;YACT,KAAK,EAAE,KAAc;SACxB,CAAC;IACN,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -26,6 +26,11 @@ export type EnumTypeInfo = {
|
|
|
26
26
|
rawName: string;
|
|
27
27
|
fields: FieldInfo[];
|
|
28
28
|
};
|
|
29
|
+
export type ScalarTypeInfo = {
|
|
30
|
+
type: "scalar";
|
|
31
|
+
name: string;
|
|
32
|
+
rawName: string;
|
|
33
|
+
};
|
|
29
34
|
export type InterfaceTypeInfo = {
|
|
30
35
|
type: "interface";
|
|
31
36
|
name: string;
|
|
@@ -41,8 +46,7 @@ export type UnionTypeInfo = {
|
|
|
41
46
|
possibleRawTypeNames: string[];
|
|
42
47
|
example?: ExampleDirective | undefined;
|
|
43
48
|
};
|
|
44
|
-
export type TypeInfo = ObjectTypeInfo | InterfaceTypeInfo | EnumTypeInfo | UnionTypeInfo;
|
|
45
|
-
export type EnumRawNameMap = Map<string, TypeInfo>;
|
|
49
|
+
export type TypeInfo = ObjectTypeInfo | InterfaceTypeInfo | EnumTypeInfo | UnionTypeInfo | ScalarTypeInfo;
|
|
46
50
|
export declare function getTypeInfos(config: Config, schema: GraphQLSchema): TypeInfo[];
|
|
47
51
|
export {};
|
|
48
52
|
//# sourceMappingURL=schema-scanner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-scanner.d.ts","sourceRoot":"","sources":["../../src/schema-scanner.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"schema-scanner.d.ts","sourceRoot":"","sources":["../../src/schema-scanner.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,KAAK,aAAa,EAWrB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsC1C,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACvD,KAAK,UAAU,GAAG,cAAc,EAAE,CAAC;AACnC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAEhC,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;CACpD,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,0BAA0B,CAAC;AAqclF,KAAK,SAAS,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,MAAM,CAAC;IAEhB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,QAAQ,GACd,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAkKrB,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,EAAE,CAkB9E"}
|
|
@@ -78,7 +78,7 @@ function valueOfNode(value) {
|
|
|
78
78
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
79
79
|
throw new Error(`Unknown kind of value ${value}`);
|
|
80
80
|
}
|
|
81
|
-
const typeToFunction = ({ convertedTypeName, fieldName, type, config, idFactory,
|
|
81
|
+
const typeToFunction = ({ convertedTypeName, fieldName, type, config, idFactory, context, }) => {
|
|
82
82
|
switch (type) {
|
|
83
83
|
case "String":
|
|
84
84
|
return `"${config.defaultValues.String}"`;
|
|
@@ -94,13 +94,39 @@ const typeToFunction = ({ convertedTypeName, fieldName, type, config, idFactory,
|
|
|
94
94
|
}
|
|
95
95
|
default: {
|
|
96
96
|
// if enum type(name is equaled) is defined, reference to the enum
|
|
97
|
-
if (enumMap.has(type)) {
|
|
97
|
+
if (context.enumMap.has(type)) {
|
|
98
98
|
return `${generateEnumReferenceCode({
|
|
99
99
|
fieldName,
|
|
100
100
|
rawTypeName: type,
|
|
101
101
|
config: config,
|
|
102
102
|
})}`;
|
|
103
103
|
}
|
|
104
|
+
// if custom scalar type(name is equaled) is defined, return the default value
|
|
105
|
+
if (context.customScalarMap.has(type)) {
|
|
106
|
+
// If dose not have default value, throw an error
|
|
107
|
+
const USAGE = `
|
|
108
|
+
options: {
|
|
109
|
+
defaultValues: {
|
|
110
|
+
CustomScalar: {
|
|
111
|
+
${type}: "fake default value"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
`;
|
|
115
|
+
if (!config.defaultValues.CustomScalar) {
|
|
116
|
+
throw new Error(`Custom scalar option is not defined in config for ${type}
|
|
117
|
+
|
|
118
|
+
${USAGE}
|
|
119
|
+
`);
|
|
120
|
+
}
|
|
121
|
+
const fakeDefaultValue = config.defaultValues.CustomScalar[type];
|
|
122
|
+
if (!fakeDefaultValue) {
|
|
123
|
+
throw new Error(`Custom scalar type ${type} must have default value in config
|
|
124
|
+
|
|
125
|
+
${USAGE}
|
|
126
|
+
`);
|
|
127
|
+
}
|
|
128
|
+
return fakeDefaultValue;
|
|
129
|
+
}
|
|
104
130
|
// reference to the object
|
|
105
131
|
return `${generateCreateReferenceCode({
|
|
106
132
|
fieldName,
|
|
@@ -110,7 +136,7 @@ const typeToFunction = ({ convertedTypeName, fieldName, type, config, idFactory,
|
|
|
110
136
|
}
|
|
111
137
|
}
|
|
112
138
|
};
|
|
113
|
-
const typeToFunctionWithArray = ({ convertedTypeName, fieldName, type, config, idFactory,
|
|
139
|
+
const typeToFunctionWithArray = ({ convertedTypeName, fieldName, type, config, idFactory, context, }) => {
|
|
114
140
|
// Avoid [null, null, null]
|
|
115
141
|
// Mock server can't handle null values in the array
|
|
116
142
|
return `(depth < ${config.maxFieldRecursionDepth}) ? Array.from({ length: ${config.defaultValues.listLength} }).map(() => ${typeToFunction({
|
|
@@ -119,11 +145,11 @@ const typeToFunctionWithArray = ({ convertedTypeName, fieldName, type, config, i
|
|
|
119
145
|
type: type,
|
|
120
146
|
config: config,
|
|
121
147
|
idFactory: idFactory,
|
|
122
|
-
|
|
148
|
+
context,
|
|
123
149
|
})}) : []`;
|
|
124
150
|
};
|
|
125
151
|
// NamedType/ListType handling
|
|
126
|
-
const nodeToExpression = ({ convertedTypeName, fieldName, currentNode, isArray = false, config, idFactory,
|
|
152
|
+
const nodeToExpression = ({ convertedTypeName, fieldName, currentNode, isArray = false, config, idFactory, context, }) => {
|
|
127
153
|
if (currentNode.kind === "NonNullType") {
|
|
128
154
|
return nodeToExpression({
|
|
129
155
|
convertedTypeName,
|
|
@@ -132,7 +158,7 @@ const nodeToExpression = ({ convertedTypeName, fieldName, currentNode, isArray =
|
|
|
132
158
|
isArray,
|
|
133
159
|
config,
|
|
134
160
|
idFactory,
|
|
135
|
-
|
|
161
|
+
context,
|
|
136
162
|
});
|
|
137
163
|
}
|
|
138
164
|
if (currentNode.kind === "NamedType") {
|
|
@@ -144,7 +170,7 @@ const nodeToExpression = ({ convertedTypeName, fieldName, currentNode, isArray =
|
|
|
144
170
|
type: currentNode.name.value,
|
|
145
171
|
config: config,
|
|
146
172
|
idFactory: idFactory,
|
|
147
|
-
|
|
173
|
+
context,
|
|
148
174
|
}),
|
|
149
175
|
};
|
|
150
176
|
}
|
|
@@ -155,7 +181,7 @@ const nodeToExpression = ({ convertedTypeName, fieldName, currentNode, isArray =
|
|
|
155
181
|
type: currentNode.name.value,
|
|
156
182
|
config: config,
|
|
157
183
|
idFactory: idFactory,
|
|
158
|
-
|
|
184
|
+
context,
|
|
159
185
|
}),
|
|
160
186
|
};
|
|
161
187
|
}
|
|
@@ -167,7 +193,7 @@ const nodeToExpression = ({ convertedTypeName, fieldName, currentNode, isArray =
|
|
|
167
193
|
isArray: true,
|
|
168
194
|
config,
|
|
169
195
|
idFactory,
|
|
170
|
-
|
|
196
|
+
context,
|
|
171
197
|
});
|
|
172
198
|
}
|
|
173
199
|
throw new Error("Unknown node kind");
|
|
@@ -197,7 +223,7 @@ const isIdType = (node) => {
|
|
|
197
223
|
}
|
|
198
224
|
return false;
|
|
199
225
|
};
|
|
200
|
-
function parseFieldOrInputValueDefinition({ node, convertedTypeName, config, idFactory,
|
|
226
|
+
function parseFieldOrInputValueDefinition({ node, convertedTypeName, config, idFactory, context, }) {
|
|
201
227
|
const fieldName = node.name.value;
|
|
202
228
|
const comment = node.description ? transformComment(node.description) : undefined;
|
|
203
229
|
const errorDirective = node.directives?.find((d) => {
|
|
@@ -221,7 +247,7 @@ function parseFieldOrInputValueDefinition({ node, convertedTypeName, config, idF
|
|
|
221
247
|
currentNode: node.type,
|
|
222
248
|
config,
|
|
223
249
|
idFactory,
|
|
224
|
-
|
|
250
|
+
context,
|
|
225
251
|
}),
|
|
226
252
|
};
|
|
227
253
|
}
|
|
@@ -346,7 +372,7 @@ function parseFieldOrInputValueDefinition({ node, convertedTypeName, config, idF
|
|
|
346
372
|
}
|
|
347
373
|
return { comment, example: { value: exampleDirectiveRawValue } };
|
|
348
374
|
}
|
|
349
|
-
function parseObjectTypeOrInputObjectTypeDefinition({ node, config, idFactory,
|
|
375
|
+
function parseObjectTypeOrInputObjectTypeDefinition({ node, config, idFactory, context, }) {
|
|
350
376
|
const originalTypeName = node.name.value;
|
|
351
377
|
const convertedTypeName = convertName(originalTypeName, config);
|
|
352
378
|
return {
|
|
@@ -361,13 +387,13 @@ function parseObjectTypeOrInputObjectTypeDefinition({ node, config, idFactory, e
|
|
|
361
387
|
convertedTypeName,
|
|
362
388
|
config,
|
|
363
389
|
idFactory,
|
|
364
|
-
|
|
390
|
+
context,
|
|
365
391
|
}),
|
|
366
392
|
})),
|
|
367
393
|
],
|
|
368
394
|
};
|
|
369
395
|
}
|
|
370
|
-
const createObjectTypeInfo = ({ config, schema,
|
|
396
|
+
const createObjectTypeInfo = ({ config, schema, context, }) => {
|
|
371
397
|
const types = Object.values(schema.getTypeMap());
|
|
372
398
|
const idFactory = createIDFactory();
|
|
373
399
|
const userDefinedTypeDefinitions = types
|
|
@@ -402,7 +428,7 @@ const createObjectTypeInfo = ({ config, schema, enumMap, }) => {
|
|
|
402
428
|
node,
|
|
403
429
|
config,
|
|
404
430
|
idFactory,
|
|
405
|
-
|
|
431
|
+
context,
|
|
406
432
|
});
|
|
407
433
|
}
|
|
408
434
|
if (node?.kind === Kind.INTERFACE_TYPE_DEFINITION) {
|
|
@@ -456,9 +482,40 @@ const createEnumTypeInfo = ({ config, schema, }) => {
|
|
|
456
482
|
};
|
|
457
483
|
});
|
|
458
484
|
};
|
|
485
|
+
const createCustomScalarTypeInfo = ({ config, schema, }) => {
|
|
486
|
+
const types = Object.values(schema.getTypeMap());
|
|
487
|
+
return (types
|
|
488
|
+
.map((type) => type.astNode)
|
|
489
|
+
.filter((node) => {
|
|
490
|
+
if (!node)
|
|
491
|
+
return false;
|
|
492
|
+
return node.kind === Kind.SCALAR_TYPE_DEFINITION;
|
|
493
|
+
})
|
|
494
|
+
.map((node) => {
|
|
495
|
+
return {
|
|
496
|
+
type: "scalar",
|
|
497
|
+
name: convertName(node.name.value, config),
|
|
498
|
+
rawName: node.name.value,
|
|
499
|
+
};
|
|
500
|
+
}) ?? []);
|
|
501
|
+
};
|
|
459
502
|
export function getTypeInfos(config, schema) {
|
|
460
503
|
const enumTypeInfo = createEnumTypeInfo({ config: config, schema: schema });
|
|
461
504
|
const enumMap = new Map(enumTypeInfo.map((info) => [info.rawName, info]));
|
|
462
|
-
|
|
505
|
+
const customScalarTypeInfo = createCustomScalarTypeInfo({ config: config, schema: schema });
|
|
506
|
+
const customScalarMap = new Map(customScalarTypeInfo.map((info) => [info.rawName, info]));
|
|
507
|
+
const context = {
|
|
508
|
+
enumMap: enumMap,
|
|
509
|
+
customScalarMap: customScalarMap,
|
|
510
|
+
};
|
|
511
|
+
return [
|
|
512
|
+
...enumTypeInfo,
|
|
513
|
+
...customScalarTypeInfo,
|
|
514
|
+
...createObjectTypeInfo({
|
|
515
|
+
config,
|
|
516
|
+
schema,
|
|
517
|
+
context,
|
|
518
|
+
}),
|
|
519
|
+
];
|
|
463
520
|
}
|
|
464
521
|
//# sourceMappingURL=schema-scanner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-scanner.js","sourceRoot":"","sources":["../../src/schema-scanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-scanner.js","sourceRoot":"","sources":["../../src/schema-scanner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@newmo/graphql-fake-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "GraphQL fake core library",
|
|
6
6
|
"keywords": [
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"access": "public",
|
|
66
66
|
"registry": "https://registry.npmjs.org/"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "96211dee245e0aa305b35cb1d4312cb7484ef4e8"
|
|
69
69
|
}
|
package/src/config.ts
CHANGED
|
@@ -6,20 +6,38 @@ export type RawConfig = {
|
|
|
6
6
|
* this is generated by client preset
|
|
7
7
|
* e.g. ) "typeFile: "./graphql"
|
|
8
8
|
*/
|
|
9
|
-
typesFile?: string;
|
|
10
|
-
skipTypename?: RawTypesConfig["skipTypename"];
|
|
11
|
-
namingConvention?: RawTypesConfig["namingConvention"];
|
|
12
|
-
typesPrefix?: RawTypesConfig["typesPrefix"];
|
|
13
|
-
typesSuffix?: RawTypesConfig["typesSuffix"];
|
|
14
|
-
maxFieldRecursionDepth?: number;
|
|
15
|
-
defaultValues?:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
typesFile?: string | undefined;
|
|
10
|
+
skipTypename?: RawTypesConfig["skipTypename"] | undefined;
|
|
11
|
+
namingConvention?: RawTypesConfig["namingConvention"] | undefined;
|
|
12
|
+
typesPrefix?: RawTypesConfig["typesPrefix"] | undefined;
|
|
13
|
+
typesSuffix?: RawTypesConfig["typesSuffix"] | undefined;
|
|
14
|
+
maxFieldRecursionDepth?: number | undefined;
|
|
15
|
+
defaultValues?:
|
|
16
|
+
| {
|
|
17
|
+
String?: string | undefined;
|
|
18
|
+
Int?: number | undefined;
|
|
19
|
+
Float?: number | undefined;
|
|
20
|
+
Boolean?: boolean | undefined;
|
|
21
|
+
ID?: string | undefined;
|
|
22
|
+
listLength?: number | undefined;
|
|
23
|
+
CustomScalar?: {
|
|
24
|
+
/**
|
|
25
|
+
* CustomScalar default expression
|
|
26
|
+
* The value must be an JavaScript expression.
|
|
27
|
+
* If you want to put a string value, you must put it in quotes
|
|
28
|
+
* @example
|
|
29
|
+
* ```js
|
|
30
|
+
* CustomScalar: {
|
|
31
|
+
* Digit: "1",
|
|
32
|
+
* DateYYYYMMDD: "'2022-02-03'",
|
|
33
|
+
* ISODateTime: "new Date().toISOString()"
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
[key: string]: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
| undefined;
|
|
23
41
|
};
|
|
24
42
|
|
|
25
43
|
export const DefaultValues = {
|
|
@@ -44,6 +62,11 @@ export type Config = {
|
|
|
44
62
|
Boolean: boolean;
|
|
45
63
|
ID: string;
|
|
46
64
|
listLength: number;
|
|
65
|
+
// CustomScalar: string;
|
|
66
|
+
CustomScalar?: {
|
|
67
|
+
// Time: "2021-01-01T00:00:00Z";
|
|
68
|
+
[key: string]: string;
|
|
69
|
+
};
|
|
47
70
|
};
|
|
48
71
|
};
|
|
49
72
|
|
|
@@ -94,6 +117,12 @@ export function validateConfig(
|
|
|
94
117
|
) {
|
|
95
118
|
throw new Error("config.defaultValues.listLength must be a number");
|
|
96
119
|
}
|
|
120
|
+
if (
|
|
121
|
+
defaultValues.CustomScalar !== undefined &&
|
|
122
|
+
typeof defaultValues.CustomScalar !== "object"
|
|
123
|
+
) {
|
|
124
|
+
throw new Error("config.defaultValues.CustomScalar must be an object");
|
|
125
|
+
}
|
|
97
126
|
}
|
|
98
127
|
}
|
|
99
128
|
|
|
@@ -112,6 +141,7 @@ export function normalizeConfig(rawConfig: RawConfig): Config {
|
|
|
112
141
|
Boolean: rawConfig.defaultValues?.Boolean ?? DefaultValues.Boolean,
|
|
113
142
|
ID: rawConfig.defaultValues?.ID ?? DefaultValues.ID,
|
|
114
143
|
listLength: rawConfig.defaultValues?.listLength ?? DefaultValues.listLength,
|
|
144
|
+
CustomScalar: rawConfig.defaultValues?.CustomScalar ?? {},
|
|
115
145
|
},
|
|
116
146
|
};
|
|
117
147
|
}
|
package/src/createMock.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import vm from "node:vm";
|
|
2
2
|
import type { GraphQLSchema } from "graphql/index.js";
|
|
3
3
|
import { generateCode } from "./code-generator.js";
|
|
4
|
-
import { normalizeConfig } from "./config.js";
|
|
4
|
+
import { type RawConfig, normalizeConfig } from "./config.js";
|
|
5
5
|
import { type TypeInfo, getTypeInfos } from "./schema-scanner.js";
|
|
6
6
|
|
|
7
7
|
export type MockObject = Record<string, unknown>;
|
|
8
8
|
export type CreateMockOptions = {
|
|
9
9
|
schema: GraphQLSchema;
|
|
10
|
-
|
|
11
|
-
};
|
|
10
|
+
} & Partial<RawConfig>;
|
|
12
11
|
const cloneAsJSON = (obj: unknown) => {
|
|
13
12
|
return JSON.parse(JSON.stringify(obj));
|
|
14
13
|
};
|
|
@@ -29,10 +28,12 @@ export type CreateMockResult =
|
|
|
29
28
|
* It supports @example directive
|
|
30
29
|
*/
|
|
31
30
|
export const createMock = async (options: CreateMockOptions): Promise<CreateMockResult> => {
|
|
31
|
+
const { schema, ...rawConfig } = options;
|
|
32
32
|
const normalizedConfig = normalizeConfig({
|
|
33
|
-
maxFieldRecursionDepth:
|
|
33
|
+
maxFieldRecursionDepth: rawConfig.maxFieldRecursionDepth ?? 3,
|
|
34
|
+
...rawConfig,
|
|
34
35
|
});
|
|
35
|
-
const typeInfos = getTypeInfos(normalizedConfig,
|
|
36
|
+
const typeInfos = getTypeInfos(normalizedConfig, schema);
|
|
36
37
|
const code = generateCode(
|
|
37
38
|
{
|
|
38
39
|
...normalizedConfig,
|
|
@@ -40,7 +41,7 @@ export const createMock = async (options: CreateMockOptions): Promise<CreateMock
|
|
|
40
41
|
},
|
|
41
42
|
typeInfos,
|
|
42
43
|
);
|
|
43
|
-
|
|
44
|
+
|
|
44
45
|
try {
|
|
45
46
|
// execute code in vm and get all exports
|
|
46
47
|
const exports = {};
|
package/src/schema-scanner.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { transformComment } from "@graphql-codegen/visitor-plugin-common";
|
|
2
2
|
import {
|
|
3
|
-
type ASTNode,
|
|
4
3
|
type ConstValueNode,
|
|
5
4
|
type EnumTypeDefinitionNode,
|
|
6
5
|
type FieldDefinitionNode,
|
|
@@ -116,14 +115,14 @@ const typeToFunction = ({
|
|
|
116
115
|
type,
|
|
117
116
|
config,
|
|
118
117
|
idFactory,
|
|
119
|
-
|
|
118
|
+
context,
|
|
120
119
|
}: {
|
|
121
120
|
convertedTypeName: string;
|
|
122
121
|
fieldName: string;
|
|
123
122
|
type: string;
|
|
124
123
|
config: Config;
|
|
125
124
|
idFactory: ReturnType<typeof createIDFactory>;
|
|
126
|
-
|
|
125
|
+
context: ScannerContext;
|
|
127
126
|
}): string => {
|
|
128
127
|
switch (type) {
|
|
129
128
|
case "String":
|
|
@@ -140,13 +139,40 @@ const typeToFunction = ({
|
|
|
140
139
|
}
|
|
141
140
|
default: {
|
|
142
141
|
// if enum type(name is equaled) is defined, reference to the enum
|
|
143
|
-
if (enumMap.has(type)) {
|
|
142
|
+
if (context.enumMap.has(type)) {
|
|
144
143
|
return `${generateEnumReferenceCode({
|
|
145
144
|
fieldName,
|
|
146
145
|
rawTypeName: type,
|
|
147
146
|
config: config,
|
|
148
147
|
})}`;
|
|
149
148
|
}
|
|
149
|
+
// if custom scalar type(name is equaled) is defined, return the default value
|
|
150
|
+
if (context.customScalarMap.has(type)) {
|
|
151
|
+
// If dose not have default value, throw an error
|
|
152
|
+
const USAGE = `
|
|
153
|
+
options: {
|
|
154
|
+
defaultValues: {
|
|
155
|
+
CustomScalar: {
|
|
156
|
+
${type}: "fake default value"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
`;
|
|
160
|
+
if (!config.defaultValues.CustomScalar) {
|
|
161
|
+
throw new Error(`Custom scalar option is not defined in config for ${type}
|
|
162
|
+
|
|
163
|
+
${USAGE}
|
|
164
|
+
`);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const fakeDefaultValue = config.defaultValues.CustomScalar[type];
|
|
168
|
+
if (!fakeDefaultValue) {
|
|
169
|
+
throw new Error(`Custom scalar type ${type} must have default value in config
|
|
170
|
+
|
|
171
|
+
${USAGE}
|
|
172
|
+
`);
|
|
173
|
+
}
|
|
174
|
+
return fakeDefaultValue;
|
|
175
|
+
}
|
|
150
176
|
// reference to the object
|
|
151
177
|
return `${generateCreateReferenceCode({
|
|
152
178
|
fieldName,
|
|
@@ -162,14 +188,14 @@ const typeToFunctionWithArray = ({
|
|
|
162
188
|
type,
|
|
163
189
|
config,
|
|
164
190
|
idFactory,
|
|
165
|
-
|
|
191
|
+
context,
|
|
166
192
|
}: {
|
|
167
193
|
convertedTypeName: string;
|
|
168
194
|
fieldName: string;
|
|
169
195
|
type: string;
|
|
170
196
|
config: Config;
|
|
171
197
|
idFactory: ReturnType<typeof createIDFactory>;
|
|
172
|
-
|
|
198
|
+
context: ScannerContext;
|
|
173
199
|
}): string => {
|
|
174
200
|
// Avoid [null, null, null]
|
|
175
201
|
// Mock server can't handle null values in the array
|
|
@@ -181,7 +207,7 @@ const typeToFunctionWithArray = ({
|
|
|
181
207
|
type: type,
|
|
182
208
|
config: config,
|
|
183
209
|
idFactory: idFactory,
|
|
184
|
-
|
|
210
|
+
context,
|
|
185
211
|
})}) : []`;
|
|
186
212
|
};
|
|
187
213
|
// NamedType/ListType handling
|
|
@@ -192,7 +218,7 @@ const nodeToExpression = ({
|
|
|
192
218
|
isArray = false,
|
|
193
219
|
config,
|
|
194
220
|
idFactory,
|
|
195
|
-
|
|
221
|
+
context,
|
|
196
222
|
}: {
|
|
197
223
|
convertedTypeName: string;
|
|
198
224
|
fieldName: string;
|
|
@@ -200,7 +226,7 @@ const nodeToExpression = ({
|
|
|
200
226
|
config: Config;
|
|
201
227
|
isArray?: boolean;
|
|
202
228
|
idFactory: ReturnType<typeof createIDFactory>;
|
|
203
|
-
|
|
229
|
+
context: ScannerContext;
|
|
204
230
|
}): ExampleDirectionExpression => {
|
|
205
231
|
if (currentNode.kind === "NonNullType") {
|
|
206
232
|
return nodeToExpression({
|
|
@@ -210,7 +236,7 @@ const nodeToExpression = ({
|
|
|
210
236
|
isArray,
|
|
211
237
|
config,
|
|
212
238
|
idFactory,
|
|
213
|
-
|
|
239
|
+
context,
|
|
214
240
|
});
|
|
215
241
|
}
|
|
216
242
|
if (currentNode.kind === "NamedType") {
|
|
@@ -222,7 +248,7 @@ const nodeToExpression = ({
|
|
|
222
248
|
type: currentNode.name.value,
|
|
223
249
|
config: config,
|
|
224
250
|
idFactory: idFactory,
|
|
225
|
-
|
|
251
|
+
context,
|
|
226
252
|
}),
|
|
227
253
|
};
|
|
228
254
|
}
|
|
@@ -233,7 +259,7 @@ const nodeToExpression = ({
|
|
|
233
259
|
type: currentNode.name.value,
|
|
234
260
|
config: config,
|
|
235
261
|
idFactory: idFactory,
|
|
236
|
-
|
|
262
|
+
context,
|
|
237
263
|
}),
|
|
238
264
|
};
|
|
239
265
|
}
|
|
@@ -245,7 +271,7 @@ const nodeToExpression = ({
|
|
|
245
271
|
isArray: true,
|
|
246
272
|
config,
|
|
247
273
|
idFactory,
|
|
248
|
-
|
|
274
|
+
context,
|
|
249
275
|
});
|
|
250
276
|
}
|
|
251
277
|
throw new Error("Unknown node kind");
|
|
@@ -282,13 +308,13 @@ function parseFieldOrInputValueDefinition({
|
|
|
282
308
|
convertedTypeName,
|
|
283
309
|
config,
|
|
284
310
|
idFactory,
|
|
285
|
-
|
|
311
|
+
context,
|
|
286
312
|
}: {
|
|
287
313
|
node: FieldDefinitionNode | InputValueDefinitionNode;
|
|
288
314
|
convertedTypeName: string;
|
|
289
315
|
config: Config;
|
|
290
316
|
idFactory: ReturnType<typeof createIDFactory>;
|
|
291
|
-
|
|
317
|
+
context: ScannerContext;
|
|
292
318
|
}): { comment?: string | undefined; example?: ExampleDirective | undefined } {
|
|
293
319
|
const fieldName = node.name.value;
|
|
294
320
|
const comment = node.description ? transformComment(node.description) : undefined;
|
|
@@ -313,7 +339,7 @@ function parseFieldOrInputValueDefinition({
|
|
|
313
339
|
currentNode: node.type,
|
|
314
340
|
config,
|
|
315
341
|
idFactory,
|
|
316
|
-
|
|
342
|
+
context,
|
|
317
343
|
}),
|
|
318
344
|
};
|
|
319
345
|
}
|
|
@@ -463,12 +489,12 @@ function parseObjectTypeOrInputObjectTypeDefinition({
|
|
|
463
489
|
node,
|
|
464
490
|
config,
|
|
465
491
|
idFactory,
|
|
466
|
-
|
|
492
|
+
context,
|
|
467
493
|
}: {
|
|
468
494
|
node: ObjectTypeDefinitionNode | InputObjectTypeDefinitionNode;
|
|
469
495
|
config: Config;
|
|
470
496
|
idFactory: ReturnType<typeof createIDFactory>;
|
|
471
|
-
|
|
497
|
+
context: ScannerContext;
|
|
472
498
|
}): ObjectTypeInfo {
|
|
473
499
|
const originalTypeName = node.name.value;
|
|
474
500
|
const convertedTypeName = convertName(originalTypeName, config);
|
|
@@ -484,7 +510,7 @@ function parseObjectTypeOrInputObjectTypeDefinition({
|
|
|
484
510
|
convertedTypeName,
|
|
485
511
|
config,
|
|
486
512
|
idFactory,
|
|
487
|
-
|
|
513
|
+
context,
|
|
488
514
|
}),
|
|
489
515
|
})),
|
|
490
516
|
],
|
|
@@ -507,6 +533,11 @@ export type EnumTypeInfo = {
|
|
|
507
533
|
rawName: string;
|
|
508
534
|
fields: FieldInfo[];
|
|
509
535
|
};
|
|
536
|
+
export type ScalarTypeInfo = {
|
|
537
|
+
type: "scalar";
|
|
538
|
+
name: string;
|
|
539
|
+
rawName: string;
|
|
540
|
+
};
|
|
510
541
|
export type InterfaceTypeInfo = {
|
|
511
542
|
type: "interface";
|
|
512
543
|
name: string;
|
|
@@ -524,16 +555,26 @@ export type UnionTypeInfo = {
|
|
|
524
555
|
possibleRawTypeNames: string[];
|
|
525
556
|
example?: ExampleDirective | undefined;
|
|
526
557
|
};
|
|
527
|
-
export type TypeInfo =
|
|
528
|
-
|
|
558
|
+
export type TypeInfo =
|
|
559
|
+
| ObjectTypeInfo
|
|
560
|
+
| InterfaceTypeInfo
|
|
561
|
+
| EnumTypeInfo
|
|
562
|
+
| UnionTypeInfo
|
|
563
|
+
| ScalarTypeInfo;
|
|
564
|
+
type EnumRawNameMap = Map<string, TypeInfo>;
|
|
565
|
+
type CustomScalarMap = Map<string, TypeInfo>;
|
|
566
|
+
type ScannerContext = {
|
|
567
|
+
enumMap: EnumRawNameMap;
|
|
568
|
+
customScalarMap: CustomScalarMap;
|
|
569
|
+
};
|
|
529
570
|
const createObjectTypeInfo = ({
|
|
530
571
|
config,
|
|
531
572
|
schema,
|
|
532
|
-
|
|
573
|
+
context,
|
|
533
574
|
}: {
|
|
534
575
|
config: Config;
|
|
535
576
|
schema: GraphQLSchema;
|
|
536
|
-
|
|
577
|
+
context: ScannerContext;
|
|
537
578
|
}): TypeInfo[] => {
|
|
538
579
|
const types = Object.values(schema.getTypeMap());
|
|
539
580
|
const idFactory = createIDFactory();
|
|
@@ -591,7 +632,7 @@ const createObjectTypeInfo = ({
|
|
|
591
632
|
node,
|
|
592
633
|
config,
|
|
593
634
|
idFactory,
|
|
594
|
-
|
|
635
|
+
context,
|
|
595
636
|
}) satisfies ObjectTypeInfo;
|
|
596
637
|
}
|
|
597
638
|
if (node?.kind === Kind.INTERFACE_TYPE_DEFINITION) {
|
|
@@ -656,9 +697,47 @@ const createEnumTypeInfo = ({
|
|
|
656
697
|
};
|
|
657
698
|
});
|
|
658
699
|
};
|
|
700
|
+
const createCustomScalarTypeInfo = ({
|
|
701
|
+
config,
|
|
702
|
+
schema,
|
|
703
|
+
}: {
|
|
704
|
+
config: Config;
|
|
705
|
+
schema: GraphQLSchema;
|
|
706
|
+
}): TypeInfo[] => {
|
|
707
|
+
const types = Object.values(schema.getTypeMap());
|
|
708
|
+
return (
|
|
709
|
+
types
|
|
710
|
+
.map((type) => type.astNode)
|
|
711
|
+
.filter((node): node is ObjectTypeDefinitionNode => {
|
|
712
|
+
if (!node) return false;
|
|
713
|
+
return node.kind === Kind.SCALAR_TYPE_DEFINITION;
|
|
714
|
+
})
|
|
715
|
+
.map((node) => {
|
|
716
|
+
return {
|
|
717
|
+
type: "scalar",
|
|
718
|
+
name: convertName(node.name.value, config),
|
|
719
|
+
rawName: node.name.value,
|
|
720
|
+
};
|
|
721
|
+
}) ?? []
|
|
722
|
+
);
|
|
723
|
+
};
|
|
659
724
|
|
|
660
725
|
export function getTypeInfos(config: Config, schema: GraphQLSchema): TypeInfo[] {
|
|
661
726
|
const enumTypeInfo = createEnumTypeInfo({ config: config, schema: schema });
|
|
662
727
|
const enumMap = new Map(enumTypeInfo.map((info) => [info.rawName, info]));
|
|
663
|
-
|
|
728
|
+
const customScalarTypeInfo = createCustomScalarTypeInfo({ config: config, schema: schema });
|
|
729
|
+
const customScalarMap = new Map(customScalarTypeInfo.map((info) => [info.rawName, info]));
|
|
730
|
+
const context: ScannerContext = {
|
|
731
|
+
enumMap: enumMap,
|
|
732
|
+
customScalarMap: customScalarMap,
|
|
733
|
+
};
|
|
734
|
+
return [
|
|
735
|
+
...enumTypeInfo,
|
|
736
|
+
...customScalarTypeInfo,
|
|
737
|
+
...createObjectTypeInfo({
|
|
738
|
+
config,
|
|
739
|
+
schema,
|
|
740
|
+
context,
|
|
741
|
+
}),
|
|
742
|
+
];
|
|
664
743
|
}
|