@marlonjd/graphql-relational-transformer-stack-limits 3.1.13-stack-limits.3

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 (113) hide show
  1. package/API.md +97 -0
  2. package/CHANGELOG.md +807 -0
  3. package/README.md +43 -0
  4. package/jest.config.js +12 -0
  5. package/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts +11 -0
  6. package/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts.map +1 -0
  7. package/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js +37 -0
  8. package/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js.map +1 -0
  9. package/lib/belongs-to/belongs-to-directive-ddb-references-transformer.d.ts +11 -0
  10. package/lib/belongs-to/belongs-to-directive-ddb-references-transformer.d.ts.map +1 -0
  11. package/lib/belongs-to/belongs-to-directive-ddb-references-transformer.js +37 -0
  12. package/lib/belongs-to/belongs-to-directive-ddb-references-transformer.js.map +1 -0
  13. package/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts +11 -0
  14. package/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts.map +1 -0
  15. package/lib/belongs-to/belongs-to-directive-sql-transformer.js +32 -0
  16. package/lib/belongs-to/belongs-to-directive-sql-transformer.js.map +1 -0
  17. package/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts +5 -0
  18. package/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts.map +1 -0
  19. package/lib/belongs-to/belongs-to-directive-transformer-factory.js +32 -0
  20. package/lib/belongs-to/belongs-to-directive-transformer-factory.js.map +1 -0
  21. package/lib/data-source-based-directive-transformer.d.ts +11 -0
  22. package/lib/data-source-based-directive-transformer.d.ts.map +1 -0
  23. package/lib/data-source-based-directive-transformer.js +3 -0
  24. package/lib/data-source-based-directive-transformer.js.map +1 -0
  25. package/lib/graphql-belongs-to-transformer.d.ts +13 -0
  26. package/lib/graphql-belongs-to-transformer.d.ts.map +1 -0
  27. package/lib/graphql-belongs-to-transformer.js +139 -0
  28. package/lib/graphql-belongs-to-transformer.js.map +1 -0
  29. package/lib/graphql-has-many-transformer.d.ts +13 -0
  30. package/lib/graphql-has-many-transformer.d.ts.map +1 -0
  31. package/lib/graphql-has-many-transformer.js +120 -0
  32. package/lib/graphql-has-many-transformer.js.map +1 -0
  33. package/lib/graphql-has-one-transformer.d.ts +13 -0
  34. package/lib/graphql-has-one-transformer.d.ts.map +1 -0
  35. package/lib/graphql-has-one-transformer.js +132 -0
  36. package/lib/graphql-has-one-transformer.js.map +1 -0
  37. package/lib/graphql-many-to-many-transformer.d.ts +22 -0
  38. package/lib/graphql-many-to-many-transformer.d.ts.map +1 -0
  39. package/lib/graphql-many-to-many-transformer.js +384 -0
  40. package/lib/graphql-many-to-many-transformer.js.map +1 -0
  41. package/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts +11 -0
  42. package/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts.map +1 -0
  43. package/lib/has-many/has-many-directive-ddb-fields-transformer.js +36 -0
  44. package/lib/has-many/has-many-directive-ddb-fields-transformer.js.map +1 -0
  45. package/lib/has-many/has-many-directive-ddb-references-transformer.d.ts +11 -0
  46. package/lib/has-many/has-many-directive-ddb-references-transformer.d.ts.map +1 -0
  47. package/lib/has-many/has-many-directive-ddb-references-transformer.js +52 -0
  48. package/lib/has-many/has-many-directive-ddb-references-transformer.js.map +1 -0
  49. package/lib/has-many/has-many-directive-sql-transformer.d.ts +11 -0
  50. package/lib/has-many/has-many-directive-sql-transformer.d.ts.map +1 -0
  51. package/lib/has-many/has-many-directive-sql-transformer.js +32 -0
  52. package/lib/has-many/has-many-directive-sql-transformer.js.map +1 -0
  53. package/lib/has-many/has-many-directive-transformer-factory.d.ts +5 -0
  54. package/lib/has-many/has-many-directive-transformer-factory.d.ts.map +1 -0
  55. package/lib/has-many/has-many-directive-transformer-factory.js +32 -0
  56. package/lib/has-many/has-many-directive-transformer-factory.js.map +1 -0
  57. package/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts +11 -0
  58. package/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts.map +1 -0
  59. package/lib/has-one/has-one-directive-ddb-fields-transformer.js +34 -0
  60. package/lib/has-one/has-one-directive-ddb-fields-transformer.js.map +1 -0
  61. package/lib/has-one/has-one-directive-ddb-references-transformer.d.ts +11 -0
  62. package/lib/has-one/has-one-directive-ddb-references-transformer.d.ts.map +1 -0
  63. package/lib/has-one/has-one-directive-ddb-references-transformer.js +52 -0
  64. package/lib/has-one/has-one-directive-ddb-references-transformer.js.map +1 -0
  65. package/lib/has-one/has-one-directive-sql-transformer.d.ts +11 -0
  66. package/lib/has-one/has-one-directive-sql-transformer.d.ts.map +1 -0
  67. package/lib/has-one/has-one-directive-sql-transformer.js +32 -0
  68. package/lib/has-one/has-one-directive-sql-transformer.js.map +1 -0
  69. package/lib/has-one/has-one-directive-transformer-factory.d.ts +5 -0
  70. package/lib/has-one/has-one-directive-transformer-factory.d.ts.map +1 -0
  71. package/lib/has-one/has-one-directive-transformer-factory.js +32 -0
  72. package/lib/has-one/has-one-directive-transformer-factory.js.map +1 -0
  73. package/lib/index.d.ts +6 -0
  74. package/lib/index.d.ts.map +1 -0
  75. package/lib/index.js +16 -0
  76. package/lib/index.js.map +1 -0
  77. package/lib/resolver/ddb-generator.d.ts +14 -0
  78. package/lib/resolver/ddb-generator.d.ts.map +1 -0
  79. package/lib/resolver/ddb-generator.js +188 -0
  80. package/lib/resolver/ddb-generator.js.map +1 -0
  81. package/lib/resolver/ddb-references-generator.d.ts +11 -0
  82. package/lib/resolver/ddb-references-generator.d.ts.map +1 -0
  83. package/lib/resolver/ddb-references-generator.js +216 -0
  84. package/lib/resolver/ddb-references-generator.js.map +1 -0
  85. package/lib/resolver/generator-factory.d.ts +4 -0
  86. package/lib/resolver/generator-factory.d.ts.map +1 -0
  87. package/lib/resolver/generator-factory.js +18 -0
  88. package/lib/resolver/generator-factory.js.map +1 -0
  89. package/lib/resolver/generator.d.ts +8 -0
  90. package/lib/resolver/generator.d.ts.map +1 -0
  91. package/lib/resolver/generator.js +7 -0
  92. package/lib/resolver/generator.js.map +1 -0
  93. package/lib/resolver/rds-generator.d.ts +16 -0
  94. package/lib/resolver/rds-generator.d.ts.map +1 -0
  95. package/lib/resolver/rds-generator.js +148 -0
  96. package/lib/resolver/rds-generator.js.map +1 -0
  97. package/lib/resolvers.d.ts +8 -0
  98. package/lib/resolvers.d.ts.map +1 -0
  99. package/lib/resolvers.js +246 -0
  100. package/lib/resolvers.js.map +1 -0
  101. package/lib/schema.d.ts +15 -0
  102. package/lib/schema.d.ts.map +1 -0
  103. package/lib/schema.js +379 -0
  104. package/lib/schema.js.map +1 -0
  105. package/lib/types.d.ts +79 -0
  106. package/lib/types.d.ts.map +1 -0
  107. package/lib/types.js +3 -0
  108. package/lib/types.js.map +1 -0
  109. package/lib/utils.d.ts +43 -0
  110. package/lib/utils.d.ts.map +1 -0
  111. package/lib/utils.js +465 -0
  112. package/lib/utils.js.map +1 -0
  113. package/package.json +49 -0
