@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
@@ -0,0 +1,120 @@
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.HasManyTransformer = void 0;
7
+ const graphql_directives_1 = require("@aws-amplify/graphql-directives");
8
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
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 has_many_directive_transformer_factory_1 = require("./has-many/has-many-directive-transformer-factory");
14
+ const schema_1 = require("./schema");
15
+ const utils_1 = require("./utils");
16
+ class HasManyTransformer extends graphql_transformer_core_1.TransformerPluginBase {
17
+ constructor() {
18
+ super('amplify-has-many-transformer', graphql_directives_1.HasManyDirective.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.HasManyDirective.name,
24
+ object: parent,
25
+ field: definition,
26
+ directive,
27
+ limit: graphql_directives_1.HasManyDirective.defaults.limit,
28
+ }, (0, graphql_transformer_core_1.generateGetArgumentsInput)(context.transformParameters));
29
+ validate(args, context);
30
+ this.directiveList.push(args);
31
+ };
32
+ this.mutateSchema = (context) => {
33
+ const resultDoc = (0, immer_1.default)(context.inputDocument, (draftDoc) => {
34
+ var _a, _b;
35
+ const connectingFieldsMap = new Map();
36
+ const filteredDefs = (_a = draftDoc === null || draftDoc === void 0 ? void 0 : draftDoc.definitions) === null || _a === void 0 ? void 0 : _a.filter((def) => def.kind === 'ObjectTypeDefinition' || def.kind === 'ObjectTypeExtension');
37
+ const objectDefs = filteredDefs;
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.HasManyDirective.name); });
41
+ filteredFields === null || filteredFields === void 0 ? void 0 : filteredFields.forEach((field) => {
42
+ const baseFieldType = (0, graphql_transformer_common_1.getBaseType)(field.type);
43
+ const connectionAttributeName = (0, utils_1.getConnectionAttributeName)(context.transformParameters, def.name.value, field.name.value, (0, utils_1.getObjectPrimaryKey)(def).name.value);
44
+ const newField = (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'), []);
45
+ const sortKeyFields = (0, schema_1.convertSortKeyFieldsToSortKeyConnectionFields)((0, schema_1.getSortKeyFieldsNoContext)(def), def, field);
46
+ const allNewFields = [newField, ...sortKeyFields];
47
+ connectingFieldsMap.set(baseFieldType, allNewFields);
48
+ });
49
+ });
50
+ (_b = objectDefs === null || objectDefs === void 0 ? void 0 : objectDefs.filter((def) => connectingFieldsMap.has(def.name.value))) === null || _b === void 0 ? void 0 : _b.forEach((def) => {
51
+ const fieldsToAdd = connectingFieldsMap.get(def.name.value);
52
+ if (fieldsToAdd) {
53
+ (0, schema_1.addFieldsToDefinition)(def, fieldsToAdd);
54
+ }
55
+ });
56
+ });
57
+ return resultDoc;
58
+ };
59
+ this.prepare = (context) => {
60
+ this.directiveList.forEach((config) => {
61
+ const modelName = config.object.name.value;
62
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromModel)(context, modelName);
63
+ const dataSourceBasedTransformer = (0, has_many_directive_transformer_factory_1.getHasManyDirectiveTransformer)(dbType, config);
64
+ dataSourceBasedTransformer.prepare(context, config);
65
+ });
66
+ };
67
+ this.transformSchema = (ctx) => {
68
+ const context = ctx;
69
+ for (const config of this.directiveList) {
70
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
71
+ const dataSourceBasedTransformer = (0, has_many_directive_transformer_factory_1.getHasManyDirectiveTransformer)(dbType, config);
72
+ dataSourceBasedTransformer.transformSchema(ctx, config);
73
+ (0, schema_1.ensureHasManyConnectionField)(config, context);
74
+ (0, schema_1.extendTypeWithConnection)(config, context);
75
+ }
76
+ };
77
+ this.generateResolvers = (ctx) => {
78
+ const context = ctx;
79
+ for (const config of this.directiveList) {
80
+ if (!ctx.transformParameters.allowGen1Patterns) {
81
+ const { field, object } = config;
82
+ const modelName = object.name.value;
83
+ const fieldName = field.name.value;
84
+ if (field.type.kind === graphql_1.Kind.NON_NULL_TYPE) {
85
+ aws_cdk_lib_1.Annotations.of(ctx.api).addWarning(`@${graphql_directives_1.HasManyDirective.name} on required fields is deprecated. Modify ${modelName}.${fieldName} to be optional. This functionality will be removed in the next major release.`);
86
+ }
87
+ if (config.fields) {
88
+ aws_cdk_lib_1.Annotations.of(ctx.api).addWarning(`fields argument on @${graphql_directives_1.HasManyDirective.name} is deprecated. Modify ${modelName}.${fieldName} to use references instead. This functionality will be removed in the next major release.`);
89
+ }
90
+ }
91
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
92
+ const dataSourceBasedTransformer = (0, has_many_directive_transformer_factory_1.getHasManyDirectiveTransformer)(dbType, config);
93
+ dataSourceBasedTransformer.generateResolvers(ctx, config);
94
+ }
95
+ };
96
+ }
97
+ }
98
+ exports.HasManyTransformer = HasManyTransformer;
99
+ const validate = (config, ctx) => {
100
+ var _a, _b;
101
+ const { field } = config;
102
+ if (!(0, graphql_transformer_common_1.isListType)(field.type)) {
103
+ throw new graphql_transformer_core_1.InvalidDirectiveError(`@${graphql_directives_1.HasManyDirective.name} must be used with a list. Use @hasOne for non-list types.`);
104
+ }
105
+ let dbType;
106
+ try {
107
+ dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(field.type, ctx);
108
+ }
109
+ catch (_c) {
110
+ 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.`);
111
+ }
112
+ config.relatedType = (0, utils_1.getRelatedType)(config, ctx);
113
+ const dataSourceBasedTransformer = (0, has_many_directive_transformer_factory_1.getHasManyDirectiveTransformer)(dbType, config);
114
+ dataSourceBasedTransformer.validate(ctx, config);
115
+ (0, utils_1.validateModelDirective)(config);
116
+ config.connectionFields = [];
117
+ (0, utils_1.validateRelatedModelDirective)(config);
118
+ (0, utils_1.validateDisallowedDataStoreRelationships)(config, ctx);
119
+ };
120
+ //# sourceMappingURL=graphql-has-many-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-has-many-transformer.js","sourceRoot":"","sources":["../src/graphql-has-many-transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { TransformerPluginBase } from '@aws-amplify/graphql-transformer-core';
2
+ import { TransformerContextProvider, TransformerPrepareStepContextProvider, TransformerSchemaVisitStepContextProvider, TransformerTransformSchemaStepContextProvider, TransformerPreProcessContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
3
+ import { DirectiveNode, DocumentNode, FieldDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from 'graphql';
4
+ export declare class HasOneTransformer 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-one-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-has-one-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-has-one-transformer.ts"],"names":[],"mappings":"AACA,OAAO,EAML,qBAAqB,EACtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,0BAA0B,EAC1B,qCAAqC,EACrC,yCAAyC,EACzC,6CAA6C,EAC7C,oCAAoC,EAErC,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,EAE3B,wBAAwB,EAEzB,MAAM,SAAS,CAAC;AAkCjB,qBAAa,iBAAkB,SAAQ,qBAAqB;IAC1D,OAAO,CAAC,aAAa,CAAsC;;IAM3D,KAAK,WACK,wBAAwB,GAAG,2BAA2B,cAClD,mBAAmB,aACpB,aAAa,WACf,yCAAyC,KACjD,IAAI,CAcL;IAKF,YAAY,YAAa,oCAAoC,KAAG,YAAY,CA2D1E;IAKF,OAAO,YAAa,qCAAqC,KAAG,IAAI,CAO9D;IAEF,eAAe,QAAS,6CAA6C,KAAG,IAAI,CAS1E;IAEF,iBAAiB,QAAS,0BAA0B,KAAG,IAAI,CAwBzD;CACH"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HasOneTransformer = void 0;
4
+ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
5
+ const graphql_directives_1 = require("@aws-amplify/graphql-directives");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
7
+ const graphql_1 = require("graphql");
8
+ const graphql_transformer_common_1 = require("graphql-transformer-common");
9
+ const immer_1 = require("immer");
10
+ const schema_1 = require("./schema");
11
+ const utils_1 = require("./utils");
12
+ const has_one_directive_transformer_factory_1 = require("./has-one/has-one-directive-transformer-factory");
13
+ class HasOneTransformer extends graphql_transformer_core_1.TransformerPluginBase {
14
+ constructor() {
15
+ super('amplify-has-one-transformer', graphql_directives_1.HasOneDirective.definition);
16
+ this.directiveList = [];
17
+ this.field = (parent, definition, directive, context) => {
18
+ const directiveWrapped = new graphql_transformer_core_1.DirectiveWrapper(directive);
19
+ const args = directiveWrapped.getArguments({
20
+ directiveName: graphql_directives_1.HasOneDirective.name,
21
+ object: parent,
22
+ field: definition,
23
+ directive,
24
+ }, (0, graphql_transformer_core_1.generateGetArgumentsInput)(context.transformParameters));
25
+ validate(args, context);
26
+ this.directiveList.push(args);
27
+ };
28
+ this.mutateSchema = (context) => {
29
+ const document = (0, immer_1.produce)(context.inputDocument, (draftDoc) => {
30
+ var _a;
31
+ const filteredDefs = (_a = draftDoc === null || draftDoc === void 0 ? void 0 : draftDoc.definitions) === null || _a === void 0 ? void 0 : _a.filter((def) => def.kind === 'ObjectTypeDefinition' || def.kind === 'ObjectTypeExtension');
32
+ const objectDefs = new Map(filteredDefs.map((def) => [def.name.value, def]));
33
+ objectDefs === null || objectDefs === void 0 ? void 0 : objectDefs.forEach((def) => {
34
+ var _a;
35
+ 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.HasOneDirective.name); });
36
+ filteredFields === null || filteredFields === void 0 ? void 0 : filteredFields.forEach((field) => {
37
+ var _a;
38
+ (_a = field === null || field === void 0 ? void 0 : field.directives) === null || _a === void 0 ? void 0 : _a.forEach((dir) => {
39
+ var _a, _b;
40
+ const connectionAttributeName = (0, utils_1.getConnectionAttributeName)(context.transformParameters, def.name.value, field.name.value, (0, utils_1.getObjectPrimaryKey)(def).name.value);
41
+ let hasFieldsDefined = false;
42
+ let removalIndex = -1;
43
+ (_a = dir === null || dir === void 0 ? void 0 : dir.arguments) === null || _a === void 0 ? void 0 : _a.forEach((arg, idx) => {
44
+ if (arg.name.value === 'fields') {
45
+ if ((arg.value.kind === 'StringValue' && arg.value.value) ||
46
+ (arg.value.kind === 'ListValue' && arg.value.values && arg.value.values.length > 0)) {
47
+ hasFieldsDefined = true;
48
+ }
49
+ else {
50
+ removalIndex = idx;
51
+ }
52
+ }
53
+ });
54
+ if (removalIndex !== -1) {
55
+ (_b = dir === null || dir === void 0 ? void 0 : dir.arguments) === null || _b === void 0 ? void 0 : _b.splice(removalIndex, 1);
56
+ }
57
+ const relatedType = objectDefs.get((0, graphql_transformer_common_1.getBaseType)(field.type));
58
+ if (!hasFieldsDefined && relatedType) {
59
+ const sortKeyFields = (0, schema_1.convertSortKeyFieldsToSortKeyConnectionFields)((0, schema_1.getSortKeyFieldsNoContext)(relatedType), def, field);
60
+ const connField = (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'), []);
61
+ dir.arguments = [
62
+ (0, graphql_transformer_common_1.makeArgument)('fields', (0, graphql_transformer_common_1.makeValueNode)([connectionAttributeName, ...sortKeyFields.map((skf) => skf.name.value)])),
63
+ ];
64
+ (0, schema_1.addFieldsToDefinition)(def, [connField, ...sortKeyFields]);
65
+ }
66
+ });
67
+ });
68
+ });
69
+ });
70
+ return document;
71
+ };
72
+ this.prepare = (context) => {
73
+ this.directiveList.forEach((config) => {
74
+ const modelName = config.object.name.value;
75
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromModel)(context, modelName);
76
+ const dataSourceBasedTransformer = (0, has_one_directive_transformer_factory_1.getHasOneDirectiveTransformer)(dbType, config);
77
+ dataSourceBasedTransformer.prepare(context, config);
78
+ });
79
+ };
80
+ this.transformSchema = (ctx) => {
81
+ const context = ctx;
82
+ for (const config of this.directiveList) {
83
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
84
+ const dataSourceBasedTransformer = (0, has_one_directive_transformer_factory_1.getHasOneDirectiveTransformer)(dbType, config);
85
+ dataSourceBasedTransformer.transformSchema(ctx, config);
86
+ (0, schema_1.ensureHasOneConnectionField)(config, context);
87
+ }
88
+ };
89
+ this.generateResolvers = (ctx) => {
90
+ const context = ctx;
91
+ for (const config of this.directiveList) {
92
+ if (!ctx.transformParameters.allowGen1Patterns) {
93
+ const { field, object } = config;
94
+ const modelName = object.name.value;
95
+ const fieldName = field.name.value;
96
+ if (field.type.kind === graphql_1.Kind.NON_NULL_TYPE) {
97
+ aws_cdk_lib_1.Annotations.of(ctx.api).addWarning(`@${graphql_directives_1.HasOneDirective.name} on required fields is deprecated. Modify ${modelName}.${fieldName} to be optional. This functionality will be removed in the next major release.`);
98
+ }
99
+ if (config.fields) {
100
+ aws_cdk_lib_1.Annotations.of(ctx.api).addWarning(`fields argument on @${graphql_directives_1.HasOneDirective.name} is deprecated. Modify ${modelName}.${fieldName} to use references instead. This functionality will be removed in the next major release.`);
101
+ }
102
+ }
103
+ const dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(config.field.type, context);
104
+ const dataSourceBasedTransformer = (0, has_one_directive_transformer_factory_1.getHasOneDirectiveTransformer)(dbType, config);
105
+ dataSourceBasedTransformer.generateResolvers(ctx, config);
106
+ }
107
+ };
108
+ }
109
+ }
110
+ exports.HasOneTransformer = HasOneTransformer;
111
+ const validate = (config, ctx) => {
112
+ var _a, _b;
113
+ const { field } = config;
114
+ let dbType;
115
+ try {
116
+ dbType = (0, graphql_transformer_core_1.getStrategyDbTypeFromTypeNode)(field.type, ctx);
117
+ }
118
+ catch (_c) {
119
+ 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.`);
120
+ }
121
+ config.relatedType = (0, utils_1.getRelatedType)(config, ctx);
122
+ const dataSourceBasedTransformer = (0, has_one_directive_transformer_factory_1.getHasOneDirectiveTransformer)(dbType, config);
123
+ dataSourceBasedTransformer.validate(ctx, config);
124
+ (0, utils_1.validateModelDirective)(config);
125
+ if ((0, graphql_transformer_common_1.isListType)(field.type)) {
126
+ throw new graphql_transformer_core_1.InvalidDirectiveError(`@${graphql_directives_1.HasOneDirective.name} cannot be used with lists. Use @hasMany instead.`);
127
+ }
128
+ config.connectionFields = [];
129
+ (0, utils_1.validateRelatedModelDirective)(config);
130
+ (0, utils_1.validateDisallowedDataStoreRelationships)(config, ctx);
131
+ };
132
+ //# sourceMappingURL=graphql-has-one-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-has-one-transformer.js","sourceRoot":"","sources":["../src/graphql-has-one-transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { TransformerPluginBase } from '@aws-amplify/graphql-transformer-core';
2
+ import { TransformerAuthProvider, TransformerContextProvider, TransformerPrepareStepContextProvider, TransformerSchemaVisitStepContextProvider, TransformerTransformSchemaStepContextProvider, TransformerValidationStepContextProvider, TransformerPreProcessContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
3
+ import { DirectiveNode, DocumentNode, FieldDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from 'graphql';
4
+ import { ModelTransformer } from '@aws-amplify/graphql-model-transformer';
5
+ import { IndexTransformer } from '@aws-amplify/graphql-index-transformer';
6
+ import { HasOneTransformer } from './graphql-has-one-transformer';
7
+ export declare class ManyToManyTransformer extends TransformerPluginBase {
8
+ private relationMap;
9
+ private directiveList;
10
+ private modelTransformer;
11
+ private indexTransformer;
12
+ private hasOneTransformer;
13
+ private authProvider;
14
+ constructor(modelTransformer: ModelTransformer, indexTransformer: IndexTransformer, hasOneTransformer: HasOneTransformer, authProvider: TransformerAuthProvider);
15
+ field: (parent: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, definition: FieldDefinitionNode, directive: DirectiveNode, context: TransformerSchemaVisitStepContextProvider) => void;
16
+ mutateSchema: (context: TransformerPreProcessContextProvider) => DocumentNode;
17
+ validate: (ctx: TransformerValidationStepContextProvider) => void;
18
+ prepare: (ctx: TransformerPrepareStepContextProvider) => void;
19
+ transformSchema: (ctx: TransformerTransformSchemaStepContextProvider) => void;
20
+ generateResolvers: (ctx: TransformerContextProvider) => void;
21
+ }
22
+ //# sourceMappingURL=graphql-many-to-many-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-many-to-many-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-many-to-many-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EAOtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,uBAAuB,EACvB,0BAA0B,EAC1B,qCAAqC,EACrC,yCAAyC,EACzC,6CAA6C,EAC7C,wCAAwC,EACxC,oCAAoC,EAGrC,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,EAE3B,wBAAwB,EAEzB,MAAM,SAAS,CAAC;AAcjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAmB1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAUlE,qBAAa,qBAAsB,SAAQ,qBAAqB;IAC9D,OAAO,CAAC,WAAW,CAAyC;IAE5D,OAAO,CAAC,aAAa,CAA0C;IAE/D,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAA0B;gBAG5C,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,uBAAuB;IASvC,KAAK,WACK,wBAAwB,GAAG,2BAA2B,cAClD,mBAAmB,aACpB,aAAa,WACf,yCAAyC,KACjD,IAAI,CAwBL;IAKF,YAAY,YAAa,oCAAoC,KAAG,YAAY,CAmJ1E;IAEF,QAAQ,QAAS,wCAAwC,KAAG,IAAI,CA4C9D;IAEF,OAAO,QAAS,qCAAqC,KAAG,IAAI,CAuK1D;IAEF,eAAe,QAAS,6CAA6C,KAAG,IAAI,CAO1E;IAEF,iBAAiB,QAAS,0BAA0B,KAAG,IAAI,CAiBzD;CACH"}