Giter Club home page Giter Club logo

Comments (7)

dwhitney avatar dwhitney commented on May 2, 2024 3

Hi, it makes sense to me not to restrict the node's type to ObjectType. Imagine I wanted to serve a list of mammals in a Connection, where some are dogs and some are cats. It makes sense in this case that my nodes are in InterfaceType and not an ObjectType. Without using InterfaceType as I've described, you have to create an ObjectType that bridges the functionality I want -- basically I create an ObjectType that has a field that is an InterfaceType that contains my mammal. It works, but it feels like a hack.

from graphql-relay-js.

dschafer avatar dschafer commented on May 2, 2024

Hm, I feel like you should be able to build connections to things other than object types; @yuzhi, thoughts?

from graphql-relay-js.

yuzhi avatar yuzhi commented on May 2, 2024

Relay currently does not support connection/pagination properly if the node is not an object. Relay does support List of objects or scalars. What's the specific use case?

from graphql-relay-js.

OlegIlyenko avatar OlegIlyenko commented on May 2, 2024

I think the main use-case is to be able to use interface and union types. Also the way it is defined now in the reference implementation implies that nodeType is always nullable. I wonder whether this is intentional?

My main motivation though is that I implemented the same kind of behaviour in sangria-relay previousely and in this particular place it contradicts the spec, so I get questions about it. People also ask whether it is possible to have an interface nodeType.

from graphql-relay-js.

therealcisse avatar therealcisse commented on May 2, 2024

@dwhitney Hi, I have a similar problem, and I tried the solution you proposed using an ObjectType that has a field that is an InterfaceType as my connectionType. However, I still couldn't get it to work.

Here is the error am getting:

"RelayQueryField: Range behavior keys are associated exclusively with connection fields. getRangeBehaviorKey() was called on the non-connection field %s."

Do you have any idea what I am missing? Thanks.

from graphql-relay-js.

itajaja avatar itajaja commented on May 2, 2024

just tested this client side, Relay (at least latest version) is happy with a connection of enums, and probably of interfaces too. I think the signature should change

from graphql-relay-js.

IvanGoncharov avatar IvanGoncharov commented on May 2, 2024

Fixed in #331

from graphql-relay-js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.