@vladimirdev635/gql-codegen 0.0.96 → 0.0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/actors/ts/formatters/eslint/index.d.ts +1 -1
  2. package/actors/ts/formatters/index.d.ts +1 -0
  3. package/actors/ts/formatters/index.js +1 -0
  4. package/actors/ts/formatters/oxfmt/formatter.d.ts +3 -0
  5. package/actors/ts/formatters/oxfmt/formatter.js +20 -0
  6. package/actors/ts/formatters/oxfmt/index.d.ts +2 -0
  7. package/actors/ts/formatters/oxfmt/index.js +1 -0
  8. package/actors/ts/formatters/oxfmt/types.d.ts +20 -0
  9. package/actors/ts/formatters/oxfmt/types.js +1 -0
  10. package/actors/ts/gql-client/actor.js +1 -1
  11. package/actors/ts/gql-client/generators/main.js +25 -21
  12. package/actors/ts/gql-client/index.d.ts +1 -1
  13. package/actors/ts/gql-client/index.js +1 -1
  14. package/actors/ts/gql-client-react/actor.js +1 -1
  15. package/actors/ts/gql-client-react/generators/main.js +20 -14
  16. package/actors/ts/gql-client-react/index.d.ts +1 -1
  17. package/actors/ts/gql-client-react/index.js +1 -1
  18. package/actors/ts/graphql/actor.js +1 -1
  19. package/actors/ts/graphql/generators/client/fragments.js +53 -31
  20. package/actors/ts/graphql/generators/client/main.js +5 -5
  21. package/actors/ts/graphql/generators/client/operations.js +29 -13
  22. package/actors/ts/graphql/generators/main.js +2 -2
  23. package/actors/ts/graphql/generators/server/enums.js +1 -1
  24. package/actors/ts/graphql/generators/server/inputs.js +11 -8
  25. package/actors/ts/graphql/generators/server/main.js +13 -10
  26. package/actors/ts/graphql/generators/server/objects.js +15 -11
  27. package/actors/ts/graphql/generators/server/scalars/additional.js +23 -5
  28. package/actors/ts/graphql/generators/server/scalars/index.d.ts +1 -1
  29. package/actors/ts/graphql/generators/server/scalars/index.js +1 -1
  30. package/actors/ts/graphql/generators/server/scalars/mapping.js +1 -1
  31. package/actors/ts/graphql/generators/server/shared.js +6 -4
  32. package/actors/ts/graphql/generators/server/unions.js +5 -5
  33. package/actors/ts/graphql/generators/shared.js +6 -6
  34. package/actors/ts/graphql/index.d.ts +1 -1
  35. package/actors/ts/graphql/index.js +1 -1
  36. package/actors/ts/utils.js +3 -3
  37. package/config.d.ts +0 -2
  38. package/index.d.ts +1 -1
  39. package/index.js +1 -1
  40. package/package.json +23 -21
  41. package/schema/client/argument.d.ts +2 -2
  42. package/schema/client/argument.js +3 -3
  43. package/schema/client/directive.d.ts +2 -2
  44. package/schema/client/directive.js +1 -1
  45. package/schema/client/fragment.d.ts +5 -5
  46. package/schema/client/fragment.js +10 -10
  47. package/schema/client/operation.d.ts +3 -3
  48. package/schema/client/root.d.ts +6 -6
  49. package/schema/client/root.js +1 -1
  50. package/schema/server.d.ts +36 -36
  51. package/schema/server.js +13 -13
  52. package/schema/shared.d.ts +6 -6
  53. package/schema/shared.js +7 -7
  54. package/schema/test-client.json +52031 -1
  55. package/schema/test-server.json +38289 -1
  56. package/schema/utils.js +78 -67
  57. package/utils.js +1 -2
package/schema/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable max-lines */
2
2
  import { readFileSync } from 'fs';
3
- import { serverSchema } from './server.js';
3
+ import { serverSchema, } from './server.js';
4
4
  import { clientSchema } from './client/root.js';
5
5
  import { exec } from 'node:child_process';
