@aws-amplify/graphql-relational-transformer
Advanced tools
Comparing version 0.3.0-auth-dir-v-next.5 to 0.3.0-headless-s3-not-for-production.0
@@ -6,8 +6,8 @@ # Change Log | ||
# [0.3.0-auth-dir-v-next.5](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.4...@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.5) (2021-09-21) | ||
# [0.3.0-headless-s3-not-for-production.0](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-relational-transformer@0.2.1...@aws-amplify/graphql-relational-transformer@0.3.0-headless-s3-not-for-production.0) (2021-09-22) | ||
### Bug Fixes | ||
### Features | ||
* iam resolver check and relational payload ([#8234](https://github.com/aws-amplify/amplify-cli/issues/8234)) ([74ccef0](https://github.com/aws-amplify/amplify-cli/commit/74ccef041a22e92a501f2cedd3bacb4f5bfc1cc6)) | ||
* add [@many](https://github.com/many)ToMany directive ([#8195](https://github.com/aws-amplify/amplify-cli/issues/8195)) ([cc644eb](https://github.com/aws-amplify/amplify-cli/commit/cc644ebc4968f29ad6b3f0b42013d7ee6a142f7e)) | ||
@@ -18,16 +18,4 @@ | ||
# [0.3.0-auth-dir-v-next.4](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.3...@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.4) (2021-09-15) | ||
## [0.2.1](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-relational-transformer@0.2.0...@aws-amplify/graphql-relational-transformer@0.2.1) (2021-09-14) | ||
### Bug Fixes | ||
* udpated snapshot for index and relation directives ([e9bc4af](https://github.com/aws-amplify/amplify-cli/commit/e9bc4af9926ec4219c2af12c9ebced04e5ea2574)) | ||
* update hasMany to use join table name, sync config warning, updated unit test ([7863044](https://github.com/aws-amplify/amplify-cli/commit/78630446a7195a4d51ffdf433b173598d70dbaa3)) | ||
# [0.3.0-auth-dir-v-next.3](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.2...@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.3) (2021-09-15) | ||
**Note:** Version bump only for package @aws-amplify/graphql-relational-transformer | ||
@@ -39,37 +27,2 @@ | ||
# [0.3.0-auth-dir-v-next.2](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.1...@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.2) (2021-09-14) | ||
### Bug Fixes | ||
* **graphql-model-transformer:** use hasAuth flag when sandbox mode is disabled ([#8179](https://github.com/aws-amplify/amplify-cli/issues/8179)) ([727bb6f](https://github.com/aws-amplify/amplify-cli/commit/727bb6ff8c726669f358e5d61fe895229bd7a6a4)) | ||
# [0.3.0-auth-dir-v-next.1](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-relational-transformer@0.2.0...@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.1) (2021-09-14) | ||
### Features | ||
* graphql auth v2 add auth on mutation and subscription resolvers ([acaff15](https://github.com/aws-amplify/amplify-cli/commit/acaff150efa7da285330e718aaf3fc36cae465d8)) | ||
* **graphql-model-transformer:** set up transformer for sandbox mode directive ([#8138](https://github.com/aws-amplify/amplify-cli/issues/8138)) ([e805311](https://github.com/aws-amplify/amplify-cli/commit/e805311d80393afef7e0bc7ad757b51706e7a3bf)) | ||
# [0.3.0-auth-dir-v-next.0](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-relational-transformer@0.2.0...@aws-amplify/graphql-relational-transformer@0.3.0-auth-dir-v-next.0) (2021-09-14) | ||
### Features | ||
* graphql auth v2 add auth on mutation and subscription resolvers ([acaff15](https://github.com/aws-amplify/amplify-cli/commit/acaff150efa7da285330e718aaf3fc36cae465d8)) | ||
* **graphql-model-transformer:** set up transformer for sandbox mode directive ([#8138](https://github.com/aws-amplify/amplify-cli/issues/8138)) ([e805311](https://github.com/aws-amplify/amplify-cli/commit/e805311d80393afef7e0bc7ad757b51706e7a3bf)) | ||
# 0.2.0 (2021-09-02) | ||
@@ -76,0 +29,0 @@ |
export { HasOneTransformer } from './graphql-has-one-transformer'; | ||
export { HasManyTransformer } from './graphql-has-many-transformer'; | ||
export { BelongsToTransformer } from './graphql-belongs-to-transformer'; | ||
export { ManyToManyTransformer } from './graphql-many-to-many-transformer'; | ||
//# sourceMappingURL=index.d.ts.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.BelongsToTransformer = exports.HasManyTransformer = exports.HasOneTransformer = void 0; | ||
exports.ManyToManyTransformer = exports.BelongsToTransformer = exports.HasManyTransformer = exports.HasOneTransformer = void 0; | ||
var graphql_has_one_transformer_1 = require("./graphql-has-one-transformer"); | ||
@@ -10,2 +10,4 @@ Object.defineProperty(exports, "HasOneTransformer", { enumerable: true, get: function () { return graphql_has_one_transformer_1.HasOneTransformer; } }); | ||
Object.defineProperty(exports, "BelongsToTransformer", { enumerable: true, get: function () { return graphql_belongs_to_transformer_1.BelongsToTransformer; } }); | ||
var graphql_many_to_many_transformer_1 = require("./graphql-many-to-many-transformer"); | ||
Object.defineProperty(exports, "ManyToManyTransformer", { enumerable: true, get: function () { return graphql_many_to_many_transformer_1.ManyToManyTransformer; } }); | ||
//# sourceMappingURL=index.js.map |
@@ -32,3 +32,2 @@ "use strict"; | ||
const utils_1 = require("./utils"); | ||
const authFilter = graphql_mapping_template_1.ref('ctx.stash.authFilter'); | ||
function makeGetItemConnectionWithKeyResolver(config, ctx) { | ||
@@ -42,5 +41,4 @@ const { connectionFields, field, fields, object, relatedType, relatedTypeIndex } = config; | ||
const partitionKeyName = keySchema[0].attributeName; | ||
let totalExpressions = [`${partitionKeyName} = :${partitionKeyName}`]; | ||
let totalExpressionValues = { | ||
[`:${partitionKeyName}`]: graphql_mapping_template_1.ref(`util.parseJson($util.dynamodb.toDynamoDBJson($util.defaultIfNullOrBlank($ctx.source.${localFields[0]}, "${graphql_transformer_common_1.NONE_VALUE}")))`), | ||
const keyObj = { | ||
[partitionKeyName]: graphql_mapping_template_1.ref(`util.dynamodb.toDynamoDBJson($util.defaultIfNullOrBlank($ctx.source.${localFields[0]}, "${graphql_transformer_common_1.NONE_VALUE}"))`), | ||
}; | ||
@@ -51,24 +49,13 @@ if (relatedTypeIndex.length > 2) { | ||
const condensedSortKeyValue = condenseRangeKey(rangeKeyFields.map(keyField => `\${ctx.source.${keyField}}`)); | ||
totalExpressions.push(`${sortKeyName} = :${sortKeyName}`); | ||
totalExpressionValues[`:${sortKeyName}`] = graphql_mapping_template_1.ref(`util.parseJson($util.dynamodb.toDynamoDBJson($util.defaultIfNullOrBlank("${condensedSortKeyValue}", "${graphql_transformer_common_1.NONE_VALUE}")))`); | ||
keyObj[sortKeyName] = graphql_mapping_template_1.ref(`util.dynamodb.toDynamoDBJson($util.defaultIfNullOrBlank("${condensedSortKeyValue}", "${graphql_transformer_common_1.NONE_VALUE}"))`); | ||
} | ||
else if (relatedTypeIndex.length === 2) { | ||
const sortKeyName = keySchema[1].attributeName; | ||
totalExpressions.push(`${sortKeyName} = :${sortKeyName}`); | ||
totalExpressionValues[`:${sortKeyName}`] = graphql_mapping_template_1.ref(`util.parseJson($util.dynamodb.toDynamoDBJson($util.defaultIfNullOrBlank($ctx.source.${localFields[1]}, "${graphql_transformer_common_1.NONE_VALUE}")))`); | ||
keyObj[sortKeyName] = graphql_mapping_template_1.ref(`util.dynamodb.toDynamoDBJson($util.defaultIfNullOrBlank($ctx.source.${localFields[1]}, "${graphql_transformer_common_1.NONE_VALUE}"))`); | ||
} | ||
const resolver = ctx.resolvers.generateQueryResolver(object.name.value, field.name.value, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(graphql_mapping_template_1.print(graphql_mapping_template_1.ifElse(graphql_mapping_template_1.or(localFields.map(f => graphql_mapping_template_1.raw(`$util.isNull($ctx.source.${f})`))), graphql_mapping_template_1.raw('#return'), graphql_mapping_template_1.compoundExpression([ | ||
graphql_mapping_template_1.set(graphql_mapping_template_1.ref('GetRequest'), graphql_mapping_template_1.obj({ version: graphql_mapping_template_1.str('2018-05-29'), operation: graphql_mapping_template_1.str('Query') })), | ||
graphql_mapping_template_1.qref(graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('GetRequest.put'), graphql_mapping_template_1.str('query'), graphql_mapping_template_1.obj({ | ||
expression: graphql_mapping_template_1.str(totalExpressions.join(' AND ')), | ||
expressionValues: graphql_mapping_template_1.obj(totalExpressionValues), | ||
}))), | ||
graphql_mapping_template_1.iff(graphql_mapping_template_1.not(graphql_mapping_template_1.isNullOrEmpty(authFilter)), graphql_mapping_template_1.qref(graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('GetRequest.put'), graphql_mapping_template_1.str('filter'), graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('util.parseJson'), graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('util.transform.toDynamoDBFilterExpression'), authFilter))))), | ||
graphql_mapping_template_1.toJson(graphql_mapping_template_1.ref('GetRequest')), | ||
]))), `${object.name.value}.${field.name.value}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(graphql_mapping_template_1.print(graphql_mapping_template_1.DynamoDBMappingTemplate.dynamoDBResponse(false, graphql_mapping_template_1.compoundExpression([ | ||
graphql_mapping_template_1.ifElse(graphql_mapping_template_1.and([graphql_mapping_template_1.not(graphql_mapping_template_1.ref('ctx.result.items.isEmpty()')), graphql_mapping_template_1.equals(graphql_mapping_template_1.ref('ctx.result.scannedCount'), graphql_mapping_template_1.int(1))]), graphql_mapping_template_1.toJson(graphql_mapping_template_1.ref('ctx.result.items[0]')), graphql_mapping_template_1.compoundExpression([ | ||
graphql_mapping_template_1.iff(graphql_mapping_template_1.and([graphql_mapping_template_1.ref('ctx.result.items.isEmpty()'), graphql_mapping_template_1.equals(graphql_mapping_template_1.ref('ctx.result.scannedCount'), graphql_mapping_template_1.int(1))]), graphql_mapping_template_1.ref('util.unauthorized()')), | ||
graphql_mapping_template_1.toJson(graphql_mapping_template_1.nul()), | ||
])), | ||
]))), `${object.name.value}.${field.name.value}.res.vtl`)); | ||
graphql_mapping_template_1.DynamoDBMappingTemplate.getItem({ | ||
key: graphql_mapping_template_1.obj(keyObj), | ||
}), | ||
]))), `${object.name.value}.${field.name.value}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(graphql_mapping_template_1.print(graphql_mapping_template_1.DynamoDBMappingTemplate.dynamoDBResponse(false)), `${object.name.value}.${field.name.value}.res.vtl`)); | ||
resolver.mapToStack(table.stack); | ||
@@ -100,16 +87,6 @@ ctx.resolvers.addResolver(object.name.value, field.name.value, resolver); | ||
} | ||
setup.push(graphql_mapping_template_1.ifElse(graphql_mapping_template_1.not(graphql_mapping_template_1.isNullOrEmpty(authFilter)), graphql_mapping_template_1.compoundExpression([ | ||
graphql_mapping_template_1.set(graphql_mapping_template_1.ref('filter'), authFilter), | ||
graphql_mapping_template_1.iff(graphql_mapping_template_1.not(graphql_mapping_template_1.isNullOrEmpty(graphql_mapping_template_1.ref('ctx.args.filter'))), graphql_mapping_template_1.set(graphql_mapping_template_1.ref('filter'), graphql_mapping_template_1.list([graphql_mapping_template_1.obj({ and: graphql_mapping_template_1.list([graphql_mapping_template_1.ref('filter'), graphql_mapping_template_1.ref('ctx.args.filter')]) })]))), | ||
]), graphql_mapping_template_1.iff(graphql_mapping_template_1.not(graphql_mapping_template_1.isNullOrEmpty(graphql_mapping_template_1.ref('ctx.args.filter'))), graphql_mapping_template_1.set(graphql_mapping_template_1.ref('filter'), graphql_mapping_template_1.ref('ctx.args.filter')))), graphql_mapping_template_1.iff(graphql_mapping_template_1.not(graphql_mapping_template_1.isNullOrEmpty(graphql_mapping_template_1.ref('filter'))), graphql_mapping_template_1.compoundExpression([ | ||
graphql_mapping_template_1.set(graphql_mapping_template_1.ref(`filterExpression`), graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('util.parseJson'), graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('util.transform.toDynamoDBFilterExpression'), graphql_mapping_template_1.ref('filter')))), | ||
graphql_mapping_template_1.iff(graphql_mapping_template_1.not(graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('util.isNullOrBlank'), graphql_mapping_template_1.ref('filterExpression.expression'))), graphql_mapping_template_1.compoundExpression([ | ||
graphql_mapping_template_1.iff(graphql_mapping_template_1.equals(graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('filterEpression.expressionValues.size')), graphql_mapping_template_1.int(0)), graphql_mapping_template_1.qref(graphql_mapping_template_1.methodCall(graphql_mapping_template_1.ref('filterEpression.remove'), graphql_mapping_template_1.str('expressionValues')))), | ||
graphql_mapping_template_1.set(graphql_mapping_template_1.ref('filter'), graphql_mapping_template_1.ref('filterExpression')), | ||
])), | ||
]))); | ||
const queryArguments = { | ||
query: graphql_mapping_template_1.raw('$util.toJson($query)'), | ||
scanIndexForward: graphql_mapping_template_1.ifElse(graphql_mapping_template_1.ref('context.args.sortDirection'), graphql_mapping_template_1.ifElse(graphql_mapping_template_1.equals(graphql_mapping_template_1.ref('context.args.sortDirection'), graphql_mapping_template_1.str('ASC')), graphql_mapping_template_1.bool(true), graphql_mapping_template_1.bool(false)), graphql_mapping_template_1.bool(true)), | ||
filter: graphql_mapping_template_1.ifElse(graphql_mapping_template_1.ref('filter'), graphql_mapping_template_1.ref('util.toJson($filter)'), graphql_mapping_template_1.nul()), | ||
filter: graphql_mapping_template_1.ifElse(graphql_mapping_template_1.ref('context.args.filter'), graphql_mapping_template_1.ref('util.transform.toDynamoDBFilterExpression($ctx.args.filter)'), graphql_mapping_template_1.nul()), | ||
limit: graphql_mapping_template_1.ref('limit'), | ||
@@ -116,0 +93,0 @@ nextToken: graphql_mapping_template_1.ifElse(graphql_mapping_template_1.ref('context.args.nextToken'), graphql_mapping_template_1.ref('util.toJson($context.args.nextToken)'), graphql_mapping_template_1.nul()), |
import { TransformerContextProvider } from '@aws-amplify/graphql-transformer-interfaces'; | ||
import { HasManyDirectiveConfiguration, HasOneDirectiveConfiguration } from './types'; | ||
import { FieldDefinitionNode, ObjectTypeDefinitionNode } from 'graphql'; | ||
import { HasManyDirectiveConfiguration, HasOneDirectiveConfiguration, ManyToManyDirectiveConfiguration } from './types'; | ||
export declare function extendTypeWithConnection(config: HasManyDirectiveConfiguration, ctx: TransformerContextProvider): void; | ||
export declare function ensureHasOneConnectionField(config: HasOneDirectiveConfiguration, ctx: TransformerContextProvider): void; | ||
export declare function ensureHasManyConnectionField(config: HasManyDirectiveConfiguration, ctx: TransformerContextProvider): void; | ||
export declare function ensureHasManyConnectionField(config: HasManyDirectiveConfiguration | ManyToManyDirectiveConfiguration, ctx: TransformerContextProvider): void; | ||
export declare function getPartitionKeyField(object: ObjectTypeDefinitionNode): FieldDefinitionNode; | ||
//# sourceMappingURL=schema.d.ts.map |
@@ -6,3 +6,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ensureHasManyConnectionField = exports.ensureHasOneConnectionField = exports.extendTypeWithConnection = void 0; | ||
exports.getPartitionKeyField = exports.ensureHasManyConnectionField = exports.ensureHasOneConnectionField = exports.extendTypeWithConnection = void 0; | ||
const assert_1 = __importDefault(require("assert")); | ||
@@ -42,3 +42,3 @@ const graphql_model_transformer_1 = require("@aws-amplify/graphql-model-transformer"); | ||
connectionTypeExtension = graphql_transformer_common_1.extensionWithFields(connectionTypeExtension, [ | ||
graphql_transformer_common_1.makeField('items', [], graphql_transformer_common_1.makeListType(graphql_transformer_common_1.makeNamedType(relatedType.name.value))), | ||
graphql_transformer_common_1.makeField('items', [], graphql_transformer_common_1.makeListType(graphql_transformer_common_1.makeNamedType(tableXConnectionName))), | ||
]); | ||
@@ -232,2 +232,17 @@ connectionTypeExtension = graphql_transformer_common_1.extensionWithFields(connectionTypeExtension, [graphql_transformer_common_1.makeField('nextToken', [], graphql_transformer_common_1.makeNamedType('String'))]); | ||
} | ||
function getPartitionKeyField(object) { | ||
const fieldMap = new Map(); | ||
let name = 'id'; | ||
for (const field of object.fields) { | ||
fieldMap.set(field.name.value, field); | ||
for (const directive of field.directives) { | ||
if (directive.name.value === 'primaryKey') { | ||
name = field.name.value; | ||
break; | ||
} | ||
} | ||
} | ||
return fieldMap.get(name); | ||
} | ||
exports.getPartitionKeyField = getPartitionKeyField; | ||
//# sourceMappingURL=schema.js.map |
@@ -37,2 +37,21 @@ import { DirectiveNode, FieldDefinitionNode, ObjectTypeDefinitionNode } from 'graphql'; | ||
}; | ||
export declare type ManyToManyDirectiveConfiguration = { | ||
directiveName: string; | ||
object: ObjectTypeDefinitionNode; | ||
field: FieldDefinitionNode; | ||
directive: DirectiveNode; | ||
relationName: string; | ||
indexName: string; | ||
fields: string[]; | ||
fieldNodes: FieldDefinitionNode[]; | ||
relatedType: ObjectTypeDefinitionNode; | ||
relatedTypeIndex: FieldDefinitionNode[]; | ||
connectionFields: string[]; | ||
limit: number; | ||
}; | ||
export declare type ManyToManyRelation = { | ||
name: string; | ||
directive1: ManyToManyDirectiveConfiguration; | ||
directive2: ManyToManyDirectiveConfiguration; | ||
}; | ||
//# sourceMappingURL=types.d.ts.map |
import { TransformerContextProvider } from '@aws-amplify/graphql-transformer-interfaces'; | ||
import { DirectiveNode, FieldDefinitionNode, ObjectTypeDefinitionNode } from 'graphql'; | ||
import { BelongsToDirectiveConfiguration, HasManyDirectiveConfiguration, HasOneDirectiveConfiguration } from './types'; | ||
import { BelongsToDirectiveConfiguration, HasManyDirectiveConfiguration, HasOneDirectiveConfiguration, ManyToManyDirectiveConfiguration } from './types'; | ||
export declare function getRelatedTypeIndex(config: HasOneDirectiveConfiguration, ctx: TransformerContextProvider, indexName?: string): FieldDefinitionNode[]; | ||
export declare function ensureFieldsArray(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration): void; | ||
export declare function getModelDirective(objectType: ObjectTypeDefinitionNode): DirectiveNode | undefined; | ||
export declare function validateModelDirective(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration): void; | ||
export declare function validateModelDirective(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration | ManyToManyDirectiveConfiguration): void; | ||
export declare function getRelatedType(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration, ctx: TransformerContextProvider): ObjectTypeDefinitionNode; | ||
@@ -9,0 +9,0 @@ export declare function getFieldsNodes(config: HasManyDirectiveConfiguration | HasOneDirectiveConfiguration | BelongsToDirectiveConfiguration, ctx: TransformerContextProvider): FieldDefinitionNode[]; |
{ | ||
"name": "@aws-amplify/graphql-relational-transformer", | ||
"version": "0.3.0-auth-dir-v-next.5", | ||
"version": "0.3.0-headless-s3-not-for-production.0", | ||
"description": "Amplify GraphQL relational modeling transformers", | ||
@@ -30,4 +30,6 @@ "repository": { | ||
"dependencies": { | ||
"@aws-amplify/graphql-transformer-core": "0.10.0-auth-dir-v-next.3", | ||
"@aws-amplify/graphql-transformer-interfaces": "1.10.0-auth-dir-v-next.1", | ||
"@aws-amplify/graphql-index-transformer": "0.3.3-headless-s3-not-for-production.0", | ||
"@aws-amplify/graphql-model-transformer": "0.6.3-headless-s3-not-for-production.0", | ||
"@aws-amplify/graphql-transformer-core": "0.9.1-headless-s3-not-for-production.0", | ||
"@aws-amplify/graphql-transformer-interfaces": "1.9.1-headless-s3-not-for-production.0", | ||
"@aws-cdk/aws-appsync": "~1.119.0", | ||
@@ -37,8 +39,6 @@ "@aws-cdk/aws-dynamodb": "~1.119.0", | ||
"graphql": "^14.5.8", | ||
"graphql-mapping-template": "4.19.0-auth-dir-v-next.1", | ||
"graphql-transformer-common": "4.19.10-auth-dir-v-next.1" | ||
"graphql-mapping-template": "4.18.3", | ||
"graphql-transformer-common": "4.19.9" | ||
}, | ||
"devDependencies": { | ||
"@aws-amplify/graphql-index-transformer": "0.4.0-auth-dir-v-next.4", | ||
"@aws-amplify/graphql-model-transformer": "0.7.0-auth-dir-v-next.4", | ||
"@aws-cdk/assert": "~1.119.0" | ||
@@ -61,3 +61,3 @@ }, | ||
}, | ||
"gitHead": "6e94f050d76b9fa4061e355e655946ab8dfd5164" | ||
"gitHead": "633fe35382bff0520a342b58bef3647ab07ee8f2" | ||
} |
@@ -34,1 +34,11 @@ # GraphQL Relational Modeling Transformers | ||
``` | ||
### @manyToMany | ||
The `@manyToMany` directive allows you to define "many to many" relationships between data. | ||
#### Definition | ||
```graphql | ||
directive @manyToMany(relationName: String!, limit: Int = 100) on FIELD_DEFINITION | ||
``` |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
117942
1
40
1047
44
10
+ Added@aws-amplify/graphql-index-transformer@0.3.3-headless-s3-not-for-production.0
+ Added@aws-amplify/graphql-model-transformer@0.6.3-headless-s3-not-for-production.0
+ Added@aws-amplify/graphql-index-transformer@0.3.3-headless-s3-not-for-production.0(transitive)
+ Added@aws-amplify/graphql-model-transformer@0.6.3-headless-s3-not-for-production.0(transitive)
+ Added@aws-amplify/graphql-transformer-core@0.9.1-headless-s3-not-for-production.0(transitive)
+ Added@aws-amplify/graphql-transformer-interfaces@1.9.1-headless-s3-not-for-production.0(transitive)
+ Addedgraphql-mapping-template@4.18.3(transitive)
+ Addedgraphql-transformer-common@4.19.9(transitive)
- Removed@aws-amplify/graphql-transformer-core@0.10.0-auth-dir-v-next.3(transitive)
- Removed@aws-amplify/graphql-transformer-interfaces@1.10.0-auth-dir-v-next.1(transitive)
- Removedgraphql-mapping-template@4.19.0-auth-dir-v-next.1(transitive)
- Removedgraphql-transformer-common@4.19.10-auth-dir-v-next.1(transitive)
Updated@aws-amplify/graphql-transformer-core@0.9.1-headless-s3-not-for-production.0
Updated@aws-amplify/graphql-transformer-interfaces@1.9.1-headless-s3-not-for-production.0