package/README.md ADDED
@@ -0,0 +1,43 @@
1
+ # GraphQL Relational Modeling Transformers
2
+
3
+ # Reference Documentation
4
+
5
+ ### @hasOne
6
+
7
+ The `@hasOne` directive allows you to define "has one" relationships between data.
8
+
9
+ #### Definition
10
+
11
+ ```graphql
12
+ directive @hasOne(fields: [String!]) on FIELD_DEFINITION
13
+ ```
14
+
15
+ ### @hasMany
16
+
17
+ The `@hasMany` directive allows you to define "has many" relationships between data.
18
+
19
+ #### Definition
20
+
21
+ ```graphql
22
+ directive @hasMany(indexName: String, fields: [String!], limit: Int = 100) on FIELD_DEFINITION
23
+ ```
24
+
25
+ ### @belongsTo
26
+
27
+ The `@belongsTo` directive allows you to define "belongs to" relationships between data.
28
+
29
+ #### Definition
30
+
31
+ ```graphql
32
+ directive @belongsTo(fields: [String!]) on FIELD_DEFINITION
33
+ ```
34
+
35
+ ### @manyToMany
36
+
37
+ The `@manyToMany` directive allows you to define "many to many" relationships between data.
38
+
39
+ #### Definition
40
+
41
+ ```graphql
42
+ directive @manyToMany(relationName: String!, limit: Int = 100) on FIELD_DEFINITION
43
+ ```
package/jest.config.js ADDED
@@ -0,0 +1,12 @@
1
+ const baseConfig = require('../../jest.config.base.js'); // eslint-disable-line @typescript-eslint/no-var-requires
2
+
3
+ module.exports = {
4
+ ...baseConfig,
5
+ coverageThreshold: {
6
+ global: {
7
+ branches: 76,
8
+ functions: 90,
9
+ lines: 90,
10
+ },
11
+ },
12
+ };
@@ -0,0 +1,11 @@
1
+ import { TransformerContextProvider, TransformerPrepareStepContextProvider, TransformerTransformSchemaStepContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
2
+ import { DataSourceBasedDirectiveTransformer } from '../data-source-based-directive-transformer';
3
+ import { BelongsToDirectiveConfiguration } from '../types';
4
+ export declare class BelongsToDirectiveDDBFieldsTransformer implements DataSourceBasedDirectiveTransformer<BelongsToDirectiveConfiguration> {
5
+ dbType: import("@aws-amplify/graphql-transformer-interfaces").ModelDataSourceStrategyDbType;
6
+ prepare: (context: TransformerPrepareStepContextProvider, config: BelongsToDirectiveConfiguration) => void;
7
+ transformSchema: (context: TransformerTransformSchemaStepContextProvider, config: BelongsToDirectiveConfiguration) => void;
8
+ generateResolvers: (context: TransformerContextProvider, config: BelongsToDirectiveConfiguration) => void;
9
+ validate: (context: TransformerContextProvider, config: BelongsToDirectiveConfiguration) => void;
10
+ }
11
+ //# sourceMappingURL=belongs-to-directive-ddb-fields-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"belongs-to-directive-ddb-fields-transformer.d.ts","sourceRoot":"","sources":["../../src/belongs-to/belongs-to-directive-ddb-fields-transformer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,qCAAqC,EACrC,6CAA6C,EAC9C,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,mCAAmC,EAAE,MAAM,4CAA4C,CAAC;AAEjG,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAS3D,qBAAa,sCAAuC,YAAW,mCAAmC,CAAC,+BAA+B,CAAC;IACjI,MAAM,sFAAe;IAErB,OAAO,YAAa,qCAAqC,UAAU,+BAA+B,KAAG,IAAI,CAYvG;IAEF,eAAe,YAAa,6CAA6C,UAAU,+BAA+B,KAAG,IAAI,CAEvH;IAEF,iBAAiB,YAAa,0BAA0B,UAAU,+BAA+B,KAAG,IAAI,CAGtG;IAEF,QAAQ,YAAa,0BAA0B,UAAU,+BAA+B,KAAG,IAAI,CAG7F;CACH"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BelongsToDirectiveDDBFieldsTransformer = void 0;
4
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
5
+ const generator_factory_1 = require("../resolver/generator-factory");
6
+ const utils_1 = require("../utils");
7
+ class BelongsToDirectiveDDBFieldsTransformer {
8
+ constructor() {
9
+ this.dbType = graphql_transformer_core_1.DDB_DB_TYPE;
10
+ this.prepare = (context, config) => {
11
+ if (config.relationType !== 'hasOne') {
12
+ return;
13
+ }
14
+ const modelName = config.object.name.value;
15
+ (0, utils_1.registerHasOneForeignKeyMappings)({
16
+ transformParameters: context.transformParameters,
17
+ resourceHelper: context.resourceHelper,
18
+ thisTypeName: modelName,
19
+ thisFieldName: config.field.name.value,
20
+ relatedType: config.relatedType,
21
+ });
22
+ };
23
+ this.transformSchema = (context, config) => {
24
+ config.relatedTypeIndex = (0, utils_1.getRelatedTypeIndex)(config, context);
25
+ };
26
+ this.generateResolvers = (context, config) => {
27
+ const generator = (0, generator_factory_1.getGenerator)(this.dbType);
28
+ generator.makeBelongsToGetItemConnectionWithKeyResolver(config, context);
29
+ };
30
+ this.validate = (context, config) => {
31
+ (0, utils_1.ensureFieldsArray)(config);
32
+ config.fieldNodes = (0, utils_1.getFieldsNodes)(config, context);
33
+ };
34
+ }
35
+ }
36
+ exports.BelongsToDirectiveDDBFieldsTransformer = BelongsToDirectiveDDBFieldsTransformer;
37
+ //# sourceMappingURL=belongs-to-directive-ddb-fields-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"belongs-to-directive-ddb-fields-transformer.js","sourceRoot":"","sources":["../../src/belongs-to/belongs-to-directive-ddb-fields-transformer.ts"],"names":[],"mappings":";;;AAAA,oFAAoE;AAOpE,qEAA6D;AAE7D,oCAAoH;AAQpH,MAAa,sCAAsC;IAAnD;QACE,WAAM,GAAG,sCAAW,CAAC;QAErB,YAAO,GAAG,CAAC,OAA8C,EAAE,MAAuC,EAAQ,EAAE;YAC1G,IAAI,MAAM,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACpC,OAAO;aACR;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,IAAA,wCAAgC,EAAC;gBAC/B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,YAAY,EAAE,SAAS;gBACvB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;gBACtC,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,OAAsD,EAAE,MAAuC,EAAQ,EAAE;YAC1H,MAAM,CAAC,gBAAgB,GAAG,IAAA,2BAAmB,EAAC,MAAM,EAAE,OAAqC,CAAC,CAAC;QAC/F,CAAC,CAAC;QAEF,sBAAiB,GAAG,CAAC,OAAmC,EAAE,MAAuC,EAAQ,EAAE;YACzG,MAAM,SAAS,GAAG,IAAA,gCAAY,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,SAAS,CAAC,6CAA6C,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,OAAmC,EAAE,MAAuC,EAAQ,EAAE;YAChG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,UAAU,GAAG,IAAA,sBAAc,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC;IACJ,CAAC;CAAA;AA9BD,wFA8BC"}
@@ -0,0 +1,11 @@
1
+ import { TransformerContextProvider, TransformerPrepareStepContextProvider, TransformerTransformSchemaStepContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
2
+ import { DataSourceBasedDirectiveTransformer } from '../data-source-based-directive-transformer';
3
+ import { BelongsToDirectiveConfiguration } from '../types';
4
+ export declare class BelongsToDirectiveDDBReferencesTransformer implements DataSourceBasedDirectiveTransformer<BelongsToDirectiveConfiguration> {
5
+ dbType: import("@aws-amplify/graphql-transformer-interfaces").ModelDataSourceStrategyDbType;
6
+ prepare: (context: TransformerPrepareStepContextProvider, config: BelongsToDirectiveConfiguration) => void;
7
+ transformSchema: (context: TransformerTransformSchemaStepContextProvider, config: BelongsToDirectiveConfiguration) => void;
8
+ generateResolvers: (context: TransformerContextProvider, config: BelongsToDirectiveConfiguration) => void;
9
+ validate: (context: TransformerContextProvider, config: BelongsToDirectiveConfiguration) => void;
10
+ }
11
+ //# sourceMappingURL=belongs-to-directive-ddb-references-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"belongs-to-directive-ddb-references-transformer.d.ts","sourceRoot":"","sources":["../../src/belongs-to/belongs-to-directive-ddb-references-transformer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,qCAAqC,EACrC,6CAA6C,EAC9C,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,mCAAmC,EAAE,MAAM,4CAA4C,CAAC;AAGjG,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAgB3D,qBAAa,0CAA2C,YAAW,mCAAmC,CAAC,+BAA+B,CAAC;IACrI,MAAM,sFAAe;IAErB,OAAO,YAAa,qCAAqC,UAAU,+BAA+B,KAAG,IAAI,CAUvG;IAEF,eAAe,YAAa,6CAA6C,UAAU,+BAA+B,KAAG,IAAI,CAAO;IAEhI,iBAAiB,YAAa,0BAA0B,UAAU,+BAA+B,KAAG,IAAI,CAEtG;IAUF,QAAQ,YAAa,0BAA0B,UAAU,+BAA+B,KAAG,IAAI,CAM7F;CACH"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BelongsToDirectiveDDBReferencesTransformer = void 0;
4
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
5
+ const ddb_references_generator_1 = require("../resolver/ddb-references-generator");
6
+ const resolvers_1 = require("../resolvers");
7
+ const utils_1 = require("../utils");
8
+ class BelongsToDirectiveDDBReferencesTransformer {
9
+ constructor() {
10
+ this.dbType = graphql_transformer_core_1.DDB_DB_TYPE;
11
+ this.prepare = (context, config) => {
12
+ var _a, _b;
13
+ const modelName = config.object.name.value;
14
+ (0, resolvers_1.setFieldMappingResolverReference)(context, (_b = (_a = config.relatedType) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.value, modelName, config.field.name.value);
15
+ (0, utils_1.registerHasOneForeignKeyMappings)({
16
+ transformParameters: context.transformParameters,
17
+ resourceHelper: context.resourceHelper,
18
+ thisTypeName: modelName,
19
+ thisFieldName: config.field.name.value,
20
+ relatedType: config.relatedType,
21
+ });
22
+ };
23
+ this.transformSchema = (context, config) => { };
24
+ this.generateResolvers = (context, config) => {
25
+ new ddb_references_generator_1.DDBRelationalReferencesResolverGenerator().makeBelongsToGetItemConnectionWithKeyResolver(config, context);
26
+ };
27
+ this.validate = (context, config) => {
28
+ (0, utils_1.ensureReferencesArray)(config);
29
+ (0, utils_1.validateChildReferencesFields)(config, context);
30
+ (0, utils_1.validateReferencesRelationalFieldNullability)(config);
31
+ config.referenceNodes = (0, utils_1.getBelongsToReferencesNodes)(config, context);
32
+ (0, utils_1.validateReferencesBidirectionality)(config);
33
+ };
34
+ }
35
+ }
36
+ exports.BelongsToDirectiveDDBReferencesTransformer = BelongsToDirectiveDDBReferencesTransformer;
37
+ //# sourceMappingURL=belongs-to-directive-ddb-references-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"belongs-to-directive-ddb-references-transformer.js","sourceRoot":"","sources":["../../src/belongs-to/belongs-to-directive-ddb-references-transformer.ts"],"names":[],"mappings":";;;AAAA,oFAAoE;AAOpE,mFAAgG;AAChG,4CAAgE;AAEhE,oCAOkB;AAQlB,MAAa,0CAA0C;IAAvD;QACE,WAAM,GAAG,sCAAW,CAAC;QAErB,YAAO,GAAG,CAAC,OAA8C,EAAE,MAAuC,EAAQ,EAAE;;YAC1G,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,IAAA,4CAAgC,EAAC,OAAO,EAAE,MAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,IAAI,0CAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/G,IAAA,wCAAgC,EAAC;gBAC/B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,YAAY,EAAE,SAAS;gBACvB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;gBACtC,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,OAAsD,EAAE,MAAuC,EAAQ,EAAE,GAAE,CAAC,CAAC;QAEhI,sBAAiB,GAAG,CAAC,OAAmC,EAAE,MAAuC,EAAQ,EAAE;YACzG,IAAI,mEAAwC,EAAE,CAAC,6CAA6C,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChH,CAAC,CAAC;QAUF,aAAQ,GAAG,CAAC,OAAmC,EAAE,MAAuC,EAAQ,EAAE;YAChG,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;YAC9B,IAAA,qCAA6B,EAAC,MAAM,EAAE,OAAqC,CAAC,CAAC;YAC7E,IAAA,oDAA4C,EAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,cAAc,GAAG,IAAA,mCAA2B,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrE,IAAA,0CAAkC,EAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;CAAA;AApCD,gGAoCC"}
@@ -0,0 +1,11 @@
1
+ import { TransformerContextProvider, TransformerPrepareStepContextProvider, TransformerTransformSchemaStepContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
2
+ import { DataSourceBasedDirectiveTransformer } from '../data-source-based-directive-transformer';
3
+ import { BelongsToDirectiveConfiguration } from '../types';
4
+ export declare class BelongsToDirectiveSQLTransformer implements DataSourceBasedDirectiveTransformer<BelongsToDirectiveConfiguration> {
5
+ dbType: import("@aws-amplify/graphql-transformer-interfaces").ModelDataSourceStrategySqlDbType;
6
+ prepare: (context: TransformerPrepareStepContextProvider, config: BelongsToDirectiveConfiguration) => void;
7
+ transformSchema: (context: TransformerTransformSchemaStepContextProvider, config: BelongsToDirectiveConfiguration) => void;
8
+ generateResolvers: (context: TransformerContextProvider, config: BelongsToDirectiveConfiguration) => void;
9
+ validate: (context: TransformerContextProvider, config: BelongsToDirectiveConfiguration) => void;
10
+ }
11
+ //# sourceMappingURL=belongs-to-directive-sql-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"belongs-to-directive-sql-transformer.d.ts","sourceRoot":"","sources":["../../src/belongs-to/belongs-to-directive-sql-transformer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,qCAAqC,EACrC,6CAA6C,EAC9C,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,mCAAmC,EAAE,MAAM,4CAA4C,CAAC;AAGjG,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAa3D,qBAAa,gCAAiC,YAAW,mCAAmC,CAAC,+BAA+B,CAAC;IAC3H,MAAM,yFAAqC;IAE3C,OAAO,YAAa,qCAAqC,UAAU,+BAA+B,KAAG,IAAI,CAGvG;IAEF,eAAe,YAAa,6CAA6C,UAAU,+BAA+B,KAAG,IAAI,CAEvH;IAEF,iBAAiB,YAAa,0BAA0B,UAAU,+BAA+B,KAAG,IAAI,CAGtG;IAEF,QAAQ,YAAa,0BAA0B,UAAU,+BAA+B,KAAG,IAAI,CAK7F;CACH"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BelongsToDirectiveSQLTransformer = void 0;
4
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
5
+ const generator_factory_1 = require("../resolver/generator-factory");
6
+ const resolvers_1 = require("../resolvers");
7
+ const utils_1 = require("../utils");
8
+ class BelongsToDirectiveSQLTransformer {
9
+ constructor() {
10
+ this.dbType = graphql_transformer_core_1.POSTGRES_DB_TYPE || graphql_transformer_core_1.MYSQL_DB_TYPE;
11
+ this.prepare = (context, config) => {
12
+ var _a, _b;
13
+ const modelName = config.object.name.value;
14
+ (0, resolvers_1.setFieldMappingResolverReference)(context, (_b = (_a = config.relatedType) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.value, modelName, config.field.name.value);
15
+ };
16
+ this.transformSchema = (context, config) => {
17
+ (0, utils_1.validateChildReferencesFields)(config, context);
18
+ };
19
+ this.generateResolvers = (context, config) => {
20
+ const generator = (0, generator_factory_1.getGenerator)(this.dbType);
21
+ generator.makeBelongsToGetItemConnectionWithKeyResolver(config, context);
22
+ };
23
+ this.validate = (context, config) => {
24
+ (0, utils_1.ensureReferencesArray)(config);
25
+ config.referenceNodes = (0, utils_1.getBelongsToReferencesNodes)(config, context);
26
+ (0, utils_1.validateReferencesRelationalFieldNullability)(config);
27
+ (0, utils_1.validateReferencesBidirectionality)(config);
28
+ };
29
+ }
30
+ }
31
+ exports.BelongsToDirectiveSQLTransformer = BelongsToDirectiveSQLTransformer;
32
+ //# sourceMappingURL=belongs-to-directive-sql-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"belongs-to-directive-sql-transformer.js","sourceRoot":"","sources":["../../src/belongs-to/belongs-to-directive-sql-transformer.ts"],"names":[],"mappings":";;;AAAA,oFAAwF;AAOxF,qEAA6D;AAC7D,4CAAgE;AAEhE,oCAMkB;AAMlB,MAAa,gCAAgC;IAA7C;QACE,WAAM,GAAG,2CAAgB,IAAI,wCAAa,CAAC;QAE3C,YAAO,GAAG,CAAC,OAA8C,EAAE,MAAuC,EAAQ,EAAE;;YAC1G,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,IAAA,4CAAgC,EAAC,OAAO,EAAE,MAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,IAAI,0CAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjH,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,OAAsD,EAAE,MAAuC,EAAQ,EAAE;YAC1H,IAAA,qCAA6B,EAAC,MAAM,EAAE,OAAqC,CAAC,CAAC;QAC/E,CAAC,CAAC;QAEF,sBAAiB,GAAG,CAAC,OAAmC,EAAE,MAAuC,EAAQ,EAAE;YACzG,MAAM,SAAS,GAAG,IAAA,gCAAY,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,SAAS,CAAC,6CAA6C,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,OAAmC,EAAE,MAAuC,EAAQ,EAAE;YAChG,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,CAAC,cAAc,GAAG,IAAA,mCAA2B,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrE,IAAA,oDAA4C,EAAC,MAAM,CAAC,CAAC;YACrD,IAAA,0CAAkC,EAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;CAAA;AAvBD,4EAuBC"}
@@ -0,0 +1,5 @@
1
+ import { ModelDataSourceStrategyDbType } from '@aws-amplify/graphql-transformer-interfaces';
2
+ import { DataSourceBasedDirectiveTransformer } from '../data-source-based-directive-transformer';
3
+ import { BelongsToDirectiveConfiguration } from '../types';
4
+ export declare const getBelongsToDirectiveTransformer: (dbType: ModelDataSourceStrategyDbType, config: BelongsToDirectiveConfiguration) => DataSourceBasedDirectiveTransformer<BelongsToDirectiveConfiguration>;
5
+ //# sourceMappingURL=belongs-to-directive-transformer-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"belongs-to-directive-transformer-factory.d.ts","sourceRoot":"","sources":["../../src/belongs-to/belongs-to-directive-transformer-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,mCAAmC,EAAE,MAAM,4CAA4C,CAAC;AACjG,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAU3D,eAAO,MAAM,gCAAgC,WACnC,6BAA6B,UAC7B,+BAA+B,KAEtC,oCAAoC,+BAA+B,CAyBrE,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBelongsToDirectiveTransformer = void 0;
4
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
5
+ const belongs_to_directive_ddb_fields_transformer_1 = require("./belongs-to-directive-ddb-fields-transformer");
6
+ const belongs_to_directive_ddb_references_transformer_1 = require("./belongs-to-directive-ddb-references-transformer");
7
+ const belongs_to_directive_sql_transformer_1 = require("./belongs-to-directive-sql-transformer");
8
+ const belongsToDirectiveMySqlTransformer = new belongs_to_directive_sql_transformer_1.BelongsToDirectiveSQLTransformer();
9
+ const belongsToDirectivePostgresTransformer = new belongs_to_directive_sql_transformer_1.BelongsToDirectiveSQLTransformer();
10
+ const belongsToDirectiveDdbFieldsTransformer = new belongs_to_directive_ddb_fields_transformer_1.BelongsToDirectiveDDBFieldsTransformer();
11
+ const belongsToDirectiveDdbReferencesTransformer = new belongs_to_directive_ddb_references_transformer_1.BelongsToDirectiveDDBReferencesTransformer();
12
+ const getBelongsToDirectiveTransformer = (dbType, config) => {
13
+ switch (dbType) {
14
+ case 'MYSQL':
15
+ return belongsToDirectiveMySqlTransformer;
16
+ case 'POSTGRES':
17
+ return belongsToDirectivePostgresTransformer;
18
+ case 'DYNAMODB':
19
+ if (config.references) {
20
+ if (config.fields) {
21
+ throw new graphql_transformer_core_1.InvalidDirectiveError(`fields and references cannot be defined in the same ${config.directiveName}. Use 'references'`);
22
+ }
23
+ if (config.references.length < 1) {
24
+ throw new Error(`Invalid @belongsTo directive on ${config.field.name.value} - empty references list`);
25
+ }
26
+ return belongsToDirectiveDdbReferencesTransformer;
27
+ }
28
+ return belongsToDirectiveDdbFieldsTransformer;
29
+ }
30
+ };
31
+ exports.getBelongsToDirectiveTransformer = getBelongsToDirectiveTransformer;
32
+ //# sourceMappingURL=belongs-to-directive-transformer-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"belongs-to-directive-transformer-factory.js","sourceRoot":"","sources":["../../src/belongs-to/belongs-to-directive-transformer-factory.ts"],"names":[],"mappings":";;;AAAA,oFAA8E;AAI9E,+GAAuG;AACvG,uHAA+G;AAC/G,iGAA0F;AAE1F,MAAM,kCAAkC,GAAG,IAAI,uEAAgC,EAAE,CAAC;AAClF,MAAM,qCAAqC,GAAG,IAAI,uEAAgC,EAAE,CAAC;AACrF,MAAM,sCAAsC,GAAG,IAAI,oFAAsC,EAAE,CAAC;AAC5F,MAAM,0CAA0C,GAAG,IAAI,4FAA0C,EAAE,CAAC;AAE7F,MAAM,gCAAgC,GAAG,CAC9C,MAAqC,EACrC,MAAuC,EAE+B,EAAE;IACxE,QAAQ,MAAM,EAAE;QACd,KAAK,OAAO;YACV,OAAO,kCAAkC,CAAC;QAC5C,KAAK,UAAU;YACb,OAAO,qCAAqC,CAAC;QAC/C,KAAK,UAAU;YAGb,IAAI,MAAM,CAAC,UAAU,EAAE;gBAErB,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjB,MAAM,IAAI,gDAAqB,CAAC,uDAAuD,MAAM,CAAC,aAAa,oBAAoB,CAAC,CAAC;iBAClI;gBACD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;iBACvG;gBAED,OAAO,0CAA0C,CAAC;aACnD;YAID,OAAO,sCAAsC,CAAC;KACjD;AACH,CAAC,CAAC;AA7BW,QAAA,gCAAgC,oCA6B3C"}
@@ -0,0 +1,11 @@
1
+ import { TransformerContextProvider, TransformerPrepareStepContextProvider, ModelDataSourceStrategyDbType, TransformerTransformSchemaStepContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
2
+ import { BelongsToDirectiveConfiguration, HasManyDirectiveConfiguration, HasOneDirectiveConfiguration } from './types';
3
+ export type RelationalDirectiveConfiguration = HasOneDirectiveConfiguration | HasManyDirectiveConfiguration | BelongsToDirectiveConfiguration;
4
+ export interface DataSourceBasedDirectiveTransformer<Config extends RelationalDirectiveConfiguration> {
5
+ dbType: ModelDataSourceStrategyDbType;
6
+ prepare: (context: TransformerPrepareStepContextProvider, config: Config) => void;
7
+ transformSchema: (context: TransformerTransformSchemaStepContextProvider, config: Config) => void;
8
+ generateResolvers: (context: TransformerContextProvider, config: Config) => void;
9
+ validate: (context: TransformerContextProvider, config: Config) => void;
10
+ }
11
+ //# sourceMappingURL=data-source-based-directive-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-source-based-directive-transformer.d.ts","sourceRoot":"","sources":["../src/data-source-based-directive-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,qCAAqC,EACrC,6BAA6B,EAC7B,6CAA6C,EAC9C,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAEvH,MAAM,MAAM,gCAAgC,GACxC,4BAA4B,GAC5B,6BAA6B,GAC7B,+BAA+B,CAAC;AASpC,MAAM,WAAW,mCAAmC,CAAC,MAAM,SAAS,gCAAgC;IAElG,MAAM,EAAE,6BAA6B,CAAC;IACtC,OAAO,EAAE,CAAC,OAAO,EAAE,qCAAqC,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClF,eAAe,EAAE,CAAC,OAAO,EAAE,6CAA6C,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClG,iBAAiB,EAAE,CAAC,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,QAAQ,EAAE,CAAC,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data-source-based-directive-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-source-based-directive-transformer.js","sourceRoot":"","sources":["../src/data-source-based-directive-transformer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { TransformerPluginBase } from '@aws-amplify/graphql-transformer-core';
2
+ import { TransformerContextProvider, TransformerPreProcessContextProvider, TransformerPrepareStepContextProvider, TransformerSchemaVisitStepContextProvider, TransformerTransformSchemaStepContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
3
+ import { DirectiveNode, DocumentNode, FieldDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from 'graphql';
4
+ export declare class BelongsToTransformer extends TransformerPluginBase {
5
+ private directiveList;
6
+ constructor();
7
+ field: (parent: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, definition: FieldDefinitionNode, directive: DirectiveNode, context: TransformerSchemaVisitStepContextProvider) => void;
8
+ mutateSchema: (context: TransformerPreProcessContextProvider) => DocumentNode;
9
+ prepare: (context: TransformerPrepareStepContextProvider) => void;
10
+ transformSchema: (ctx: TransformerTransformSchemaStepContextProvider) => void;
11
+ generateResolvers: (ctx: TransformerContextProvider) => void;
12
+ }
13
+ //# sourceMappingURL=graphql-belongs-to-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-belongs-to-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-belongs-to-transformer.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,qBAAqB,EAItB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,0BAA0B,EAC1B,oCAAoC,EACpC,qCAAqC,EACrC,yCAAyC,EACzC,6CAA6C,EAC9C,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,EAE3B,wBAAwB,EAEzB,MAAM,SAAS,CAAC;AAkBjB,qBAAa,oBAAqB,SAAQ,qBAAqB;IAC7D,OAAO,CAAC,aAAa,CAAyC;;IAM9D,KAAK,WACK,wBAAwB,GAAG,2BAA2B,cAClD,mBAAmB,aACpB,aAAa,WACf,yCAAyC,KACjD,IAAI,CAcL;IAKF,YAAY,YAAa,oCAAoC,KAAG,YAAY,CA+C1E;IAKF,OAAO,YAAa,qCAAqC,KAAG,IAAI,CAO9D;IAEF,eAAe,QAAS,6CAA6C,KAAG,IAAI,CAS1E;IAEF,iBAAiB,QAAS,0BAA0B,KAAG,IAAI,CAyBzD;CACH"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BelongsToTransformer = void 0;
7
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
8
+ const graphql_directives_1 = require("@aws-amplify/graphql-directives");
9
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
10
+ const graphql_1 = require("graphql");
11
+ const graphql_transformer_common_1 = require("graphql-transformer-common");
12
+ const immer_1 = __importDefault(require("immer"));
13
+ const belongs_to_directive_transformer_factory_1 = require("./belongs-to/belongs-to-directive-transformer-factory");
14
+ const schema_1 = require("./schema");
15
+ const utils_1 = require("./utils");
16
+ class BelongsToTransformer extends graphql_transformer_core_1.TransformerPluginBase {
17
+ constructor() {
18
+ super('amplify-belongs-to-transformer', graphql_directives_1.BelongsToDirective.definition);
19
+ this.directiveList = [];
20
+ this.field = (parent, definition, directive, context) => {
21
+ const directiveWrapped = new graphql_transformer_core_1.DirectiveWrapper(directive);
22
+ const args = directiveWrapped.getArguments({
23
+ directiveName: graphql_directives_1.BelongsToDirective.name,
24
+ object: parent,
25
+ field: definition,
26
+ directive,
27
+ }, (0, graphql_transformer_core_1.generateGetArgumentsInput)(context.transformParameters));
28
+ validate(args, context);
29
+ this.directiveList.push(args);
30
+ };
31
+ this.mutateSchema = (context) => {
32
+ const resultDoc = (0, immer_1.default)(context.inputDocument, (draftDoc) => {
33
+ var _a;
34
+ const objectTypeMap = new Map();
35
+ const filteredDefs = (_a = draftDoc === null || draftDoc === void 0 ? void 0 : draftDoc.definitions) === null || _a === void 0 ? void 0 : _a.filter((def) => def.kind === 'ObjectTypeExtension' || def.kind === 'ObjectTypeDefinition');
36
+ const objectDefs = filteredDefs;
37
+ objectDefs === null || objectDefs === void 0 ? void 0 : objectDefs.forEach((def) => objectTypeMap.set(def.name.value, def));
38
+ objectDefs === null || objectDefs === void 0 ? void 0 : objectDefs.forEach((def) => {
39
+ var _a;
40
+ const filteredFields = (_a = def === null || def === void 0 ? void 0 : def.fields) === null || _a === void 0 ? void 0 : _a.filter((field) => { var _a; return (_a = field === null || field === void 0 ? void 0 : field.directives) === null || _a === void 0 ? void 0 : _a.some((dir) => dir.name.value === graphql_directives_1.BelongsToDirective.name && objectTypeMap.get((0, graphql_transformer_common_1.getBaseType)(field.type))); });
41
+ filteredFields === null || filteredFields === void 0 ? void 0 : filteredFields.forEach((field) => {
42
+ var _a, _b, _c, _d, _e, _f;
43
+ const relatedType = objectTypeMap.get((0, graphql_transformer_common_1.getBaseType)(field.type));
44
+ const relationTypeField = (_a = relatedType === null || relatedType === void 0 ? void 0 : relatedType.fields) === null || _a === void 0 ? void 0 : _a.find((relatedField) => {
45
+ var _a;
46
+ return (0, graphql_transformer_common_1.getBaseType)(relatedField.type) === def.name.value &&
47
+ ((_a = relatedField === null || relatedField === void 0 ? void 0 : relatedField.directives) === null || _a === void 0 ? void 0 : _a.some((relatedDir) => relatedDir.name.value === 'hasOne' || relatedDir.name.value === 'hasMany'));
48
+ });
49
+ const relationTypeName = (_d = (_c = (_b = relationTypeField === null || relationTypeField === void 0 ? void 0 : relationTypeField.directives) === null || _b === void 0 ? void 0 : _b.find((relationDir) => relationDir.name.value === 'hasOne' || relationDir.name.value === 'hasMany')) === null || _c === void 0 ? void 0 : _c.name) === null || _d === void 0 ? void 0 : _d.value;
50
+ if (relationTypeName === 'hasOne') {
51
+ const connectionAttributeName = (0, utils_1.getConnectionAttributeName)(context.transformParameters, def.name.value, field.name.value, (0, utils_1.getObjectPrimaryKey)(def).name.value);
52
+ if (!((_e = def === null || def === void 0 ? void 0 : def.fields) === null || _e === void 0 ? void 0 : _e.some((defField) => defField.name.value === connectionAttributeName))) {
53
+ (_f = def === null || def === void 0 ? void 0 : def.fields) === null || _f === void 0 ? void 0 : _f.push((0, graphql_transformer_common_1.makeField)(connectionAttributeName, [], (0, graphql_transformer_common_1.isNonNullType)(field.type) ? (0, graphql_transformer_common_1.makeNonNullType)((0, graphql_transformer_common_1.makeNamedType)('ID')) : (0, graphql_transformer_common_1.makeNamedType)('ID'), []));
54
+ }
55
+ }
56
+ });
57
+ });
58
+ });
59
+ return resultDoc;
60
+ };
61
+ this.prepare = (context) => {
62
+ this.directiveList.forEach((config) => {
63
+ const modelName = config.object.name.value;
64
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromModel)(context, modelName);
65
+ const dataSourceBasedTransformer = (0, belongs_to_directive_transformer_factory_1.getBelongsToDirectiveTransformer)(dbType, config);
66
+ dataSourceBasedTransformer.prepare(context, config);
67
+ });
68
+ };
69
+ this.transformSchema = (ctx) => {
70
+ const context = ctx;
71
+ for (const config of this.directiveList) {
72
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
73
+ const dataSourceBasedTransformer = (0, belongs_to_directive_transformer_factory_1.getBelongsToDirectiveTransformer)(dbType, config);
74
+ dataSourceBasedTransformer.transformSchema(ctx, config);
75
+ (0, schema_1.ensureBelongsToConnectionField)(config, context);
76
+ }
77
+ };
78
+ this.generateResolvers = (ctx) => {
79
+ const context = ctx;
80
+ for (const config of this.directiveList) {
81
+ if (!ctx.transformParameters.allowGen1Patterns) {
82
+ const { field, object } = config;
83
+ const modelName = object.name.value;
84
+ const fieldName = field.name.value;
85
+ if (field.type.kind === graphql_1.Kind.NON_NULL_TYPE) {
86
+ aws_cdk_lib_1.Annotations.of(ctx.api).addWarning(`@${graphql_directives_1.BelongsToDirective.name} on required fields is deprecated. Modify ${modelName}.${fieldName} to be optional. This functionality will be removed in the next major release.`);
87
+ }
88
+ if (config.fields) {
89
+ aws_cdk_lib_1.Annotations.of(ctx.api).addWarning(`fields argument on @${graphql_directives_1.BelongsToDirective.name} is deprecated. Modify ${modelName}.${fieldName} to use references instead. This functionality will be removed in the next major release.`);
90
+ }
91
+ }
92
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
93
+ const dataSourceBasedTransformer = (0, belongs_to_directive_transformer_factory_1.getBelongsToDirectiveTransformer)(dbType, config);
94
+ dataSourceBasedTransformer.generateResolvers(ctx, config);
95
+ }
96
+ };
97
+ }
98
+ }
99
+ exports.BelongsToTransformer = BelongsToTransformer;
100
+ const validate = (config, ctx) => {
101
+ var _a, _b;
102
+ const { field, object } = config;
103
+ if (config.overrideIndexName && !config.references) {
104
+ throw new graphql_transformer_core_1.InvalidDirectiveError(`overrideIndexName cannot be used on @${graphql_directives_1.BelongsToDirective.name} without references. Modify ${object.name.value}.${field.name.value} to use references or remove overrideIndexName.`);
105
+ }
106
+ let dbType;
107
+ try {
108
+ dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(field.type, ctx);
109
+ }
110
+ catch (_c) {
111
+ throw new graphql_transformer_core_1.InvalidDirectiveError(`Object type ${(_b = (_a = field.type) === null || _a === void 0 ? void 0 : _a.name.value) !== null && _b !== void 0 ? _b : field.name} must be annotated with @model.`);
112
+ }
113
+ config.relatedType = (0, utils_1.getRelatedType)(config, ctx);
114
+ const dataSourceBasedTransformer = (0, belongs_to_directive_transformer_factory_1.getBelongsToDirectiveTransformer)(dbType, config);
115
+ dataSourceBasedTransformer.validate(ctx, config);
116
+ (0, utils_1.validateModelDirective)(config);
117
+ if ((0, graphql_transformer_common_1.isListType)(field.type)) {
118
+ throw new graphql_transformer_core_1.InvalidDirectiveError(`@${graphql_directives_1.BelongsToDirective.name} cannot be used with lists.`);
119
+ }
120
+ config.connectionFields = [];
121
+ (0, utils_1.validateRelatedModelDirective)(config);
122
+ const isBiRelation = config.relatedType.fields.some((relatedField) => {
123
+ if ((0, graphql_transformer_common_1.getBaseType)(relatedField.type) !== object.name.value) {
124
+ return false;
125
+ }
126
+ return relatedField.directives.some((relatedDirective) => {
127
+ if (relatedDirective.name.value === 'hasOne' || relatedDirective.name.value === 'hasMany') {
128
+ config.relatedField = relatedField;
129
+ config.relationType = relatedDirective.name.value;
130
+ return true;
131
+ }
132
+ return false;
133
+ });
134
+ });
135
+ if (!isBiRelation && dbType === graphql_transformer_core_1.DDB_DB_TYPE) {
136
+ throw new graphql_transformer_core_1.InvalidDirectiveError(`${config.relatedType.name.value} must have a relationship with ${object.name.value} in order to use @${graphql_directives_1.BelongsToDirective.name}.`);
137
+ }
138
+ };
139
+ //# sourceMappingURL=graphql-belongs-to-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-belongs-to-transformer.js","sourceRoot":"","sources":["../src/graphql-belongs-to-transformer.ts"],"names":[],"mappings":";;;;;;AACA,oFAQ+C;AAS/C,wEAAqE;AACrE,6CAA0C;AAC1C,qCAQiB;AACjB,2EAA+H;AAC/H,kDAA4B;AAE5B,oHAAyG;AACzG,qCAA0D;AAE1D,mCAMiB;AAKjB,MAAa,oBAAqB,SAAQ,gDAAqB;IAG7D;QACE,KAAK,CAAC,gCAAgC,EAAE,uCAAkB,CAAC,UAAU,CAAC,CAAC;QAHjE,kBAAa,GAAsC,EAAE,CAAC;QAM9D,UAAK,GAAG,CACN,MAA8D,EAC9D,UAA+B,EAC/B,SAAwB,EACxB,OAAkD,EAC5C,EAAE;YACR,MAAM,gBAAgB,GAAG,IAAI,2CAAgB,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CACxC;gBACE,aAAa,EAAE,uCAAkB,CAAC,IAAI;gBACtC,MAAM,EAAE,MAAkC;gBAC1C,KAAK,EAAE,UAAU;gBACjB,SAAS;aACyB,EACpC,IAAA,oDAAyB,EAAC,OAAO,CAAC,mBAAmB,CAAC,CACvD,CAAC;YAEF,QAAQ,CAAC,IAAI,EAAE,OAAqC,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC;QAKF,iBAAY,GAAG,CAAC,OAA6C,EAAgB,EAAE;YAC7E,MAAM,SAAS,GAAiB,IAAA,eAAO,EAAC,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;;gBAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2C,CAAC;gBAEzE,MAAM,YAAY,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,0CAAE,MAAM,CAChD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,qBAAqB,IAAI,GAAG,CAAC,IAAI,KAAK,sBAAsB,CACnF,CAAC;gBACF,MAAM,UAAU,GAAG,YAAsD,CAAC;gBAC1E,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;gBAErE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;;oBAC1B,MAAM,cAAc,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,WACnD,OAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,uCAAkB,CAAC,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,IAAA,wCAAW,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,EAAA,CAC3H,CAAC;oBACF,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;wBAChC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,IAAA,wCAAW,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC/D,MAAM,iBAAiB,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,0CAAE,IAAI,CACjD,CAAC,YAAY,EAAE,EAAE;;4BACf,OAAA,IAAA,wCAAW,EAAC,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK;iCACjD,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,0CAAE,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA,CAAA;yBAAA,CAC5H,CAAC;wBACF,MAAM,gBAAgB,GAAG,MAAA,MAAA,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,UAAU,0CAAE,IAAI,CAC1D,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAC7F,0CAAE,IAAI,0CAAE,KAAK,CAAC;wBAEf,IAAI,gBAAgB,KAAK,QAAQ,EAAE;4BACjC,MAAM,uBAAuB,GAAG,IAAA,kCAA0B,EACxD,OAAO,CAAC,mBAAmB,EAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,EACd,KAAK,CAAC,IAAI,CAAC,KAAK,EAChB,IAAA,2BAAmB,EAAC,GAA+B,CAAC,CAAC,IAAI,CAAC,KAAK,CAChE,CAAC;4BACF,IAAI,CAAC,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,uBAAuB,CAAC,CAAA,EAAE;gCACrF,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,IAAI,CACf,IAAA,sCAAS,EACP,uBAAuB,EACvB,EAAE,EACF,IAAA,0CAAa,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,4CAAe,EAAC,IAAA,0CAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,0CAAa,EAAC,IAAI,CAAC,EACtF,EAAE,CACmC,CACxC,CAAC;6BACH;yBACF;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAKF,YAAO,GAAG,CAAC,OAA8C,EAAQ,EAAE;YACjE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3C,MAAM,MAAM,GAAG,IAAA,qDAA0B,EAAC,OAAqC,EAAE,SAAS,CAAC,CAAC;gBAC5F,MAAM,0BAA0B,GAAG,IAAA,2EAAgC,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACpF,0BAA0B,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,oBAAe,GAAG,CAAC,GAAkD,EAAQ,EAAE;YAC7E,MAAM,OAAO,GAAG,GAAiC,CAAC;YAElD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;gBACvC,MAAM,MAAM,GAAG,IAAA,wDAA6B,EAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACzE,MAAM,0BAA0B,GAAG,IAAA,2EAAgC,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACpF,0BAA0B,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACxD,IAAA,uCAA8B,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aACjD;QACH,CAAC,CAAC;QAEF,sBAAiB,GAAG,CAAC,GAA+B,EAAQ,EAAE;YAC5D,MAAM,OAAO,GAAG,GAAiC,CAAC;YAElD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;gBAGvC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,iBAAiB,EAAE;oBAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;oBACjC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACpC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,aAAa,EAAE;wBAC1C,yBAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAChC,IAAI,uCAAkB,CAAC,IAAI,6CAA6C,SAAS,IAAI,SAAS,gFAAgF,CAC/K,CAAC;qBACH;oBACD,IAAI,MAAM,CAAC,MAAM,EAAE;wBACjB,yBAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAChC,uBAAuB,uCAAkB,CAAC,IAAI,0BAA0B,SAAS,IAAI,SAAS,2FAA2F,CAC1L,CAAC;qBACH;iBACF;gBACD,MAAM,MAAM,GAAG,IAAA,wDAA6B,EAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACzE,MAAM,0BAA0B,GAAG,IAAA,2EAAgC,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACpF,0BAA0B,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aAC3D;QACH,CAAC,CAAC;IA3HF,CAAC;CA4HF;AAjID,oDAiIC;AAED,MAAM,QAAQ,GAAG,CAAC,MAAuC,EAAE,GAA+B,EAAQ,EAAE;;IAClG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QAClD,MAAM,IAAI,gDAAqB,CAC7B,wCAAwC,uCAAkB,CAAC,IAAI,+BAA+B,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,iDAAiD,CACrL,CAAC;KACH;IAED,IAAI,MAAqC,CAAC;IAC1C,IAAI;QAMF,MAAM,GAAG,IAAA,wDAA6B,EAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACzD;IAAC,WAAM;QACN,MAAM,IAAI,gDAAqB,CAC7B,eAAe,MAAA,MAAC,KAAK,CAAC,IAAsB,0CAAE,IAAI,CAAC,KAAK,mCAAI,KAAK,CAAC,IAAI,iCAAiC,CACxG,CAAC;KACH;IAED,MAAM,CAAC,WAAW,GAAG,IAAA,sBAAc,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,0BAA0B,GAAG,IAAA,2EAAgC,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjD,IAAA,8BAAsB,EAAC,MAAM,CAAC,CAAC;IAE/B,IAAI,IAAA,uCAAU,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,IAAI,gDAAqB,CAAC,IAAI,uCAAkB,CAAC,IAAI,6BAA6B,CAAC,CAAC;KAC3F;IAED,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,IAAA,qCAA6B,EAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACpE,IAAI,IAAA,wCAAW,EAAC,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;YACxD,OAAO,KAAK,CAAC;SACd;QAED,OAAO,YAAY,CAAC,UAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE;YACxD,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;gBACzF,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;gBACnC,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;gBAClD,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,IAAI,MAAM,KAAK,sCAAW,EAAE;QAC3C,MAAM,IAAI,gDAAqB,CAC7B,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,kCAAkC,MAAM,CAAC,IAAI,CAAC,KAAK,qBAAqB,uCAAkB,CAAC,IAAI,GAAG,CACnI,CAAC;KACH;AACH,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { TransformerPluginBase } from '@aws-amplify/graphql-transformer-core';
2
+ import { TransformerContextProvider, TransformerPreProcessContextProvider, TransformerPrepareStepContextProvider, TransformerSchemaVisitStepContextProvider, TransformerTransformSchemaStepContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
3
+ import { DirectiveNode, DocumentNode, FieldDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from 'graphql';
4
+ export declare class HasManyTransformer extends TransformerPluginBase {
5
+ private directiveList;
6
+ constructor();
7
+ field: (parent: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, definition: FieldDefinitionNode, directive: DirectiveNode, context: TransformerSchemaVisitStepContextProvider) => void;
8
+ mutateSchema: (context: TransformerPreProcessContextProvider) => DocumentNode;
9
+ prepare: (context: TransformerPrepareStepContextProvider) => void;
10
+ transformSchema: (ctx: TransformerTransformSchemaStepContextProvider) => void;
11
+ generateResolvers: (ctx: TransformerContextProvider) => void;
12
+ }
13
+ //# sourceMappingURL=graphql-has-many-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-has-many-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-has-many-transformer.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,qBAAqB,EAItB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAGL,0BAA0B,EAC1B,oCAAoC,EACpC,qCAAqC,EACrC,yCAAyC,EACzC,6CAA6C,EAC9C,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,EAE3B,wBAAwB,EAGzB,MAAM,SAAS,CAAC;AAsBjB,qBAAa,kBAAmB,SAAQ,qBAAqB;IAC3D,OAAO,CAAC,aAAa,CAAuC;;IAM5D,KAAK,WACK,wBAAwB,GAAG,2BAA2B,cAClD,mBAAmB,aACpB,aAAa,WACf,yCAAyC,KACjD,IAAI,CAeL;IAKF,YAAY,YAAa,oCAAoC,KAAG,YAAY,CAwC1E;IAKF,OAAO,YAAa,qCAAqC,KAAG,IAAI,CAO9D;IAEF,eAAe,QAAS,6CAA6C,KAAG,IAAI,CAU1E;IAEF,iBAAiB,QAAS,0BAA0B,KAAG,IAAI,CAwBzD;CACH"}