graphile / graphile/graphile.github.io

Fix relation snippet in why-nullable

Offen
#69 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
important quick
Vorherrschende Sprache
SCSS
Sterne
27
Forks
126
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

https://www.graphile.org/postgraphile/why-nullable/

Currently the snippet (incorrectly) marks all relations as non-nullable. Should only apply if the columns themselves are non-nullable.

Something like this: (needs testing)

```js
module.exports = function NonNullRelationsPlugin(builder) {
builder.hook('GraphQLObjectType:fields:field', (field, build, context) => {
const { isPgForwardRelationField, pgFieldIntrospection } = context.scope;
if (isPgForwardRelationField) {
const linkedAttributeNums = pgFieldIntrospection.keyAttributeNums;
const relationIsNotNull = pgFieldIntrospection.class.attributes.filter(
attr => linkedAttributeNums.indexOf(attr.num) >= 0
).every(attr => attr.isNotNull || attr.type.domainIsNotNull);

if (relationIsNotNull) {
return {
...field,
type: new build.graphql.GraphQLNonNull(field.type),
};
}
}

return field;
});
};
```

HT @enisdenjo

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.