@gqlbase/plugins 0.0.6 → 0.0.8

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 (129) hide show
  1. package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.d.ts +31 -0
  2. package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.d.ts.map +1 -0
  3. package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.js +139 -0
  4. package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.js.map +1 -0
  5. package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.utils.d.ts +18 -0
  6. package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.utils.d.ts.map +1 -0
  7. package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.utils.js +8 -0
  8. package/dist/appsync/AppSyncSchemaGeneratorPlugin/AppSyncSchemaGeneratorPlugin.utils.js.map +1 -0
  9. package/dist/appsync/AppSyncSchemaGeneratorPlugin/index.d.ts +3 -0
  10. package/dist/appsync/AppSyncSchemaGeneratorPlugin/index.d.ts.map +1 -0
  11. package/dist/appsync/AppSyncSchemaGeneratorPlugin/index.js +2 -0
  12. package/dist/appsync/AppSyncSchemaGeneratorPlugin/index.js.map +1 -0
  13. package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.d.ts +33 -0
  14. package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.d.ts.map +1 -0
  15. package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.js +91 -0
  16. package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.js.map +1 -0
  17. package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.utils.d.ts +29 -0
  18. package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.utils.d.ts.map +1 -0
  19. package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.utils.js +53 -0
  20. package/dist/appsync/AppSyncUtilsPlugin/AppSyncUtilsPlugin.utils.js.map +1 -0
  21. package/dist/appsync/AppSyncUtilsPlugin/index.d.ts +3 -0
  22. package/dist/appsync/AppSyncUtilsPlugin/index.d.ts.map +1 -0
  23. package/dist/appsync/AppSyncUtilsPlugin/index.js +3 -0
  24. package/dist/appsync/AppSyncUtilsPlugin/index.js.map +1 -0
  25. package/dist/appsync/appSyncPreset.d.ts +17 -0
  26. package/dist/appsync/appSyncPreset.d.ts.map +1 -0
  27. package/dist/appsync/appSyncPreset.js +21 -0
  28. package/dist/appsync/appSyncPreset.js.map +1 -0
  29. package/dist/appsync/index.d.ts +2 -0
  30. package/dist/appsync/index.d.ts.map +1 -0
  31. package/dist/appsync/index.js +2 -0
  32. package/dist/appsync/index.js.map +1 -0
  33. package/dist/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.d.ts +55 -0
  34. package/dist/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.d.ts.map +1 -0
  35. package/dist/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.js +100 -0
  36. package/dist/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.js.map +1 -0
  37. package/dist/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.utils.d.ts +3 -0
  38. package/dist/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.utils.d.ts.map +1 -0
  39. package/dist/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.utils.js +4 -0
  40. package/dist/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.utils.js.map +1 -0
  41. package/dist/base/InterfaceUtilsPlugin/index.d.ts +3 -0
  42. package/dist/base/InterfaceUtilsPlugin/index.d.ts.map +1 -0
  43. package/dist/base/InterfaceUtilsPlugin/index.js +3 -0
  44. package/dist/base/InterfaceUtilsPlugin/index.js.map +1 -0
  45. package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.d.ts +9 -3
  46. package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.d.ts.map +1 -1
  47. package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.js +26 -16
  48. package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.js.map +1 -1
  49. package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.utils.d.ts +19 -9
  50. package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.utils.d.ts.map +1 -1
  51. package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.utils.js +11 -11
  52. package/dist/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.utils.js.map +1 -1
  53. package/dist/base/RelationsPlugin/RelationsPlugin.d.ts +13 -8
  54. package/dist/base/RelationsPlugin/RelationsPlugin.d.ts.map +1 -1
  55. package/dist/base/RelationsPlugin/RelationsPlugin.js +30 -46
  56. package/dist/base/RelationsPlugin/RelationsPlugin.js.map +1 -1
  57. package/dist/base/RelationsPlugin/RelationsPlugin.utils.d.ts +5 -3
  58. package/dist/base/RelationsPlugin/RelationsPlugin.utils.d.ts.map +1 -1
  59. package/dist/base/RelationsPlugin/RelationsPlugin.utils.js +26 -1
  60. package/dist/base/RelationsPlugin/RelationsPlugin.utils.js.map +1 -1
  61. package/dist/base/RelationsPlugin/index.d.ts +1 -1
  62. package/dist/base/RelationsPlugin/index.d.ts.map +1 -1
  63. package/dist/base/RelationsPlugin/index.js +1 -1
  64. package/dist/base/RelationsPlugin/index.js.map +1 -1
  65. package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.d.ts +28 -0
  66. package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.d.ts.map +1 -0
  67. package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.js +33 -0
  68. package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.js.map +1 -0
  69. package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.d.ts +14 -0
  70. package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.d.ts.map +1 -0
  71. package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.js +39 -0
  72. package/dist/base/RfcFeaturesPlugin/RfcFeaturesPlugin.utils.js.map +1 -0
  73. package/dist/base/RfcFeaturesPlugin/index.d.ts +3 -0
  74. package/dist/base/RfcFeaturesPlugin/index.d.ts.map +1 -0
  75. package/dist/base/RfcFeaturesPlugin/index.js +3 -0
  76. package/dist/base/RfcFeaturesPlugin/index.js.map +1 -0
  77. package/dist/base/ScalarsPlugin/ScalarsPlugin.utils.d.ts +15 -0
  78. package/dist/base/ScalarsPlugin/ScalarsPlugin.utils.d.ts.map +1 -0
  79. package/dist/base/ScalarsPlugin/ScalarsPlugin.utils.js +16 -0
  80. package/dist/base/ScalarsPlugin/ScalarsPlugin.utils.js.map +1 -0
  81. package/dist/base/ScalarsPlugin/index.d.ts +1 -0
  82. package/dist/base/ScalarsPlugin/index.d.ts.map +1 -1
  83. package/dist/base/ScalarsPlugin/index.js +1 -0
  84. package/dist/base/ScalarsPlugin/index.js.map +1 -1
  85. package/dist/base/basePreset.d.ts +2 -0
  86. package/dist/base/basePreset.d.ts.map +1 -1
  87. package/dist/base/basePreset.js +6 -0
  88. package/dist/base/basePreset.js.map +1 -1
  89. package/dist/base/index.d.ts +2 -0
  90. package/dist/base/index.d.ts.map +1 -1
  91. package/dist/base/index.js +2 -0
  92. package/dist/base/index.js.map +1 -1
  93. package/dist/index.d.ts +4 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +4 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/relay/ConnectionPlugin/ConnectionPlugin.d.ts +63 -0
  98. package/dist/relay/ConnectionPlugin/ConnectionPlugin.d.ts.map +1 -0
  99. package/dist/relay/ConnectionPlugin/ConnectionPlugin.js +156 -0
  100. package/dist/relay/ConnectionPlugin/ConnectionPlugin.js.map +1 -0
  101. package/dist/relay/ConnectionPlugin/ConnectionPlugin.utils.d.ts +4 -0
  102. package/dist/relay/ConnectionPlugin/ConnectionPlugin.utils.d.ts.map +1 -0
  103. package/dist/relay/ConnectionPlugin/ConnectionPlugin.utils.js +26 -0
  104. package/dist/relay/ConnectionPlugin/ConnectionPlugin.utils.js.map +1 -0
  105. package/dist/relay/ConnectionPlugin/index.d.ts +3 -0
  106. package/dist/relay/ConnectionPlugin/index.d.ts.map +1 -0
  107. package/dist/relay/ConnectionPlugin/index.js +3 -0
  108. package/dist/relay/ConnectionPlugin/index.js.map +1 -0
  109. package/dist/relay/{NodeInterfacePlugin.d.ts → NodeInterfacePlugin/NodeInterfacePlugin.d.ts} +30 -6
  110. package/dist/relay/NodeInterfacePlugin/NodeInterfacePlugin.d.ts.map +1 -0
  111. package/dist/relay/{NodeInterfacePlugin.js → NodeInterfacePlugin/NodeInterfacePlugin.js} +37 -27
  112. package/dist/relay/NodeInterfacePlugin/NodeInterfacePlugin.js.map +1 -0
  113. package/dist/relay/NodeInterfacePlugin/index.d.ts +2 -0
  114. package/dist/relay/NodeInterfacePlugin/index.d.ts.map +1 -0
  115. package/dist/relay/NodeInterfacePlugin/index.js +2 -0
  116. package/dist/relay/NodeInterfacePlugin/index.js.map +1 -0
  117. package/dist/relay/index.d.ts +3 -2
  118. package/dist/relay/index.d.ts.map +1 -1
  119. package/dist/relay/index.js +3 -2
  120. package/dist/relay/index.js.map +1 -1
  121. package/dist/relay/relayPreset.js +2 -2
  122. package/dist/relay/relayPreset.js.map +1 -1
  123. package/package.json +7 -3
  124. package/dist/relay/ConnectionPlugin.d.ts +0 -46
  125. package/dist/relay/ConnectionPlugin.d.ts.map +0 -1
  126. package/dist/relay/ConnectionPlugin.js +0 -200
  127. package/dist/relay/ConnectionPlugin.js.map +0 -1
  128. package/dist/relay/NodeInterfacePlugin.d.ts.map +0 -1
  129. package/dist/relay/NodeInterfacePlugin.js.map +0 -1
