Skip to content

Commit f6bda5b

Browse files
committed
Fixes: Styling and naming of manyToMany intermediate model
1 parent 7343f15 commit f6bda5b

File tree

3 files changed

+8
-9
lines changed

3 files changed

+8
-9
lines changed

packages/amplify-codegen/src/commands/models.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,11 @@ const readFeatureFlag = key => {
3535
* @returns
3636
*/
3737
const readNumericFeatureFlag = key => {
38-
let flagValue = false;
3938
try {
40-
flagValue = FeatureFlags.getNumber(key);
39+
return FeatureFlags.getNumber(key);
4140
} catch (err) {
42-
flagValue = 1;
41+
return 1;
4342
}
44-
return flagValue;
4543
};
4644

4745
async function generateModels(context) {

packages/appsync-modelgen-plugin/src/preset.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Kind, TypeDefinitionNode } from 'graphql';
33
import { join } from 'path';
44
import { JAVA_SCALAR_MAP, SWIFT_SCALAR_MAP, TYPESCRIPT_SCALAR_MAP, DART_SCALAR_MAP } from './scalars';
55
import { LOADER_CLASS_NAME, GENERATED_PACKAGE_NAME } from './configs/java-config';
6+
import { graphqlName, toUpper } from 'graphql-transformer-common';
67

78
const APPSYNC_DATA_STORE_CODEGEN_TARGETS = ['java', 'swift', 'javascript', 'typescript', 'dart'];
89

@@ -225,10 +226,9 @@ const generateManyToManyModelStubs = (options: Types.PresetFnArgs<AppSyncModelCo
225226
def?.fields?.forEach(field => {
226227
field?.directives?.forEach(dir => {
227228
if (dir?.name?.value === 'manyToMany') {
228-
//manyToManySet.add(dir?.arguments?.relationName);
229229
dir?.arguments?.forEach(arg => {
230230
if(arg.name.value === 'relationName' && arg.value.kind === 'StringValue') {
231-
manyToManySet.add(arg.value.value);
231+
manyToManySet.add(graphqlName(toUpper(arg.value.value)));
232232
}
233233
});
234234
}

packages/appsync-modelgen-plugin/src/visitors/appsync-visitor.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { sortFields } from '../utils/sort';
2828
import { printWarning } from '../utils/warn';
2929
import { processAuthDirective } from '../utils/process-auth';
3030
import { processConnectionsV2 } from '../utils/process-connections-v2';
31+
import { graphqlName, toUpper } from 'graphql-transformer-common';
3132

3233
export enum CodeGenGenerateEnum {
3334
metadata = 'metadata',
@@ -603,7 +604,7 @@ export class AppSyncModelVisitor<
603604
let directiveIndex = context.field.directives.indexOf(context.directive, 0);
604605
if (directiveIndex > -1) {
605606
context.field.directives.splice(directiveIndex, 1);
606-
context.field.type = context.directive.arguments.relationName;
607+
context.field.type = graphqlName(toUpper(context.directive.arguments.relationName));
607608
context.field.directives.push({
608609
name: 'hasMany',
609610
arguments: { indexName: `by${context.model.name}`, fields: [this.determinePrimaryKeyFieldname(context.model)] }
@@ -622,7 +623,7 @@ export class AppSyncModelVisitor<
622623
model.fields.forEach(field => {
623624
field.directives.forEach(dir => {
624625
if(dir.name === 'manyToMany') {
625-
let relationName = dir.arguments.relationName;
626+
let relationName = graphqlName(toUpper(dir.arguments.relationName));
626627
let existingRelation = manyDirectiveMap.get(relationName);
627628
if (existingRelation) {
628629
existingRelation.push({ model: model, field: field, directive: dir });
@@ -640,7 +641,7 @@ export class AppSyncModelVisitor<
640641
if (value.length != 2) {
641642
throw new Error(`Error for relation: '${value[0].directive.arguments.relationName}', there should be two matching manyToMany directives and found: ${value.length}`);
642643
}
643-
let intermediateModel = this.generateIntermediateModel(value[0].model, value[1].model, value[0].field, value[1].field, value[0].directive.arguments.relationName);
644+
let intermediateModel = this.generateIntermediateModel(value[0].model, value[1].model, value[0].field, value[1].field, graphqlName(toUpper(value[0].directive.arguments.relationName)));
644645
const modelDirective = intermediateModel.directives.find(directive => directive.name === 'model');
645646
if(modelDirective) {
646647
this.ensureIdField(intermediateModel);

0 commit comments

Comments
 (0)