@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.
- package/API.md +97 -0
- package/CHANGELOG.md +807 -0
- package/README.md +43 -0
- package/jest.config.js +12 -0
- package/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts +11 -0
- package/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts.map +1 -0
- package/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js +37 -0
- package/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js.map +1 -0
- package/lib/belongs-to/belongs-to-directive-ddb-references-transformer.d.ts +11 -0
- package/lib/belongs-to/belongs-to-directive-ddb-references-transformer.d.ts.map +1 -0
- package/lib/belongs-to/belongs-to-directive-ddb-references-transformer.js +37 -0
- package/lib/belongs-to/belongs-to-directive-ddb-references-transformer.js.map +1 -0
- package/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts +11 -0
- package/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts.map +1 -0
- package/lib/belongs-to/belongs-to-directive-sql-transformer.js +32 -0
- package/lib/belongs-to/belongs-to-directive-sql-transformer.js.map +1 -0
- package/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts +5 -0
- package/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts.map +1 -0
- package/lib/belongs-to/belongs-to-directive-transformer-factory.js +32 -0
- package/lib/belongs-to/belongs-to-directive-transformer-factory.js.map +1 -0
- package/lib/data-source-based-directive-transformer.d.ts +11 -0
- package/lib/data-source-based-directive-transformer.d.ts.map +1 -0
- package/lib/data-source-based-directive-transformer.js +3 -0
- package/lib/data-source-based-directive-transformer.js.map +1 -0
- package/lib/graphql-belongs-to-transformer.d.ts +13 -0
- package/lib/graphql-belongs-to-transformer.d.ts.map +1 -0
- package/lib/graphql-belongs-to-transformer.js +139 -0
- package/lib/graphql-belongs-to-transformer.js.map +1 -0
- package/lib/graphql-has-many-transformer.d.ts +13 -0
- package/lib/graphql-has-many-transformer.d.ts.map +1 -0
- package/lib/graphql-has-many-transformer.js +120 -0
- package/lib/graphql-has-many-transformer.js.map +1 -0
- package/lib/graphql-has-one-transformer.d.ts +13 -0
- package/lib/graphql-has-one-transformer.d.ts.map +1 -0
- package/lib/graphql-has-one-transformer.js +132 -0
- package/lib/graphql-has-one-transformer.js.map +1 -0
- package/lib/graphql-many-to-many-transformer.d.ts +22 -0
- package/lib/graphql-many-to-many-transformer.d.ts.map +1 -0
- package/lib/graphql-many-to-many-transformer.js +384 -0
- package/lib/graphql-many-to-many-transformer.js.map +1 -0
- package/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts +11 -0
- package/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts.map +1 -0
- package/lib/has-many/has-many-directive-ddb-fields-transformer.js +36 -0
- package/lib/has-many/has-many-directive-ddb-fields-transformer.js.map +1 -0
- package/lib/has-many/has-many-directive-ddb-references-transformer.d.ts +11 -0
- package/lib/has-many/has-many-directive-ddb-references-transformer.d.ts.map +1 -0
- package/lib/has-many/has-many-directive-ddb-references-transformer.js +52 -0
- package/lib/has-many/has-many-directive-ddb-references-transformer.js.map +1 -0
- package/lib/has-many/has-many-directive-sql-transformer.d.ts +11 -0
- package/lib/has-many/has-many-directive-sql-transformer.d.ts.map +1 -0
- package/lib/has-many/has-many-directive-sql-transformer.js +32 -0
- package/lib/has-many/has-many-directive-sql-transformer.js.map +1 -0
- package/lib/has-many/has-many-directive-transformer-factory.d.ts +5 -0
- package/lib/has-many/has-many-directive-transformer-factory.d.ts.map +1 -0
- package/lib/has-many/has-many-directive-transformer-factory.js +32 -0
- package/lib/has-many/has-many-directive-transformer-factory.js.map +1 -0
- package/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts +11 -0
- package/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts.map +1 -0
- package/lib/has-one/has-one-directive-ddb-fields-transformer.js +34 -0
- package/lib/has-one/has-one-directive-ddb-fields-transformer.js.map +1 -0
- package/lib/has-one/has-one-directive-ddb-references-transformer.d.ts +11 -0
- package/lib/has-one/has-one-directive-ddb-references-transformer.d.ts.map +1 -0
- package/lib/has-one/has-one-directive-ddb-references-transformer.js +52 -0
- package/lib/has-one/has-one-directive-ddb-references-transformer.js.map +1 -0
- package/lib/has-one/has-one-directive-sql-transformer.d.ts +11 -0
- package/lib/has-one/has-one-directive-sql-transformer.d.ts.map +1 -0
- package/lib/has-one/has-one-directive-sql-transformer.js +32 -0
- package/lib/has-one/has-one-directive-sql-transformer.js.map +1 -0
- package/lib/has-one/has-one-directive-transformer-factory.d.ts +5 -0
- package/lib/has-one/has-one-directive-transformer-factory.d.ts.map +1 -0
- package/lib/has-one/has-one-directive-transformer-factory.js +32 -0
- package/lib/has-one/has-one-directive-transformer-factory.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +16 -0
- package/lib/index.js.map +1 -0
- package/lib/resolver/ddb-generator.d.ts +14 -0
- package/lib/resolver/ddb-generator.d.ts.map +1 -0
- package/lib/resolver/ddb-generator.js +188 -0
- package/lib/resolver/ddb-generator.js.map +1 -0
- package/lib/resolver/ddb-references-generator.d.ts +11 -0
- package/lib/resolver/ddb-references-generator.d.ts.map +1 -0
- package/lib/resolver/ddb-references-generator.js +216 -0
- package/lib/resolver/ddb-references-generator.js.map +1 -0
- package/lib/resolver/generator-factory.d.ts +4 -0
- package/lib/resolver/generator-factory.d.ts.map +1 -0
- package/lib/resolver/generator-factory.js +18 -0
- package/lib/resolver/generator-factory.js.map +1 -0
- package/lib/resolver/generator.d.ts +8 -0
- package/lib/resolver/generator.d.ts.map +1 -0
- package/lib/resolver/generator.js +7 -0
- package/lib/resolver/generator.js.map +1 -0
- package/lib/resolver/rds-generator.d.ts +16 -0
- package/lib/resolver/rds-generator.d.ts.map +1 -0
- package/lib/resolver/rds-generator.js +148 -0
- package/lib/resolver/rds-generator.js.map +1 -0
- package/lib/resolvers.d.ts +8 -0
- package/lib/resolvers.d.ts.map +1 -0
- package/lib/resolvers.js +246 -0
- package/lib/resolvers.js.map +1 -0
- package/lib/schema.d.ts +15 -0
- package/lib/schema.d.ts.map +1 -0
- package/lib/schema.js +379 -0
- package/lib/schema.js.map +1 -0
- package/lib/types.d.ts +79 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/utils.d.ts +43 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +465 -0
- package/lib/utils.js.map +1 -0
- 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"}
|