@@ -0,0 +1,100 @@
1
+ import { createPluginFactory, TransformerPluginBase } from "@gqlbase/core";
2
+ import { FieldNode, InterfaceNode, NamedTypeNode, ObjectNode, } from "@gqlbase/core/definition";
3
+ import { hasInterfaces } from "./InterfaceUtilsPlugin.utils.js";
4
+ import { TransformerPluginExecutionError } from "@gqlbase/shared/errors";
5
+ /**
6
+ * Normalizes interface implementation by other interfaces and objects, makeing sure that all fields defined in an interface are implemented by its implementors, and that interfaces can implement other interfaces:
7
+ *
8
+ * - When an object or interface implements another interface, it must implement all fields defined in the implemented interface.
9
+ * - "Transitively implemented interfaces (interfaces implemented by the interface that is being implemented) must also be defined on an implementing type or interface."
10
+ *
11
+ * @see https://spec.graphql.org/September2025/#sec-Interfaces
12
+ *
13
+ * @example
14
+ * ```graphql
15
+ * # Before
16
+ * interface Node {
17
+ * id: ID!
18
+ * }
19
+ *
20
+ * interface Timestamped {
21
+ * createdAt: DateTime!
22
+ * updatedAt: DateTime!
23
+ * }
24
+ *
25
+ * interface User implements Node & Timestamped {
26
+ * id: ID!
27
+ * name: String!
28
+ * }
29
+ *
30
+ * # After
31
+ * interface Node {
32
+ * id: ID!
33
+ * }
34
+ *
35
+ * interface Timestamped {
36
+ * createdAt: DateTime!
37
+ * updatedAt: DateTime!
38
+ * }
39
+ *
40
+ * interface User implements Node & Timestamped {
41
+ * id: ID!
42
+ * name: String!
43
+ * createdAt: DateTime! # added by the plugin
44
+ * updatedAt: DateTime! # added by the plugin
45
+ * }
46
+ * ```
47
+ */
48
+ export class InterfaceUtilsPlugin extends TransformerPluginBase {
49
+ constructor(context) {
50
+ super("InterfaceUtilsPlugin", context);
51
+ }
52
+ _getValidInterface(name) {
53
+ const iface = this.context.document.getNodeOrThrow(name);
54
+ if (!(iface instanceof InterfaceNode)) {
55
+ throw new TransformerPluginExecutionError(this.name, `Node ${name} is not an interface but is implemented by ${name}`);
56
+ }
57
+ return iface;
58
+ }
59
+ _normalizeTransitiveInterfaces(node) {
60
+ for (const ifaceName of node.getInterfaces()) {
61
+ const iface = this._getValidInterface(ifaceName.getTypeName());
62
+ if (!hasInterfaces(iface)) {
63
+ continue;
64
+ }
65
+ for (const transitiveIfaceName of iface.getInterfaces()) {
66
+ if (!node.hasInterface(transitiveIfaceName.getTypeName())) {
67
+ node.addInterface(transitiveIfaceName);
68
+ }
69
+ }
70
+ }
71
+ }
72
+ _normalizeInterfaceFields(node) {
73
+ for (const ifaceName of node.getInterfaces()) {
74
+ const iface = this._getValidInterface(ifaceName.getTypeName());
75
+ for (const field of iface.getFields()) {
76
+ if (node.hasField(field.name)) {
77
+ const nodeField = node.getField(field.name);
78
+ if (nodeField?.type.getTypeName() !== field.type.getTypeName()) {
79
+ this.context.logger.warn(`Field ${field.name} on ${node.name} has type ${nodeField?.type.getTypeName()} but should be ${field.type.getTypeName()} as defined in interface ${iface.name}`);
80
+ nodeField?.setType(NamedTypeNode.create(field.type.getTypeName()));
81
+ }
82
+ continue;
83
+ }
84
+ node.addField(FieldNode.fromDefinition(field.serialize()));
85
+ }
86
+ }
87
+ }
88
+ match(definition) {
89
+ return definition instanceof InterfaceNode || definition instanceof ObjectNode;
90
+ }
91
+ normalize(node) {
92
+ if (!hasInterfaces(node)) {
93
+ return;
94
+ }
95
+ this._normalizeTransitiveInterfaces(node);
96
+ this._normalizeInterfaceFields(node);
97
+ }
98
+ }
99
+ export const interfaceUtilsPlugin = createPluginFactory(InterfaceUtilsPlugin);
100
+ //# sourceMappingURL=InterfaceUtilsPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InterfaceUtilsPlugin.js","sourceRoot":"","sources":["../../../src/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { InterfaceNode, ObjectNode } from "@gqlbase/core/definition";
2
+ export declare const hasInterfaces: (node: ObjectNode | InterfaceNode) => boolean;
3
+ //# sourceMappingURL=InterfaceUtilsPlugin.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InterfaceUtilsPlugin.utils.d.ts","sourceRoot":"","sources":["../../../src/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAErE,eAAO,MAAM,aAAa,GAAI,MAAM,UAAU,GAAG,aAAa,KAAG,OAEhE,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const hasInterfaces = (node) => {
2
+ return Array.isArray(node.interfaces) && node.interfaces.length > 0;
3
+ };
4
+ //# sourceMappingURL=InterfaceUtilsPlugin.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InterfaceUtilsPlugin.utils.js","sourceRoot":"","sources":["../../../src/base/InterfaceUtilsPlugin/InterfaceUtilsPlugin.utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAgC,EAAW,EAAE;IACzE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACtE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { InterfaceUtilsPlugin, interfaceUtilsPlugin } from "./InterfaceUtilsPlugin.js";
2
+ export { hasInterfaces } from "./InterfaceUtilsPlugin.utils.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/InterfaceUtilsPlugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { InterfaceUtilsPlugin, interfaceUtilsPlugin } from "./InterfaceUtilsPlugin.js";
2
+ export { hasInterfaces } from "./InterfaceUtilsPlugin.utils.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/base/InterfaceUtilsPlugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC"}
@@ -1,11 +1,13 @@
1
1
  import { ITransformerContext, TransformerPluginBase } from "@gqlbase/core";
