@newmo/graphql-fake-core 0.7.0 → 0.9.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.
@@ -1,3 +1,3 @@
1
- export declare const EXAMPLE_DIRECTIVE = "\n\"\"\"\n@exampleID directive specifies an example value for a ID field.\nThis example value is used in the fake data.\nID value will be unique between all ID fake data.\n\"\"\"\ndirective @exampleID(\n \"\"\"\n The value of the ID field.\n @exampleID(value: \"id\")\n \"\"\"\n value: ID!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleString directive specifies an example value for a String field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleString(\n \"\"\"\n The value of the String field.\n @exampleString(value: \"example\")\n \"\"\"\n value: String!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleInt directive specifies an example value for a Inf field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleInt(\n \"\"\"\n The value of the Int field.\n @exampleInt(value: 1)\n \"\"\"\n value: Int!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleFloat directive specifies an example value for a Float field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleFloat(\n \"\"\"\n The value of the Float field.\n @exampleFloat(value: 1.0)\n \"\"\"\n value: Float!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleBoolean directive specifies an example value for a Boolean field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleBoolean(\n \"\"\"\n The value of the Boolean field.\n @exampleBoolean(value: true)\n \"\"\"\n value: Boolean!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n";
1
+ export declare const EXAMPLE_DIRECTIVE = "\n\"\"\"\n@exampleID directive specifies an example value for a ID field.\nThis example value is used in the fake data.\nID value will be unique between all ID fake data.\n\"\"\"\ndirective @exampleID(\n \"\"\"\n The value of the ID field.\n @exampleID(value: \"id\")\n \"\"\"\n value: ID!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleString directive specifies an example value for a String field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleString(\n \"\"\"\n The value of the String field.\n @exampleString(value: \"example\")\n \"\"\"\n value: String!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleInt directive specifies an example value for a Int field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleInt(\n \"\"\"\n The value of the Int field.\n @exampleInt(value: 1)\n \"\"\"\n value: Int!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleFloat directive specifies an example value for a Float field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleFloat(\n \"\"\"\n The value of the Float field.\n @exampleFloat(value: 1.0)\n \"\"\"\n value: Float!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleBoolean directive specifies an example value for a Boolean field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleBoolean(\n \"\"\"\n The value of the Boolean field.\n @exampleBoolean(value: true)\n \"\"\"\n value: Boolean!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\n\"\"\"\n@exampleArrayID directive specifies an example value for a array of ID field.\nThis example value is used in the fake data.\nID value will be unique between all ID fake data.\n\"\"\"\ndirective @exampleArrayID(\n \"\"\"\n The value of the ID field.\n @exampleArrayID(value: [\"id1\", \"id2\"])\n \"\"\"\n values: [ID!]!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleArrayString directive specifies an example value for a array of String field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleArrayString(\n \"\"\"\n The value of the String field.\n @exampleArrayString(value: [\"example1\", \"example2\"])\n \"\"\"\n values: [String!]!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleArrayInt directive specifies an example value for a array of Int field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleArrayInt(\n \"\"\"\n The value of the Int field.\n @exampleArrayInt(value: [1, 2])\n \"\"\"\n values: [Int!]!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleArrayFloat directive specifies an example value for a array of Float field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleArrayFloat(\n \"\"\"\n The value of the Float field.\n @exampleArrayFloat(value: [1.0, 2.0])\n \"\"\"\n values: [Float!]!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@exampleArrayBoolean directive specifies an example value for a array of Boolean field.\nThis example value is used in the fake data.\n\"\"\"\ndirective @exampleArrayBoolean(\n \"\"\"\n The value of the Boolean field.\n @exampleArrayBoolean(value: [true, false])\n \"\"\"\n values: [Boolean!]!\n) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION\n\"\"\"\n@error directive specifies a field as an error response field.\nIt allows setting an error response and specifying the field name.\n\"\"\"\ndirective @error on FIELD_DEFINITION\n";
2
2
  export declare const extendSchema: (schema: string) => string;
3
3
  //# sourceMappingURL=extend-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extend-schema.d.ts","sourceRoot":"","sources":["../../src/extend-schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,ktDAyD7B,CAAC;AACF,eAAO,MAAM,YAAY,WAAY,MAAM,WAE1C,CAAC"}
