Git Product home page Git Product logo

Comments (10)

a-c-sreedhar-reddy avatar a-c-sreedhar-reddy commented on August 10, 2024

Hi @illusionalsagacity, I have not used GraphQL much. So please correct me if I am wrong.

According to the GraphQL spec the client must serialize the value of the scalar type. So it makes sense of graphql-ppx accepting a type Option(Js.Json.t). We might have to to use something like https://rescript-lang.org/docs/manual/v8.0.0/api/js/json#number and pass the result as input.

image

from graphql-ppx.

illusionalsagacity avatar illusionalsagacity commented on August 10, 2024

My expectation was that since we've defined a customFields module for this DateTime scalar, it would be handled by the PPX for both responses and inputs; otherwise why does the module require a serialize function for the custom scalar handling?

https://github.com/reasonml-community/graphql-ppx/blob/ebb140459493f3f440f0c34f7ff3f34632fa1dad/tests_bucklescript/operations/customTypes.re#L48

https://graphql-ppx.com/docs/custom-fields

from graphql-ppx.

a-c-sreedhar-reddy avatar a-c-sreedhar-reddy commented on August 10, 2024

Oh graphql-ppx allows us to provide a decoder! Great. Then I think this is bug.

from graphql-ppx.

jfrolich avatar jfrolich commented on August 10, 2024

Custom fields have not been implemented for input objects indeed! I definitely would welcome a PR if you are up for it.

from graphql-ppx.

illusionalsagacity avatar illusionalsagacity commented on August 10, 2024

Custom fields have not been implemented for input objects indeed! I definitely would welcome a PR if you are up for it.

Any idea on where/what would a starting point for this would be? Looking around in src/base/result_decoder.re at the moment.

from graphql-ppx.

Zimmi48 avatar Zimmi48 commented on August 10, 2024

When using the GitHub GraphQL API, there used to be a workaround: it was possible to use String instead of custom scalars (like GitObjectID) because the types were not enforced. Following a recent update of one of their dependencies, this workaround no longer exists, making the issue more pressing. Check coq/bot#203 for details.

from graphql-ppx.

jfrolich avatar jfrolich commented on August 10, 2024

Custom scalars should be just the JSON type. So if it's a string natively, you need to convert it to a JSON type (YoJson on native, Js.Json.t on ReScript).

from graphql-ppx.

jfrolich avatar jfrolich commented on August 10, 2024

It's actually not related to this issue, and should just work.

from graphql-ppx.

Zimmi48 avatar Zimmi48 commented on August 10, 2024

I meant custom fields in the context of input objects (like you said above had not been implemented yet).

from graphql-ppx.

jfrolich avatar jfrolich commented on August 10, 2024

I meant custom fields in the context of input objects (like you said above had not been implemented yet).

Custom fields are just an ergonomic way to automatically convert custom scalars (or other custom fields). But you can use custom scalars in input objects, you just have to convert to a Json type.

from graphql-ppx.

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.