6
6
  export function loadSchemaFromFile(p, schema) {
@@ -18,12 +18,10 @@ export async function loadServerSchemaFromGQLSubprocess(gqlPath = 'gql', gqlArgs
18
18
  if (err !== null) {
19
19
  reject(err);
20
20
  }
21
- ;
22
21
  if (stderr !== '') {
23
22
  reject(err);
24
23
  }
25
- ;
26
- resolve(stdout.split('\n').filter(s => s !== '')[0]);
24
+ resolve(stdout.split('\n').filter((s) => s !== '')[0]);
27
25
  });
28
26
  });
29
27
  return serverSchema.parse(JSON.parse(output));
@@ -34,12 +32,10 @@ export async function loadRootSchemaFromGQLSubprocess(gqlPath = 'gql', gqlArgs =
34
32
  if (err !== null) {
35
33
  reject(err);
36
34
  }
37
- ;
38
35
  if (stderr !== '') {
39
36
  reject(err);
40
37
  }
41
- ;
42
- resolve(stdout.split('\n').filter(s => s !== ''));
38
+ resolve(stdout.split('\n').filter((s) => s !== ''));
43
39
  });
44
40
  });
45
41
  return {
@@ -60,11 +56,11 @@ function buildFragmentSpecFromUnion(union) {
60
56
  _type: 'ObjectFragmentSpec',
61
57
  name: item,
62
58
  selections: [
63
- { _type: 'SpreadSelection', fragment: item }
64
- ]
65
- }
66
- }))
67
- ]
59
+ { _type: 'SpreadSelection', fragment: item },
60
+ ],
61
+ },
62
+ })),
63
+ ],
68
64
  };
69
65
  }
70
66
  function generateFragmentText(name, specText) {
@@ -75,35 +71,38 @@ export function buildFragmentFromUnion(union) {
75
71
  spec: buildFragmentSpecFromUnion(union),
76
72
  sourceText: generateFragmentText(union.name,
77
73
  // eslint-disable-next-line no-use-before-define
78
- generateUnionFragmentSpecText(union))
74
+ generateUnionFragmentSpecText(union)),
79
75
  };
80
76
  }
81
- ;
82
77
  function extractFieldFromObjectLiteralFieldSpec(spec) {
83
78
  switch (spec.type._type) {
84
- case 'Enum': return '';
85
- case 'Scalar': return '';
79
+ case 'Enum':
80
+ return '';
81
+ case 'Scalar':
82
+ return '';
86
83
  case 'Union':
87
84
  case 'ObjectType':
88
85
  case 'InterfaceType':
89
86
  return '{...' + spec.type.name + '}';
90
87
  }
91
- ;
92
88
  }
93
- ;
94
89
  function extractFieldFromNonCallableFieldSpec(spec) {
95
90
  switch (spec._type) {
96
- case 'literal': return extractFieldFromObjectLiteralFieldSpec(spec);
97
- case 'array': return extractFieldFromNonCallableFieldSpec(spec.type);
91
+ case 'literal':
92
+ return extractFieldFromObjectLiteralFieldSpec(spec);
93
+ case 'array':
94
+ return extractFieldFromNonCallableFieldSpec(spec.type);
98
95
  }
99
96
  }
100
- ;
101
97
  function buildInputFieldSpec(spec) {
102
98
  switch (spec._type) {
103
- case 'literal': return spec.type.name;
99
+ case 'literal':
100
+ return spec.type.name;
104
101
  case 'array':
105
- return '[' + buildInputFieldSpec(spec.type) +
106
- (spec.nullable ? '' : '!') + ']';
102
+ return ('[' +
103
+ buildInputFieldSpec(spec.type) +
104
+ (spec.nullable ? '' : '!') +
105
+ ']');
107
106
  }
108
107
  }