1
+ {"version":3,"file":"extend-schema.d.ts","sourceRoot":"","sources":["../../src/extend-schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,uxHAuH7B,CAAC;AACF,eAAO,MAAM,YAAY,WAAY,MAAM,WAE1C,CAAC"}
@@ -23,7 +23,7 @@ directive @exampleString(
23
23
  value: String!
24
24
  ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
25
25
  """
26
- @exampleInt directive specifies an example value for a Inf field.
26
+ @exampleInt directive specifies an example value for a Int field.
27
27
  This example value is used in the fake data.
28
28
  """
29
29
  directive @exampleInt(
@@ -55,6 +55,68 @@ directive @exampleBoolean(
55
55
  """
56
56
  value: Boolean!
57
57
  ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
58
+
59
+ """
60
+ @exampleArrayID directive specifies an example value for a array of ID field.
61
+ This example value is used in the fake data.
62
+ ID value will be unique between all ID fake data.
63
+ """
64
+ directive @exampleArrayID(
65
+ """
66
+ The value of the ID field.
67
+ @exampleArrayID(value: ["id1", "id2"])
68
+ """
69
+ values: [ID!]!
70
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
71
+ """
72
+ @exampleArrayString directive specifies an example value for a array of String field.
73
+ This example value is used in the fake data.
74
+ """
75
+ directive @exampleArrayString(
76
+ """
77
+ The value of the String field.
78
+ @exampleArrayString(value: ["example1", "example2"])
79
+ """
80
+ values: [String!]!
81
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
82
+ """
83
+ @exampleArrayInt directive specifies an example value for a array of Int field.
84
+ This example value is used in the fake data.
85
+ """
86
+ directive @exampleArrayInt(
87
+ """
88
+ The value of the Int field.
89
+ @exampleArrayInt(value: [1, 2])
90
+ """
91
+ values: [Int!]!
92
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
93
+ """
94
+ @exampleArrayFloat directive specifies an example value for a array of Float field.
95
+ This example value is used in the fake data.
96
+ """
97
+ directive @exampleArrayFloat(
98
+ """
99
+ The value of the Float field.
100
+ @exampleArrayFloat(value: [1.0, 2.0])
101
+ """
102
+ values: [Float!]!
103
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
104
+ """
105
+ @exampleArrayBoolean directive specifies an example value for a array of Boolean field.
106
+ This example value is used in the fake data.
107
+ """
108
+ directive @exampleArrayBoolean(
109
+ """
110
+ The value of the Boolean field.
111
+ @exampleArrayBoolean(value: [true, false])
112
+ """
113
+ values: [Boolean!]!
114
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
115
+ """
116
+ @error directive specifies a field as an error response field.
117
+ It allows setting an error response and specifying the field name.
118
+ """
119
+ directive @error on FIELD_DEFINITION
58
120
  `;
59
121
  export const extendSchema = (schema) => {
60
122
  return EXAMPLE_DIRECTIVE + schema;
@@ -1 +1 @@
1
- {"version":3,"file":"extend-schema.js","sourceRoot":"","sources":["../../src/extend-schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDhC,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,OAAO,iBAAiB,GAAG,MAAM,CAAC;AACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"extend-schema.js","sourceRoot":"","sources":["../../src/extend-schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHhC,CAAC;AACF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;IAC3C,OAAO,iBAAiB,GAAG,MAAM,CAAC;AACtC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-scanner.d.ts","sourceRoot":"","sources":["../../src/schema-scanner.ts"],"names":[],"mappings":"AACA,OAAO,EAKH,KAAK,aAAa,EAWrB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAgD1C,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;AAoTlF,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,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,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,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,CAAC;AACzF,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAqI5C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,EAAE,CAI9E"}
1
+ {"version":3,"file":"schema-scanner.d.ts","sourceRoot":"","sources":["../../src/schema-scanner.ts"],"names":[],"mappings":"AACA,OAAO,EAKH,KAAK,aAAa,EAWrB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAgD1C,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;AAqalF,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,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,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,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,CAAC;AACzF,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAqI5C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,EAAE,CAI9E"}
@@ -183,6 +183,12 @@ const SUPPORTED_EXAMPLE_DIRECTIVES = [
183
183
  "exampleInt",
184
184
  "exampleFloat",
185
185
  "exampleBoolean",
186
+ // array
187
+ "exampleArrayID",
188
+ "exampleArrayString",
189
+ "exampleArrayInt",
190
+ "exampleArrayFloat",
191
+ "exampleArrayBoolean",
186
192
  ];
187
193
  const isIdType = (node) => {
188
194
  if (node.kind === "NonNullType") {
@@ -199,6 +205,14 @@ const isIdType = (node) => {
199
205
  function parseFieldOrInputValueDefinition({ node, convertedTypeName, config, idFactory, enumMap, }) {
200
206
  const fieldName = node.name.value;
201
207
  const comment = node.description ? transformComment(node.description) : undefined;
208
+ const errorDirective = node.directives?.find((d) => {
209
+ return d.name.value === "error"; // @error
210
+ });
211
+ if (errorDirective) {
212
+ return {
213
+ example: { value: [] }, // always empty value
214
+ };
215
+ }
202
216
  const exampleDirective = node.directives?.find((d) => {
203
217
  return SUPPORTED_EXAMPLE_DIRECTIVES.includes(d.name.value);
204
218
  });
@@ -219,6 +233,85 @@ function parseFieldOrInputValueDefinition({ node, convertedTypeName, config, idF
219
233
  if (!exampleDirective.arguments) {
220
234
  throw new Error(`@${exampleDirective.name.value} directive must have arguments. @${exampleDirective.name.value}(value: ...)`);
221
235
  }
236
+ // [String!]! -> true
237
+ // [String!] -> true
238
+ // String -> false
239
+ const isListTypeNode = (node) => {
240
+ if (node.kind === "ListType") {
241
+ return true;
242
+ }
243
+ if (node.kind === "NonNullType") {
244
+ return isListTypeNode(node.type);
245
+ }
246
+ return false;
247
+ };
248
+ if (isListTypeNode(node.type)) {
249
+ /**
250
+ * @exampleArrayID(values: ["id1", "id2"])
251
+ * -> { values: ["id1", "id2"] }
252
+ * @exampleArrayString(values: ["value 1", "value 2"])
253
+ * -> { values: ["value 1", "value 2"] }
254
+ * @exampleArrayInt(values: [1, 2])
255
+ * -> { values: [1, 2] }
256
+ * @exampleArrayFloat(values: [1.1, 2.2])
257
+ * -> { values: [1.1, 2.2] }
258
+ * @exampleArrayBoolean(values: [true, false])
259
+ * -> { values: [true, false] }
260
+ */
261
+ const exampleDirectiveValues = exampleDirective.arguments.find((a) => a.name.value === "values");
262
+ if (!exampleDirectiveValues) {
263
+ throw new Error(`@${exampleDirective.name.value} directive must have values argument. @${exampleDirective.name.value}(values: ...)`);
264
+ }
265
+ if (exampleDirectiveValues.value.kind !== "ListValue") {
266
+ throw new Error(`@${exampleDirective.name.value} directive must have values argument. @${exampleDirective.name.value}(values: ...). values is not array.`);
267
+ }
268
+ // [String!]! -> String
269
+ // [String!] -> String
270
+ const unwrapListNodeType = (node) => {
271
+ if (node.kind === "ListType") {
272
+ return unwrapListNodeType(node.type);
273
+ }
274
+ if (node.kind === "NonNullType") {
275
+ return unwrapListNodeType(node.type);
276
+ }
277
+ return node;
278
+ };
279
+ const itemOfArrayNodeType = unwrapListNodeType(node.type);
280
+ const itemOfArrayRawValueType = parseTypeNodeStructure(itemOfArrayNodeType);
281
+ const exampleDirectiveRawValues = exampleDirectiveValues.value.values.map((v) => {
282
+ return valueOfNode(v);
283
+ }); // TODO: need to fix type
284
+ // all raw values should be the same type
285
+ const exampleDirectiveRawValueTypeSet = new Set([
286
+ ...exampleDirectiveRawValues.map((value) => {
287
+ // array, object, string, number, boolean, null
288
+ return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
289
+ }),
290
+ ]);
291
+ if (exampleDirectiveRawValueTypeSet.size !== 1) {
292
+ throw new Error(`${convertedTypeName}.${fieldName}: @${exampleDirective.name.value} directive values must be the same type. Got [${exampleDirectiveRawValues.join(", ")}]`);
293
+ }
294
+ // pick one of the raw value type
295
+ const oneOfExampleDirectiveRawValueType = exampleDirectiveRawValueTypeSet
296
+ .values()
297
+ .next().value;
298
+ if (itemOfArrayRawValueType !== oneOfExampleDirectiveRawValueType) {
299
+ throw new Error(`${convertedTypeName}.${fieldName}: @${exampleDirective.name.value} directive values type must be ${itemOfArrayRawValueType}. Got ${oneOfExampleDirectiveRawValueType}`);
300
+ }
301
+ // if ID type, add idFactory() to the value
302
+ // e.g. @exampleArrayID(values: ["id1", "id2"]) -> { expression: [__id("id1"), __id("id2")] }
303
+ const isExampleArrayIdDirective = exampleDirective.name.value === "exampleArrayID";
304
+ if (isExampleArrayIdDirective) {
305
+ const expressions = exampleDirectiveRawValues.flatMap((rawValue) => {
306
+ if (typeof rawValue !== "string") {
307
+ return [];
308
+ }
309
+ return idFactory(rawValue, `${convertedTypeName}.${fieldName}.${rawValue}`);
310
+ });
311
+ return { comment, example: { expression: `[${expressions.join(",")}]` } };
312
+ }
313
+ return { comment, example: { value: exampleDirectiveRawValues } };
314
+ }
222
315
  /**
223
316
  * @exampleID(value: "id")
224
317
  * -> { value: "id1" }
@@ -231,26 +324,32 @@ function parseFieldOrInputValueDefinition({ node, convertedTypeName, config, idF
231
324
  * @exampleBoolean(value: true)
232
325
  * -> { value: true }
233
326
  */
234
- const value = exampleDirective.arguments.find((a) => a.name.value === "value");
235
- if (!value) {
327
+ const exampleDirectiveValue = exampleDirective.arguments.find((a) => a.name.value === "value");
328
+ if (!exampleDirectiveValue) {
236
329
  throw new Error(`@${exampleDirective.name.value} directive must have value argument. @${exampleDirective.name.value}(value: ...)`);
237
330
  }
238
- const rawValue = valueOfNode(value.value);
331
+ const exampleDirectiveRawValue = valueOfNode(exampleDirectiveValue.value);
239
332
  // if node type is not equal to the value type, throw an error
240
333
  const nodeType = parseTypeNodeStructure(node.type);
241
334
  // array, object, string, number, boolean, null
242
- const rawValueType = Object.prototype.toString.call(rawValue).slice(8, -1).toLowerCase();
243
- if (nodeType !== rawValueType) {
244
- throw new Error(`${convertedTypeName}.${fieldName}: @${exampleDirective.name.value} directive value type must be ${nodeType}. Got ${rawValueType}`);
335
+ const directiveRawValueType = Object.prototype.toString
336
+ .call(exampleDirectiveRawValue)
337
+ .slice(8, -1)
338
+ .toLowerCase();
339
+ if (nodeType !== directiveRawValueType) {
340
+ throw new Error(`${convertedTypeName}.${fieldName}: @${exampleDirective.name.value} directive value type must be ${nodeType}. Got ${directiveRawValueType}`);
245
341
  }
246
342
  // if ID type, add idFactory() to the value
247
343
  // e.g. @exampleID(value: "id") -> { expression: __id("id") }
248
344
  const isExampleIdDirective = exampleDirective.name.value === "exampleID";
249
- if (isExampleIdDirective && typeof rawValue === "string") {
250
- const pathOfField = `${convertedTypeName}.${fieldName}.${rawValue}`;
251
- return { comment, example: { expression: idFactory(rawValue, pathOfField) } };
345
+ if (isExampleIdDirective && typeof exampleDirectiveRawValue === "string") {
346
+ const pathOfField = `${convertedTypeName}.${fieldName}.${exampleDirectiveRawValue}`;
347
+ return {
348
+ comment,
349
+ example: { expression: idFactory(exampleDirectiveRawValue, pathOfField) },
350
+ };
252
351
  }
253
- return { comment, example: { value: rawValue } };
352
+ return { comment, example: { value: exampleDirectiveRawValue } };
254
353
  }
255
354
  function parseObjectTypeOrInputObjectTypeDefinition({ node, config, idFactory, enumMap, }) {
256
355
  const originalTypeName = node.name.value;
@@ -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.7.0",
3
+ "version": "0.9.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": "1a6ec2eb39227fc9ded80411461e0dfca4b02894"
68
+ "gitHead": "94e485d0fd79df45ca57fb8cd8f650ac878e4888"
69
69
  }
@@ -23,7 +23,7 @@ directive @exampleString(
23
23
  value: String!
24
24
  ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
25
25
  """
26
- @exampleInt directive specifies an example value for a Inf field.
26
+ @exampleInt directive specifies an example value for a Int field.
27
27
  This example value is used in the fake data.
28
28
  """
29
29
  directive @exampleInt(
@@ -55,6 +55,68 @@ directive @exampleBoolean(
55
55
  """
56
56
  value: Boolean!
57
57
  ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
58
+
59
+ """
60
+ @exampleArrayID directive specifies an example value for a array of ID field.
61
+ This example value is used in the fake data.
62
+ ID value will be unique between all ID fake data.
63
+ """
64
+ directive @exampleArrayID(
65
+ """
66
+ The value of the ID field.
67
+ @exampleArrayID(value: ["id1", "id2"])
68
+ """
69
+ values: [ID!]!
70
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
71
+ """
72
+ @exampleArrayString directive specifies an example value for a array of String field.
73
+ This example value is used in the fake data.
74
+ """
75
+ directive @exampleArrayString(
76
+ """
77
+ The value of the String field.
78
+ @exampleArrayString(value: ["example1", "example2"])
79
+ """
80
+ values: [String!]!
81
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
82
+ """
83
+ @exampleArrayInt directive specifies an example value for a array of Int field.
84
+ This example value is used in the fake data.
85
+ """
86
+ directive @exampleArrayInt(
87
+ """
88
+ The value of the Int field.
89
+ @exampleArrayInt(value: [1, 2])
90
+ """
91
+ values: [Int!]!
92
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
93
+ """
94
+ @exampleArrayFloat directive specifies an example value for a array of Float field.
95
+ This example value is used in the fake data.
96
+ """
97
+ directive @exampleArrayFloat(
98
+ """
99
+ The value of the Float field.
100
+ @exampleArrayFloat(value: [1.0, 2.0])
101
+ """
102
+ values: [Float!]!
103
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
104
+ """
105
+ @exampleArrayBoolean directive specifies an example value for a array of Boolean field.
106
+ This example value is used in the fake data.
107
+ """
108
+ directive @exampleArrayBoolean(
109
+ """
110
+ The value of the Boolean field.
111
+ @exampleArrayBoolean(value: [true, false])
112
+ """
113
+ values: [Boolean!]!
114
+ ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | INPUT_FIELD_DEFINITION
115
+ """
116
+ @error directive specifies a field as an error response field.
117
+ It allows setting an error response and specifying the field name.
118
+ """
119
+ directive @error on FIELD_DEFINITION
58
120
  `;
59
121
  export const extendSchema = (schema: string) => {
60
122
  return EXAMPLE_DIRECTIVE + schema;
@@ -263,6 +263,12 @@ const SUPPORTED_EXAMPLE_DIRECTIVES = [
263
263
  "exampleInt",
264
264
  "exampleFloat",
265
265
  "exampleBoolean",
266
+ // array
267
+ "exampleArrayID",
268
+ "exampleArrayString",
269
+ "exampleArrayInt",
270
+ "exampleArrayFloat",
271
+ "exampleArrayBoolean",
266
272
  ];
267
273
  const isIdType = (node: NonNullTypeNode | NamedTypeNode | ListTypeNode): boolean => {
268
274
  if (node.kind === "NonNullType") {
@@ -292,6 +298,14 @@ function parseFieldOrInputValueDefinition({
292
298
  }): { comment?: string | undefined; example?: ExampleDirective | undefined } {
293
299
  const fieldName = node.name.value;
294
300
  const comment = node.description ? transformComment(node.description) : undefined;
301
+ const errorDirective = node.directives?.find((d) => {
302
+ return d.name.value === "error"; // @error
303
+ });
304
+ if (errorDirective) {
305
+ return {
306
+ example: { value: [] }, // always empty value
307
+ };
308
+ }
295
309
  const exampleDirective = node.directives?.find((d) => {
296
310
  return SUPPORTED_EXAMPLE_DIRECTIVES.includes(d.name.value);
297
311
  });
@@ -314,6 +328,99 @@ function parseFieldOrInputValueDefinition({
314
328
  `@${exampleDirective.name.value} directive must have arguments. @${exampleDirective.name.value}(value: ...)`,
315
329
  );
316
330
  }
331
+ // [String!]! -> true
332
+ // [String!] -> true
333
+ // String -> false
334
+ const isListTypeNode = (node: TypeNode): node is ListTypeNode | NonNullTypeNode => {
335
+ if (node.kind === "ListType") {
336
+ return true;
337
+ }
338
+ if (node.kind === "NonNullType") {
339
+ return isListTypeNode(node.type);
340
+ }
341
+ return false;
342
+ };
343
+ if (isListTypeNode(node.type)) {
344
+ /**
345
+ * @exampleArrayID(values: ["id1", "id2"])
346
+ * -> { values: ["id1", "id2"] }
347
+ * @exampleArrayString(values: ["value 1", "value 2"])
348
+ * -> { values: ["value 1", "value 2"] }
349
+ * @exampleArrayInt(values: [1, 2])
350
+ * -> { values: [1, 2] }
351
+ * @exampleArrayFloat(values: [1.1, 2.2])
352
+ * -> { values: [1.1, 2.2] }
353
+ * @exampleArrayBoolean(values: [true, false])
354
+ * -> { values: [true, false] }
355
+ */
356
+ const exampleDirectiveValues = exampleDirective.arguments.find(
357
+ (a) => a.name.value === "values",
358
+ );
359
+ if (!exampleDirectiveValues) {
360
+ throw new Error(
361
+ `@${exampleDirective.name.value} directive must have values argument. @${exampleDirective.name.value}(values: ...)`,
362
+ );
363
+ }
364
+ if (exampleDirectiveValues.value.kind !== "ListValue") {
365
+ throw new Error(
366
+ `@${exampleDirective.name.value} directive must have values argument. @${exampleDirective.name.value}(values: ...). values is not array.`,
367
+ );
368
+ }
369
+ // [String!]! -> String
370
+ // [String!] -> String
371
+ const unwrapListNodeType = (node: ListTypeNode | NonNullTypeNode | TypeNode): TypeNode => {
372
+ if (node.kind === "ListType") {
373
+ return unwrapListNodeType(node.type);
374
+ }
375
+ if (node.kind === "NonNullType") {
376
+ return unwrapListNodeType(node.type);
377
+ }
378
+ return node;
379
+ };
380
+ const itemOfArrayNodeType = unwrapListNodeType(node.type);
381
+ const itemOfArrayRawValueType = parseTypeNodeStructure(itemOfArrayNodeType);
382
+ const exampleDirectiveRawValues = exampleDirectiveValues.value.values.map((v) => {
383
+ return valueOfNode(v);
384
+ }) as ValuePrimitive[]; // TODO: need to fix type
385
+ // all raw values should be the same type
386
+ const exampleDirectiveRawValueTypeSet = new Set<string>([
387
+ ...exampleDirectiveRawValues.map((value) => {
388
+ // array, object, string, number, boolean, null
389
+ return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
390
+ }),
391
+ ]);
392
+ if (exampleDirectiveRawValueTypeSet.size !== 1) {
393
+ throw new Error(
394
+ `${convertedTypeName}.${fieldName}: @${
395
+ exampleDirective.name.value
396
+ } directive values must be the same type. Got [${exampleDirectiveRawValues.join(
397
+ ", ",
398
+ )}]`,
399
+ );
400
+ }
401
+ // pick one of the raw value type
402
+ const oneOfExampleDirectiveRawValueType = exampleDirectiveRawValueTypeSet
403
+ .values()
404
+ .next().value;
405
+ if (itemOfArrayRawValueType !== oneOfExampleDirectiveRawValueType) {
406
+ throw new Error(
407
+ `${convertedTypeName}.${fieldName}: @${exampleDirective.name.value} directive values type must be ${itemOfArrayRawValueType}. Got ${oneOfExampleDirectiveRawValueType}`,
408
+ );
409
+ }
410
+ // if ID type, add idFactory() to the value
411
+ // e.g. @exampleArrayID(values: ["id1", "id2"]) -> { expression: [__id("id1"), __id("id2")] }
412
+ const isExampleArrayIdDirective = exampleDirective.name.value === "exampleArrayID";
413
+ if (isExampleArrayIdDirective) {
414
+ const expressions = exampleDirectiveRawValues.flatMap((rawValue) => {
415
+ if (typeof rawValue !== "string") {
416
+ return [];
417
+ }
418
+ return idFactory(rawValue, `${convertedTypeName}.${fieldName}.${rawValue}`);
419
+ });
420
+ return { comment, example: { expression: `[${expressions.join(",")}]` } };
421
+ }
422
+ return { comment, example: { value: exampleDirectiveRawValues } };
423
+ }
317
424
  /**
318
425
  * @exampleID(value: "id")
319
426
  * -> { value: "id1" }
@@ -326,30 +433,36 @@ function parseFieldOrInputValueDefinition({
326
433
  * @exampleBoolean(value: true)
327
434
  * -> { value: true }
328
435
  */
329
- const value = exampleDirective.arguments.find((a) => a.name.value === "value");
330
- if (!value) {
436
+ const exampleDirectiveValue = exampleDirective.arguments.find((a) => a.name.value === "value");
437
+ if (!exampleDirectiveValue) {
331
438
  throw new Error(
332
439
  `@${exampleDirective.name.value} directive must have value argument. @${exampleDirective.name.value}(value: ...)`,
333
440
  );
334
441
  }
335
- const rawValue = valueOfNode(value.value);
442
+ const exampleDirectiveRawValue = valueOfNode(exampleDirectiveValue.value);
336
443
  // if node type is not equal to the value type, throw an error
337
444
  const nodeType = parseTypeNodeStructure(node.type);
338
445
  // array, object, string, number, boolean, null
339
- const rawValueType = Object.prototype.toString.call(rawValue).slice(8, -1).toLowerCase();
340
- if (nodeType !== rawValueType) {
446
+ const directiveRawValueType = Object.prototype.toString
447
+ .call(exampleDirectiveRawValue)
448
+ .slice(8, -1)
449
+ .toLowerCase();
450
+ if (nodeType !== directiveRawValueType) {
341
451
  throw new Error(
342
- `${convertedTypeName}.${fieldName}: @${exampleDirective.name.value} directive value type must be ${nodeType}. Got ${rawValueType}`,
452
+ `${convertedTypeName}.${fieldName}: @${exampleDirective.name.value} directive value type must be ${nodeType}. Got ${directiveRawValueType}`,
343
453
  );
344
454
  }
345
455
  // if ID type, add idFactory() to the value
346
456
  // e.g. @exampleID(value: "id") -> { expression: __id("id") }
347
457
  const isExampleIdDirective = exampleDirective.name.value === "exampleID";
348
- if (isExampleIdDirective && typeof rawValue === "string") {
349
- const pathOfField = `${convertedTypeName}.${fieldName}.${rawValue}`;
350
- return { comment, example: { expression: idFactory(rawValue, pathOfField) } };
458
+ if (isExampleIdDirective && typeof exampleDirectiveRawValue === "string") {
459
+ const pathOfField = `${convertedTypeName}.${fieldName}.${exampleDirectiveRawValue}`;
460
+ return {
461
+ comment,
462
+ example: { expression: idFactory(exampleDirectiveRawValue, pathOfField) },
463
+ };
351
464
  }
352
- return { comment, example: { value: rawValue } };
465
+ return { comment, example: { value: exampleDirectiveRawValue } };
353
466
  }
354
467
 
355
468
  function parseObjectTypeOrInputObjectTypeDefinition({