@omnigraph/json-schema 1.0.0-alpha-20230424113259-560b18922 → 1.0.0-alpha-20230522110904-130abe0f9

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.
@@ -58,7 +58,7 @@ function addHTTPRootFieldResolver(schema, field, logger, globalFetch, { path, op
58
58
  headers,
59
59
  };
60
60
  if (timeout) {
61
- requestInit.signal = fetch_1.AbortSignal.timeout(timeout);
61
+ requestInit.signal = AbortSignal.timeout(timeout);
62
62
  }
63
63
  // Handle binary data
64
64
  if (isBinary) {
package/cjs/directives.js CHANGED
@@ -64,8 +64,11 @@ exports.ResolveRootDirective = new graphql_1.GraphQLDirective({
64
64
  name: 'resolveRoot',
65
65
  locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
66
66
  });
67
+ function rootResolver(root) {
68
+ return root;
69
+ }
67
70
  function processResolveRootAnnotations(field) {
68
- field.resolve = root => root;
71
+ field.resolve = rootResolver;
69
72
  }
70
73
  exports.processResolveRootAnnotations = processResolveRootAnnotations;
71
74
  exports.ResolveRootFieldDirective = new graphql_1.GraphQLDirective({
@@ -560,7 +563,11 @@ exports.EnumDirective = new graphql_1.GraphQLDirective({
560
563
  });
561
564
  exports.OneOfDirective = new graphql_1.GraphQLDirective({
562
565
  name: 'oneOf',
563
- locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE],
566
+ locations: [
567
+ graphql_1.DirectiveLocation.OBJECT,
568
+ graphql_1.DirectiveLocation.INTERFACE,
569
+ graphql_1.DirectiveLocation.INPUT_OBJECT,
570
+ ],
564
571
  });
565
572
  exports.ExampleDirective = new graphql_1.GraphQLDirective({
566
573
  name: 'example',
@@ -609,19 +609,18 @@ function getComposerFromJSONSchema(schema, logger) {
609
609
  output: schemaComposer.Query,
610
610
  ...subSchema,
611
611
  };
612
+ break;
612
613
  case 'Mutation':
613
614
  return {
614
615
  output: schemaComposer.Mutation,
615
616
  ...subSchema,
616
617
  };
618
+ break;
617
619
  case 'Subscription':
618
- if (path === '/properties/subscription') {
619
- return {
620
- output: schemaComposer.Subscription,
621
- ...subSchema,
622
- };
623
- }
624
- subSchema.title = 'Subscription_';
620
+ return {
621
+ output: schemaComposer.Subscription,
622
+ ...subSchema,
623
+ };
625
624
  break;
626
625
  }
627
626
  }
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTypeResolverFromOutputTCs = void 0;
4
4
  const utils_1 = require("@graphql-tools/utils");
5
5
  function getTypeResolverFromOutputTCs({ possibleTypes, discriminatorField, discriminatorMapping, statusCodeTypeNameMap, }) {
6
- return function resolveType(data) {
6
+ return function resolveType(data, _ctx, info) {
7
7
  if (data.__typename) {
8
8
  return data.__typename;
9
9
  }
@@ -17,8 +17,29 @@ function getTypeResolverFromOutputTCs({ possibleTypes, discriminatorField, discr
17
17
  return typeName;
18
18
  }
19
19
  }
20
+ const dataTypeOf = typeof data;
21
+ if (dataTypeOf !== 'object') {
22
+ for (const possibleType of possibleTypes) {
23
+ const fieldMap = possibleType.getFields();
24
+ const fields = Object.values(fieldMap);
25
+ if (fields.length === 1) {
26
+ const field = fields[0];
27
+ const directiveObjs = (0, utils_1.getDirective)(info.schema, field, 'resolveRoot');
28
+ if (directiveObjs === null || directiveObjs === void 0 ? void 0 : directiveObjs.length) {
29
+ const fieldType = field.type;
30
+ if ('parseValue' in fieldType) {
31
+ try {
32
+ fieldType.parseValue(data);
33
+ return possibleType.name;
34
+ }
35
+ catch (e) { }
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
20
41
  // const validationErrors: Record<string, ErrorObject[]> = {};
21
- const dataKeys = typeof data === 'object'
42
+ const dataKeys = dataTypeOf
22
43
  ? Object.keys(data)
23
44
  // Remove metadata fields used to pass data
24
45
  .filter(property => !property.toString().startsWith('$'))
@@ -5,10 +5,15 @@ const graphql_compose_1 = require("graphql-compose");
5
5
  const directives_js_1 = require("./directives.js");
6
6
  function getContainerTC(schemaComposer, output) {
7
7
  const containerTypeName = `${output.getTypeName()}_container`;
8
+ schemaComposer.addDirective(directives_js_1.ResolveRootDirective);
8
9
  return schemaComposer.getOrCreateOTC(containerTypeName, otc => otc.addFields({
9
10
  [output.getTypeName()]: {
10
11
  type: output,
11
- resolve: root => root,
12
+ directives: [
13
+ {
14
+ name: 'resolveRoot',
15
+ },
16
+ ],
12
17
  },
13
18
  }));
14
19
  }
@@ -6,7 +6,7 @@ import { process } from '@graphql-mesh/cross-helpers';
6
6
  import { stringInterpolator } from '@graphql-mesh/string-interpolation';
7
7
  import { getHeadersObj } from '@graphql-mesh/utils';
8
8
  import { createGraphQLError, memoize1 } from '@graphql-tools/utils';
9
- import { AbortSignal, Blob, File, FormData } from '@whatwg-node/fetch';
9
+ import { Blob, File, FormData } from '@whatwg-node/fetch';
10
10
  import { resolveDataByUnionInputType } from './resolveDataByUnionInputType.js';
11
11
  import { isFileUpload } from './utils.js';
12
12
  const isListTypeOrNonNullListType = memoize1(function isListTypeOrNonNullListType(type) {
package/esm/directives.js CHANGED
@@ -59,8 +59,11 @@ export const ResolveRootDirective = new GraphQLDirective({
59
59
  name: 'resolveRoot',
60
60
  locations: [DirectiveLocation.FIELD_DEFINITION],
61
61
  });
62
+ function rootResolver(root) {
63
+ return root;
64
+ }
62
65
  export function processResolveRootAnnotations(field) {
63
- field.resolve = root => root;
66
+ field.resolve = rootResolver;
64
67
  }
65
68
  export const ResolveRootFieldDirective = new GraphQLDirective({
66
69
  name: 'resolveRootField',
@@ -545,7 +548,11 @@ export const EnumDirective = new GraphQLDirective({
545
548
  });
546
549
  export const OneOfDirective = new GraphQLDirective({
547
550
  name: 'oneOf',
548
- locations: [DirectiveLocation.OBJECT, DirectiveLocation.INTERFACE],
551
+ locations: [
552
+ DirectiveLocation.OBJECT,
553
+ DirectiveLocation.INTERFACE,
554
+ DirectiveLocation.INPUT_OBJECT,
555
+ ],
549
556
  });
550
557
  export const ExampleDirective = new GraphQLDirective({
551
558
  name: 'example',
@@ -606,19 +606,18 @@ export function getComposerFromJSONSchema(schema, logger) {
606
606
  output: schemaComposer.Query,
607
607
  ...subSchema,
608
608
  };
609
+ break;
609
610
  case 'Mutation':
610
611
  return {
611
612
  output: schemaComposer.Mutation,
612
613
  ...subSchema,
613
614
  };
615
+ break;
614
616
  case 'Subscription':
615
- if (path === '/properties/subscription') {
616
- return {
617
- output: schemaComposer.Subscription,
618
- ...subSchema,
619
- };
620
- }
621
- subSchema.title = 'Subscription_';
617
+ return {
618
+ output: schemaComposer.Subscription,
619
+ ...subSchema,
620
+ };
622
621
  break;
623
622
  }
624
623
  }
@@ -1,6 +1,6 @@
1
- import { createGraphQLError } from '@graphql-tools/utils';
1
+ import { createGraphQLError, getDirective } from '@graphql-tools/utils';
2
2
  export function getTypeResolverFromOutputTCs({ possibleTypes, discriminatorField, discriminatorMapping, statusCodeTypeNameMap, }) {
3
- return function resolveType(data) {
3
+ return function resolveType(data, _ctx, info) {
4
4
  if (data.__typename) {
5
5
  return data.__typename;
6
6
  }
@@ -14,8 +14,29 @@ export function getTypeResolverFromOutputTCs({ possibleTypes, discriminatorField
14
14
  return typeName;
15
15
  }
16
16
  }
17
+ const dataTypeOf = typeof data;
18
+ if (dataTypeOf !== 'object') {
19
+ for (const possibleType of possibleTypes) {
20
+ const fieldMap = possibleType.getFields();
21
+ const fields = Object.values(fieldMap);
22
+ if (fields.length === 1) {
23
+ const field = fields[0];
24
+ const directiveObjs = getDirective(info.schema, field, 'resolveRoot');
25
+ if (directiveObjs === null || directiveObjs === void 0 ? void 0 : directiveObjs.length) {
26
+ const fieldType = field.type;
27
+ if ('parseValue' in fieldType) {
28
+ try {
29
+ fieldType.parseValue(data);
30
+ return possibleType.name;
31
+ }
32
+ catch (e) { }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
17
38
  // const validationErrors: Record<string, ErrorObject[]> = {};
18
- const dataKeys = typeof data === 'object'
39
+ const dataKeys = dataTypeOf
19
40
  ? Object.keys(data)
20
41
  // Remove metadata fields used to pass data
21
42
  .filter(property => !property.toString().startsWith('$'))
@@ -1,11 +1,16 @@
1
1
  import { isSomeInputTypeComposer, } from 'graphql-compose';
2
- import { StatusCodeTypeNameDirective } from './directives.js';
2
+ import { ResolveRootDirective, StatusCodeTypeNameDirective } from './directives.js';
3
3
  export function getContainerTC(schemaComposer, output) {
4
4
  const containerTypeName = `${output.getTypeName()}_container`;
5
+ schemaComposer.addDirective(ResolveRootDirective);
5
6
  return schemaComposer.getOrCreateOTC(containerTypeName, otc => otc.addFields({
6
7
  [output.getTypeName()]: {
7
8
  type: output,
8
- resolve: root => root,
9
+ directives: [
10
+ {
11
+ name: 'resolveRoot',
12
+ },
13
+ ],
9
14
  },
10
15
  }));
11
16
  }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@omnigraph/json-schema",
3
- "version": "1.0.0-alpha-20230424113259-560b18922",
3
+ "version": "1.0.0-alpha-20230522110904-130abe0f9",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@graphql-mesh/cross-helpers": "^0.3.4",
7
- "@graphql-mesh/types": "1.0.0-alpha-20230424113259-560b18922",
8
- "@graphql-mesh/utils": "1.0.0-alpha-20230424113259-560b18922",
6
+ "@graphql-mesh/cross-helpers": "0.4.0-alpha-20230522110904-130abe0f9",
7
+ "@graphql-mesh/types": "1.0.0-alpha-20230522110904-130abe0f9",
8
+ "@graphql-mesh/utils": "1.0.0-alpha-20230522110904-130abe0f9",
9
9
  "@graphql-tools/utils": "^9.2.1",
10
10
  "graphql": "*",
11
11
  "tslib": "^2.4.0"
12
12
  },
13
13
  "dependencies": {
14
- "@graphql-mesh/string-interpolation": "0.4.4",
14
+ "@graphql-mesh/string-interpolation": "0.5.0-alpha-20230522110904-130abe0f9",
15
15
  "@json-schema-tools/meta-schema": "1.7.0",
16
16
  "@whatwg-node/fetch": "^0.8.3",
17
17
  "ajv": "8.12.0",
@@ -19,9 +19,9 @@
19
19
  "dset": "3.1.2",
20
20
  "graphql-compose": "9.0.10",
21
21
  "graphql-scalars": "^1.20.4",
22
- "json-machete": "1.0.0-alpha-20230424113259-560b18922",
22
+ "json-machete": "1.0.0-alpha-20230522110904-130abe0f9",
23
23
  "pascal-case": "3.1.2",
24
- "qs": "6.11.1",
24
+ "qs": "6.11.2",
25
25
  "to-json-schema": "0.2.5",
26
26
  "url-join": "4.0.1"
27
27
  },