109
108
  function buildInputField(field) {
@@ -111,13 +110,12 @@ function buildInputField(field) {
111
110
  if (!field.nullable) {
112
111
  str += '!';
113
112
  }
114
- ;
115
113
  return str;
116
114
  }
117
- ;
118
115
  function extractTypeFromObjectFieldSpec(spec) {
119
116
  switch (spec._type) {
120
- case 'literal': return spec.type;
117
+ case 'literal':
118
+ return spec.type;
121
119
  case 'array':
122
120
  return extractTypeFromObjectFieldSpec(spec.type);
123
121
  case 'callable':
@@ -125,7 +123,8 @@ function extractTypeFromObjectFieldSpec(spec) {
125
123
  }
126
124
  }
127
125
  function generateObjectFragmentSpecText(object, onlyField = null) {
128
- return '{' + (onlyField !== null ? '' : '__typename ') +
126
+ return ('{' +
127
+ (onlyField !== null ? '' : '__typename ') +
129
128
  Object.entries(object.fields)
130
129
  .filter(([name]) => onlyField === null || onlyField === name)
131
130
  // eslint-disable-next-line array-callback-return
@@ -140,58 +139,65 @@ function generateObjectFragmentSpecText(object, onlyField = null) {
140
139
  const fieldText = extractFieldFromNonCallableFieldSpec(field.spec.returnType);
141
140
  return [
142
141
  `${name}(` +
143
- Object.keys(field.spec.arguments).map(aName => `${aName}:$${aName}`).join(',') +
142
+ Object.keys(field.spec.arguments)
143
+ .map((aName) => `${aName}:$${aName}`)
144
+ .join(',') +
144
145
  ')',
145
- fieldText
146
+ fieldText,
146
147
  ].join('');
147
148
  }
149
+ default:
150
+ throw new Error('Unreachable');
148
151
  }
149
- ;
150
- }).join(' ') +
151
- '}';
152
+ })
153
+ .join(' ') +
154
+ '}');
152
155
  }
153
156
  function generateUnionFragmentSpecText(union) {
154
157
  return ('{__typename' +
155
- Object.keys(union.items).map(item => `... on ${item}{...${item}}`).join(' ') +
158
+ Object.keys(union.items)
159
+ .map((item) => `... on ${item}{...${item}}`)
160
+ .join(' ') +
156
161
  '}');
157
162
  }
158
163
  export function buildSelectionFromFieldSpec(spec) {
159
164
  const type = extractTypeFromObjectFieldSpec(spec);
160
165
  switch (type._type) {
161
166
  case 'Enum':
162
- case 'Scalar': return null;
167
+ case 'Scalar':
168
+ return null;
163
169
  case 'ObjectType':
164
170
  case 'InterfaceType':
165
171
  return {
166
172
  _type: 'ObjectFragmentSpec',
167
173
  name: type.name,
168
- selections: [
169
- { _type: 'SpreadSelection', fragment: type.name }
170
- ]
174
+ selections: [{ _type: 'SpreadSelection', fragment: type.name }],
171
175
  };
172
176
  case 'Union':
173
177
  return {
174
178
  _type: 'UnionFragmentSpec',
175
179
  name: type.name,
176
- selections: [
177
- { _type: 'SpreadSelection', fragment: type.name }
178
- ]
180
+ selections: [{ _type: 'SpreadSelection', fragment: type.name }],
179
181
  };
180
182
  }
181
183
  }
182
184
  export function buildArgumentFromFieldSpec(spec) {
183
185
  switch (spec._type) {
184
186
  case 'array':
185
- case 'literal': return {};
187
+ case 'literal':
188
+ return {};
186
189
  case 'callable':
187
- return Object.fromEntries(Object.keys(spec.arguments).map(name => {
188
- return [name, {
190
+ return Object.fromEntries(Object.keys(spec.arguments).map((name) => {
191
+ return [
192
+ name,
193
+ {
189
194
  name,
190
195
  value: {
191
196
  _type: 'ref',
192
- name: '$' + name
193
- }
194
- }];
197
+ name: '$' + name,
198
+ },
199
+ },
200
+ ];
195
201
  }));
196
202
  }
197
203
  }
@@ -201,27 +207,25 @@ export function buildFieldSelection(name, field) {
201
207
  name,
202
208
  alias: name,
203
209
  arguments: buildArgumentFromFieldSpec(field.spec),
204
- selection: buildSelectionFromFieldSpec(field.spec)
210
+ selection: buildSelectionFromFieldSpec(field.spec),
205
211
  };
206
212
  }
207
- ;
208
213
  function buildFragmentSpecFromObject(object) {
209
214
  return {
210
215
  _type: 'ObjectFragmentSpec',
211
216
  name: object.name,
212
217
  selections: [
213
218
  { _type: 'TypenameField', alias: null },
214
- ...Object.entries(object.fields).map(([name, field]) => buildFieldSelection(name, field))
215
- ]
219
+ ...Object.entries(object.fields).map(([name, field]) => buildFieldSelection(name, field)),
220
+ ],
216
221
  };
217
222
  }
