Skip to content

Commit

Permalink
more fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
nicola-smartive committed Aug 24, 2023
1 parent eb28340 commit 450789f
Showing 1 changed file with 40 additions and 3 deletions.
43 changes: 40 additions & 3 deletions src/schema/generate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,22 @@ export const generateDefinitions = (rawModels: RawModels): DefinitionNode[] => {
...rawModels.filter(isRawEnumModel).map((model) => enm(model.name, model.values)),
...rawModels.filter(isScalarModel).map((model) => scalar(model.name)),
...rawModels.filter(isRawObjectModel).map((model) => object(model.name, model.fields)),
...rawModels
.filter(isRawObjectModel)
.filter((model) =>
models.some(
(m) => m.creatable && m.fields.some((f) => f.creatable && f.type === 'json' && f.typeName === model.name)
)
)
.map((model) => input(`Create${model.name}`, model.fields)),
...rawModels
.filter(isRawObjectModel)
.filter((model) =>
models.some(
(m) => m.creatable && m.fields.some((f) => f.creatable && f.type === 'json' && f.typeName === model.name)
)
)
.map((model) => input(`Update${model.name}`, model.fields)),

...flatMap(
models.map((model) => {
Expand Down Expand Up @@ -110,7 +126,17 @@ export const generateDefinitions = (rawModels: RawModels): DefinitionNode[] => {
.map(({ name, nonNull, list, default: defaultValue, ...field }) =>
field.type === 'relation'
? { name: `${name}Id`, type: 'ID', nonNull }
: { name, type: field.type, list, nonNull: nonNull && defaultValue === undefined }
: {
name,
type:
field.type === 'enum'
? field.typeName
: field.type === 'json'
? `Create${field.typeName}`
: field.type,
list,
nonNull: nonNull && defaultValue === undefined,
}
)
)
);
Expand All @@ -122,8 +148,19 @@ export const generateDefinitions = (rawModels: RawModels): DefinitionNode[] => {
`Update${model.name}`,
model.fields
.filter(({ updatable }) => updatable)
.map(({ name, type, list }) =>
type === 'relation' ? { name: `${name}Id`, type: 'ID' } : { name, type, list }
.map(({ name, list, ...field }) =>
field.type === 'relation'
? { name: `${name}Id`, type: 'ID' }
: {
name,
type:
field.type === 'enum'
? field.typeName
: field.type === 'json'
? `Update${field.typeName}`
: field.type,
list,
}
)
)
);
Expand Down

0 comments on commit 450789f

Please sign in to comment.