2
2
  import { DefinitionNode } from "@gqlbase/core/definition";
3
+ import { ModelTypesGeneratorPluginOptions } from "./ModelTypesGeneratorPlugin.utils.js";
3
4
  /**
4
5
  * This plugin generates TypeScript types for all objects defined in the schema.
5
6
  */
6
7
  export declare class ModelTypesGeneratorPlugin extends TransformerPluginBase {
7
8
  private nodes;
8
- constructor(context: ITransformerContext);
9
+ private options;
10
+ constructor(context: ITransformerContext, options?: ModelTypesGeneratorPluginOptions);
9
11
  private _getContent;
10
12
  private _createTypeNameIdentifier;
11
13
  private _createValueTypeReference;
@@ -17,7 +19,11 @@ export declare class ModelTypesGeneratorPlugin extends TransformerPluginBase {
17
19
  before(): void;
18
20
  match(definition: DefinitionNode): boolean;
19
21
  generate(definition: DefinitionNode): void;
20
- output(): {};
22
+ output(): {
23
+ modelTypes: string;
24
+ } | {
25
+ modelTypes?: undefined;
26
+ };
21
27
  }
22
- export declare const modelTypesGeneratorPlugin: (options?: unknown) => import("@gqlbase/core").IPluginFactory;
28
+ export declare const modelTypesGeneratorPlugin: (options?: ModelTypesGeneratorPluginOptions | undefined) => import("@gqlbase/core").IPluginFactory;
23
29
  //# sourceMappingURL=ModelTypesGeneratorPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelTypesGeneratorPlugin.d.ts","sourceRoot":"","sources":["../../../src/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGhG,OAAO,EACL,cAAc,EAQf,MAAM,0BAA0B,CAAC;AAWlC;;GAEG;AAEH,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,OAAO,CAAC,KAAK,CAAiB;gBAElB,OAAO,EAAE,mBAAmB;IAIxC,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,gBAAgB;IAsBjB,MAAM;IAkBN,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAQ1C,QAAQ,CAAC,UAAU,EAAE,cAAc;IAkBnC,MAAM;CAMd;AAED,eAAO,MAAM,yBAAyB,+DAAiD,CAAC"}
1
+ {"version":3,"file":"ModelTypesGeneratorPlugin.d.ts","sourceRoot":"","sources":["../../../src/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGhG,OAAO,EACL,cAAc,EASf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAIL,gCAAgC,EACjC,MAAM,sCAAsC,CAAC;AAO9C;;GAEG;AAEH,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAA6C;gBAEhD,OAAO,EAAE,mBAAmB,EAAE,OAAO,GAAE,gCAAqC;IAMxF,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,gBAAgB;IAsBjB,MAAM;IAkBN,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAQ1C,QAAQ,CAAC,UAAU,EAAE,cAAc;IAkBnC,MAAM;;;;;CASd;AAED,eAAO,MAAM,yBAAyB,oGAAiD,CAAC"}
@@ -3,21 +3,24 @@ import { createPluginFactory, TransformerPluginBase } from "@gqlbase/core";
3
3
  import { writeOutputFile } from "@gqlbase/shared/files";
4
4
  import { createFileHeaders } from "@gqlbase/shared/codegen";
5
5
  import { EnumNode, InterfaceNode, ListTypeNode, NonNullTypeNode, ObjectNode, UnionNode, } from "@gqlbase/core/definition";
6
- import { getBuildinScalarTypeKeyword, isNonNullableField, isOperationNode, } from "./ModelTypesGeneratorPlugin.utils.js";
6
+ import { getBuildinScalarTypeKeyword, isOperationNode, mergeOptions, } from "./ModelTypesGeneratorPlugin.utils.js";
7
7
  import { isEnum, isObjectLike, isScalar } from "../ModelPlugin/ModelPlugin.utils.js";
8
8
  import { isRelationField } from "../RelationsPlugin/RelationsPlugin.utils.js";
9
9
  import { isBuildInScalar } from "@gqlbase/shared/definition";
10
10
  import { getTypeHint, isInternal } from "@gqlbase/core/plugins";
11
+ import { isSemanticNullable } from "../RfcFeaturesPlugin/RfcFeaturesPlugin.utils.js";
11
12
  /**
12
13
  * This plugin generates TypeScript types for all objects defined in the schema.
13
14
  */
14
15
  export class ModelTypesGeneratorPlugin extends TransformerPluginBase {
15
16
  nodes = [];
16
- constructor(context) {
17
+ options;
18
+ constructor(context, options = {}) {
17
19
  super("ModelTypesGeneratorPlugin", context);
20
+ this.options = mergeOptions(options);
18
21
  }
19
22
  _getContent() {
20
- const file = ts.createSourceFile("models.typegen.ts",
23
+ const file = ts.createSourceFile(this.options.fileName,
21
24
  /*sourceText*/ "", ts.ScriptTarget.Latest,
22
25
  /*setParentNodes*/ false, ts.ScriptKind.TS);
23
26
  const printer = ts.createPrinter({
@@ -53,15 +56,21 @@ export class ModelTypesGeneratorPlugin extends TransformerPluginBase {
53
56
  }
54
57
  return ts.factory.createIdentifier(typeName);
55
58
  }
56
- _createValueTypeReference(fieldType) {
59
+ _createValueTypeReference(field, fieldType, level = 0) {
57
60
  if (fieldType instanceof NonNullTypeNode) {
58
- return this._createValueTypeReference(fieldType.type);
61
+ return this._createValueTypeReference(field, fieldType.type, level);
59
62
  }
60
63
  if (fieldType instanceof ListTypeNode) {
61
- const elementType = this._createValueTypeReference(fieldType.type);
62
- return ts.factory.createArrayTypeNode(elementType);
64
+ const elementType = this._createValueTypeReference(field, fieldType.type, level + 1);
65
+ const arrayType = ts.factory.createArrayTypeNode(elementType);
66
+ return isSemanticNullable(field, level)
67
+ ? ts.factory.createTypeReferenceNode("Maybe", [arrayType])
68
+ : arrayType;
63
69
  }
64
- return ts.factory.createTypeReferenceNode(this._createTypeNameIdentifier(fieldType.name));
70
+ const baseType = ts.factory.createTypeReferenceNode(this._createTypeNameIdentifier(fieldType.name));
71
+ return isSemanticNullable(field, level)
72
+ ? ts.factory.createTypeReferenceNode("Maybe", [baseType])
73
+ : baseType;
65
74
  }
66
75
  _createFieldMembers(definition) {
67
76
  const members = [];
@@ -69,13 +78,12 @@ export class ModelTypesGeneratorPlugin extends TransformerPluginBase {
69
78
  if (isRelationField(field)) {
70
79
  continue;
71
80
  }
72
- const questionToken = isNonNullableField(field)
73
- ? undefined
74
- : ts.factory.createToken(ts.SyntaxKind.QuestionToken);
75
- const typeNode = isNonNullableField(field)
76
- ? this._createValueTypeReference(field.type)
77
- : ts.factory.createTypeReferenceNode("Maybe", [this._createValueTypeReference(field.type)]);
81
+ const questionToken = isSemanticNullable(field)
82
+ ? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
83
+ : undefined;
84
+ const typeNode = this._createValueTypeReference(field, field.type);
78
85
  const propertySignature = ts.factory.createPropertySignature([ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyword)], ts.factory.createIdentifier(field.name), questionToken, typeNode);
86
+ // TODO: consider adding JSDoc comments with field descriptions and deprecation notices
79
87
  // ts.addSyntheticLeadingComment(
80
88
  // propertySignature,
81
89
  // ts.SyntaxKind.MultiLineCommentTrivia,
@@ -153,8 +161,10 @@ export class ModelTypesGeneratorPlugin extends TransformerPluginBase {
153
161
  }
154
162
  output() {
155
163
  const content = this._getContent();
156
- writeOutputFile(this.context.outputDirectory, "models.typegen.ts", content);
157
- return {};
164
+ if (this.options.emitFile) {
165
+ writeOutputFile(this.context.outputDirectory, this.options.fileName, content);
166
+ }
167
+ return this.options.emitOutput ? { modelTypes: content } : {};
158
168
  }
159
169
  }
160
170
  export const modelTypesGeneratorPlugin = createPluginFactory(ModelTypesGeneratorPlugin);
@@ -1 +1 @@
1
- {"version":3,"file":"ModelTypesGeneratorPlugin.js","sourceRoot":"","sources":["../../../src/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelTypesGeneratorPlugin.js","sourceRoot":"","sources":["../../../src/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
- import { DefinitionNode, FieldNode, InputValueNode } from "@gqlbase/core/definition";
1
+ import { DefinitionNode } from "@gqlbase/core/definition";
2
+ export interface ModelTypesGeneratorPluginOptions {
3
+ /** If true, the plugin will not emit any files.
4
+ * @default true
5
+ */
6
+ emitFile?: boolean;
7
+ /**
8
+ * The output file name for the generated types.
9
+ * @default "models.typegen.ts"
10
+ */
11
+ fileName?: string;
12
+ /**
13
+ * Whether to include the generated types in the output object.
14
+ * @default false
15
+ */
16
+ emitOutput?: boolean;
17
+ }
18
+ export declare const DEFAULT_OPTIONS: Required<ModelTypesGeneratorPluginOptions>;
19
+ export declare const mergeOptions: (options?: ModelTypesGeneratorPluginOptions) => Required<ModelTypesGeneratorPluginOptions>;
2
20
  export declare const isOperationNode: (node: DefinitionNode) => boolean;
3
- /**
4
- *
5
- * @param field Field node to check for non-nullability
6
- * @returns True if the field is non-nullable, false otherwise
7
- *
8
- * TODO: check for semantic nullability based on directives.
9
- */
10
- export declare const isNonNullableField: (field: FieldNode | InputValueNode) => boolean;
11
21
  export declare const getBuildinScalarTypeKeyword: (typeName: string) => string;
12
22
  //# sourceMappingURL=ModelTypesGeneratorPlugin.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelTypesGeneratorPlugin.utils.d.ts","sourceRoot":"","sources":["../../../src/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,eAAe,GAAI,MAAM,cAAc,YAEnD,CAAC;AAEF;;;;;;GAMG;AAEH,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,GAAG,cAAc,YAEnE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,MAa9D,CAAC"}
1
+ {"version":3,"file":"ModelTypesGeneratorPlugin.utils.d.ts","sourceRoot":"","sources":["../../../src/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,gCAAgC,CAI7D,CAAC;AAEX,eAAO,MAAM,YAAY,GACvB,UAAU,gCAAgC,KACzC,QAAQ,CAAC,gCAAgC,CAK3C,CAAC;AAIF,eAAO,MAAM,eAAe,GAAI,MAAM,cAAc,YAEnD,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,MAa9D,CAAC"}
@@ -1,18 +1,18 @@
1
- import { NonNullTypeNode, } from "@gqlbase/core/definition";
1
+ export const DEFAULT_OPTIONS = {
2
+ emitFile: true,
3
+ fileName: "models.typegen.ts",
4
+ emitOutput: false,
5
+ };
6
+ export const mergeOptions = (options) => {
7
+ return {
8
+ ...DEFAULT_OPTIONS,
9
+ ...options,
10
+ };
11
+ };
2
12
  const OPERATION_NODE_NAME = ["Query", "Mutation", "Subscription"];
3
13
  export const isOperationNode = (node) => {
4
14
  return OPERATION_NODE_NAME.includes(node.name);
5
15
  };
6
- /**
7
- *
8
- * @param field Field node to check for non-nullability
9
- * @returns True if the field is non-nullable, false otherwise
10
- *
11
- * TODO: check for semantic nullability based on directives.
12
- */
13
- export const isNonNullableField = (field) => {
14
- return field.type instanceof NonNullTypeNode;
15
- };
16
16
  export const getBuildinScalarTypeKeyword = (typeName) => {
17
17
  switch (typeName) {
18
18
  case "ID":
@@ -1 +1 @@
1
- {"version":3,"file":"ModelTypesGeneratorPlugin.utils.js","sourceRoot":"","sources":["../../../src/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAU,CAAC;AAE3E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAE,EAAE;IACtD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAA4C,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAiC,EAAE,EAAE;IACtE,OAAO,KAAK,CAAC,IAAI,YAAY,eAAe,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAAgB,EAAU,EAAE;IACtE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK,CAAC;QACX,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"ModelTypesGeneratorPlugin.utils.js","sourceRoot":"","sources":["../../../src/base/ModelTypesGeneratorPlugin/ModelTypesGeneratorPlugin.utils.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,eAAe,GAA+C;IACzE,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,mBAAmB;IAC7B,UAAU,EAAE,KAAK;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAA0C,EACE,EAAE;IAC9C,OAAO;QACL,GAAG,eAAe;QAClB,GAAG,OAAO;KACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAU,CAAC;AAE3E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAE,EAAE;IACtD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAA4C,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAAgB,EAAU,EAAE;IACtE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK,CAAC;QACX,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC"}
@@ -2,12 +2,20 @@ import { ITransformerContext, ITransformerPlugin } from "@gqlbase/core";
2
2
  import { DefinitionNode, InterfaceNode, ObjectNode } from "@gqlbase/core/definition";
3
3
  import { RelationPluginOptions } from "./RelationsPlugin.utils.js";
4
4
  /**
5
- * This plugin is responsible for adding the `@hasOne` and `@hasMany` directives to the schema, which can be used to define relationships between types. It also adds the necessary fields and arguments to the schema to support these directives.
5
+ * This plugin is responsible for adding the `@hasOne` and `@hasMany` directives to the schema, which can be used to define relationships between types.
6
6
  *
7
- * @example
7
+ * It also adds the necessary fields and arguments to the schema to support these directives.
8
8
  *
9
+ * @definition
9
10
  * ```graphql
11
+ * directive `@hasOne(key: String)` on FIELD_DEFINITION
12
+ *
13
+ * directive `@hasMany(key: String)` on FIELD_DEFINITION
14
+ *
15
+ * ```
10
16
  *
17
+ * @example
18
+ * ```graphql
11
19
  * # Before
12
20
  * type User {
13
21
  * id: ID!
@@ -25,24 +33,21 @@ import { RelationPluginOptions } from "./RelationsPlugin.utils.js";
25
33
  * type User {
26
34
  * id: ID!
27
35
  * name: String!
28
- * posts: [Post]
36
+ * posts: [Post] # formatted by the plugin
29
37
  * }
30
38
  *
31
39
  * type Post {
32
40
  * id: ID!
33
41
  * title: String!
34
- * authorId: ID
42
+ * authorId: ID # added by the plugin
35
43
  * author: User
36
44
  * }
37
45
  * ```
38
- *
39
- * In the above example, the `User` type has a `posts` field that is decorated with the `@hasMany` directive, indicating that a user can have many posts. The plugin will automatically add the necessary fields and arguments to support this relationship in the schema.
40
- *
41
46
  */
42
47
  export declare class RelationsPlugin implements ITransformerPlugin {
43
48
  readonly name = "RelationsPlugin";
44
49
  readonly context: ITransformerContext;
45
- private readonly _useConnections;
50
+ private readonly options;
46
51
  constructor(context: ITransformerContext, options?: RelationPluginOptions);
47
52
  private _getRelationshipTarget;
48
53
  private _getFieldRelation;
@@ -1 +1 @@
1
- {"version":3,"file":"RelationsPlugin.d.ts","sourceRoot":"","sources":["../../../src/base/RelationsPlugin/RelationsPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EACL,cAAc,EAId,aAAa,EAGb,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAQL,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAGpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;gBAGxC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,qBAAiD;IAM5D,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,sBAAsB;IAiBvB,IAAI;IAkBJ,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAW1C,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAiC9D,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAoB9C,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAY5D,KAAK,IAAI,IAAI;CAKd;AAED,eAAO,MAAM,cAAc,yFAAuC,CAAC"}
1
+ {"version":3,"file":"RelationsPlugin.d.ts","sourceRoot":"","sources":["../../../src/base/RelationsPlugin/RelationsPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EACL,cAAc,EAId,aAAa,EAGb,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EASL,qBAAqB,EAEtB,MAAM,4BAA4B,CAAC;AAGpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;gBAE9C,OAAO,EAAE,mBAAmB,EAAE,OAAO,GAAE,qBAA0B;IAO7E,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,sBAAsB;IAiBvB,IAAI;IAkBJ,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAW1C,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAiC9D,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAoB9C,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAY5D,KAAK,IAAI,IAAI;CAKd;AAED,eAAO,MAAM,cAAc,yFAAuC,CAAC"}
@@ -1,16 +1,24 @@
1
1
  import { createPluginFactory } from "@gqlbase/core";
2
2
  import { DirectiveDefinitionNode, FieldNode, InputValueNode, InterfaceNode, ListTypeNode, NamedTypeNode, ObjectNode, UnionNode, } from "@gqlbase/core/definition";
3
3
  import { TransformerPluginExecutionError } from "@gqlbase/shared/errors";
4
- import { camelCase, pascalCase } from "@gqlbase/shared/format";
5
- import { isConnectionNode, isManyRelationship, isOneRelationship, isRelationField, isValidRelationTarget, RelationDirective, } from "./RelationsPlugin.utils.js";
4
+ import { pascalCase } from "@gqlbase/shared/format";
5
+ import { isPaginationConnection, isManyRelationship, isOneRelationship, isRelationField, isValidRelationTarget, parseFieldRelation, RelationDirective, } from "./RelationsPlugin.utils.js";
6
6
  import { isListTypeNode } from "../ModelPlugin/ModelPlugin.utils.js";
7
7
  /**
8
- * This plugin is responsible for adding the `@hasOne` and `@hasMany` directives to the schema, which can be used to define relationships between types. It also adds the necessary fields and arguments to the schema to support these directives.
8
+ * This plugin is responsible for adding the `@hasOne` and `@hasMany` directives to the schema, which can be used to define relationships between types.
9
9
  *
10
- * @example
10
+ * It also adds the necessary fields and arguments to the schema to support these directives.
11
11
  *
12
+ * @definition
12
13
  * ```graphql
14
+ * directive `@hasOne(key: String)` on FIELD_DEFINITION
15
+ *
16
+ * directive `@hasMany(key: String)` on FIELD_DEFINITION
17
+ *
18
+ * ```
13
19
  *
20
+ * @example
21
+ * ```graphql
14
22
  * # Before
15
23
  * type User {
16
24
  * id: ID!
@@ -28,64 +36,40 @@ import { isListTypeNode } from "../ModelPlugin/ModelPlugin.utils.js";
28
36
  * type User {
29
37
  * id: ID!
30
38
  * name: String!
31
- * posts: [Post]
39
+ * posts: [Post] # formatted by the plugin
32
40
  * }
33
41
  *
34
42
  * type Post {
35
43
  * id: ID!
36
44
  * title: String!
37
- * authorId: ID
45
+ * authorId: ID # added by the plugin
38
46
  * author: User
39
47
  * }
40
48
  * ```
41
- *
42
- * In the above example, the `User` type has a `posts` field that is decorated with the `@hasMany` directive, indicating that a user can have many posts. The plugin will automatically add the necessary fields and arguments to support this relationship in the schema.
43
- *
44
49
  */
45
50
  export class RelationsPlugin {
46
51
  name = "RelationsPlugin";
47
52
  context;
48
- _useConnections;
49
- constructor(context, options = { useConnections: false }) {
53
+ options;
54
+ constructor(context, options = {}) {
50
55
  this.context = context;
51
- this._useConnections = options.useConnections ?? false;
56
+ this.options = {
57
+ usePaginationTypes: options.usePaginationTypes ?? false,
58
+ };
52
59
  }
53
- _getRelationshipTarget(field) {
54
- const fieldType = this.context.document.getNode(field.type.getTypeName());
55
- if (isRelationField(field)) {
56
- return fieldType;
60
+ _getRelationshipTarget(object, field) {
61
+ const target = this.context.document.getNode(field.type.getTypeName());
62
+ if (!target || !isValidRelationTarget(target)) {
63
+ throw new TransformerPluginExecutionError(this.name, `Type ${target?.name ?? "unknwon type"} is not a valid relationship target for ${object.name}.${field.name}`);
57
64
  }
58
- return undefined;
65
+ return target;
59
66
  }
60
67
  _getFieldRelation(object, field) {
61
- const target = this._getRelationshipTarget(field);
62
- if (!target)
68
+ if (!isRelationField(field)) {
63
69
  return null;
64
- if (!isValidRelationTarget(target)) {
65
- throw new TransformerPluginExecutionError(this.name, `Type ${target.name} is not a valid relationship target for ${object.name}.${field.name}`);
66
- }
67
- let directive = field.getDirective(RelationDirective.HAS_ONE);
68
- if (directive) {
69
- if (field.hasDirective(RelationDirective.HAS_MANY)) {
70
- throw new TransformerPluginExecutionError(this.name, `Multiple relationship directives detected for ${object.name}.${field.name}`);
71
- }
72
- const args = directive.getArgumentsJSON();
73
- return {
74
- type: "oneToOne",
75
- target: target,
76
- key: args.key ?? camelCase(field.name, "id"),
77
- };
78
- }
79
- directive = field.getDirective(RelationDirective.HAS_MANY);
80
- if (directive) {
81
- const args = directive.getArgumentsJSON();
82
- return {
83
- type: "oneToMany",
84
- target: target,
85
- key: args.key ?? camelCase(object.name, "id"),
86
- };
87
70
  }
88
- throw new TransformerPluginExecutionError(this.name, `Could not find connection directive: ${field.name}`);
71
+ const target = this._getRelationshipTarget(object, field);
72
+ return parseFieldRelation(object, field, target);
89
73
  }
90
74
  _setRelationKey(node, key) {
91
75
  if (!node.hasField(key)) {
@@ -102,7 +86,7 @@ export class RelationsPlugin {
102
86
  }
103
87
  _createFieldConnection(field, target) {
104
88
  this._setConnectionArguments(field);
105
- if (isConnectionNode(target)) {
89
+ if (isPaginationConnection(target)) {
106
90
  return target;
107
91
  }
108
92
  const connectionTypeName = pascalCase(target.name, "Connection");
@@ -119,7 +103,7 @@ export class RelationsPlugin {
119
103
  if (definition instanceof InterfaceNode || definition instanceof ObjectNode) {
120
104
  if (definition.name === "Mutation")
121
105
  return false;
122
- if (isConnectionNode(definition))
106
+ if (isPaginationConnection(definition))
123
107
  return false;
124
108
  if (!definition.fields?.length)
125
109
  return false;
@@ -158,7 +142,7 @@ export class RelationsPlugin {
158
142
  if (!relation || relation.type === "oneToOne") {
159
143
  continue;
160
144
  }
161
- if (this._useConnections) {
145
+ if (this.options.usePaginationTypes) {
162
146
  const connection = this._createFieldConnection(field, relation.target);
163
147
  field.setType(NamedTypeNode.create(connection.name));
164
148
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"RelationsPlugin.js","sourceRoot":"","sources":["../../../src/base/RelationsPlugin/RelationsPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RelationsPlugin.js","sourceRoot":"","sources":["../../../src/base/RelationsPlugin/RelationsPlugin.ts"],"names":[],"mappings":"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"}