218
223
  export function buildFragmentFromObject(object) {
219
224
  return {
220
225
  spec: buildFragmentSpecFromObject(object),
221
- sourceText: generateFragmentText(object.name, generateObjectFragmentSpecText(object))
226
+ sourceText: generateFragmentText(object.name, generateObjectFragmentSpecText(object)),
222
227
  };
223
228
  }
224
- ;
225
229
  function buildParameters(field) {
226
230
  const parameters = {};
227
231
  if (field._type === 'callable') {
@@ -235,13 +239,18 @@ function buildOperationSourceText(opType, object, name, fieldName, spec) {
235
239
  let argumentsText = '';
236
240
  if (spec._type === 'callable') {
237
241
  argumentsText += '(';
238
- argumentsText += Object.entries(spec.arguments).map(([aName, arg]) => {
242
+ argumentsText += Object.entries(spec.arguments)
243
+ .map(([aName, arg]) => {
239
244
  return `$${aName}:${buildInputField(arg)}`;
240
- }).join(',');
245
+ })
246
+ .join(',');
241
247
  argumentsText += ')';
242
248
  }
243
- return opType.toLowerCase() + ' ' + name + argumentsText +
244
- generateObjectFragmentSpecText(object, fieldName);
249
+ return (opType.toLowerCase() +
250
+ ' ' +
251
+ name +
252
+ argumentsText +
253
+ generateObjectFragmentSpecText(object, fieldName));
245
254
  }
246
255
  function buildFragmentSpecFromField(opType, name, field) {
247
256
  return {
@@ -253,9 +262,9 @@ function buildFragmentSpecFromField(opType, name, field) {
253
262
  name,
254
263
  alias: name,
255
264
  arguments: buildArgumentFromFieldSpec(field.spec),
256
- selection: buildSelectionFromFieldSpec(field.spec)
257
- }
258
- ]
265
+ selection: buildSelectionFromFieldSpec(field.spec),
266
+ },
267
+ ],
259
268
  };
260
269
  }
261
270
  function buildOperation(type, object, fieldName, field) {
@@ -293,18 +302,20 @@ function buildOperations(server) {
293
302
  export function buildClientSchemaFromServerSchema(server) {
294
303
  return {
295
304
  fragments: Object.fromEntries([
296
- ...Object.values(server.unions)
297
- .map(union => [
305
+ ...Object.values(server.unions).map((union) => [
298
306
  union.name,
299
- buildFragmentFromUnion(union)
307
+ buildFragmentFromUnion(union),
300
308
  ]),
301
309
  ...Object.values(server.objects)
302
- .filter(object => object.name !== 'Query' &&
310
+ .filter((object) => object.name !== 'Query' &&
303
311
  object.name !== 'Mutation' &&
304
- object.name !== 'Subscription').map(object => [object.name, buildFragmentFromObject(object)]),
312
+ object.name !== 'Subscription')
313
+ .map((object) => [
314
+ object.name,
315
+ buildFragmentFromObject(object),
316
+ ]),
305
317
  ]),
306
318
  operations: buildOperations(server),
307
- directives: {}
319
+ directives: {},
308
320
  };
309
321
  }
310
- ;
package/utils.js CHANGED
@@ -7,8 +7,7 @@ export function entries(obj) {
7
7
  export function fromEntries(eList) {
8
8
  return Object.fromEntries(eList);
9
9
  }
10
- ;
11
10
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
12
11
  export function assertUnreachable(_) {
13
- throw new Error('Didn\'t expect to get here');
12
+ throw new Error("Didn't expect to get here");
14
13
  }