yarax / swagger-to-graphql

Swagger to GraphQL API adapter
MIT License
924 stars 150 forks source link

Polymorphism issue #36

Open olivierodo opened 7 years ago

olivierodo commented 7 years ago

Hi, On my swagger file i use the property allOf to do Polymorphism (see : https://swagger.io/specification/#models-with-composition-108) in one of my definition.

Here a sample:

Payment:
  title: Payment
  description: Payment transaction
  allOf:
    - $ref: '#/NewPayment'
    - type: object
      required:
        - paymentId
      properties:
        paymentId:
          type: number
          example: 42
          description: The unique identifier of a payment transaction on the system

I believe that the case is not managed i got an error

[Error: Cannot build primitive type "undefined"]

its working fine when i remove it.

BTW, Amazing project/idea !

yarax commented 7 years ago

Right, it's not implemented, but a good feature request. Will consider it in the next version, thanks!

LGLC commented 6 years ago

I forked the repo and had a little go at this here: https://github.com/yarax/swagger-to-graphql/pull/41/files

Note that I actually copied in the current published npm version and overwrote the master version, so there are other items in the diff. The main functionality is just the changes in the swagger.js file and the isObjectType function within typeMap.js.

ehmicky commented 6 years ago

I think the discriminator property might be involved in this as well. See #61

marturi commented 4 years ago

Hi @yarax - what is the status of this feature request? Looks like @LGLC's PR was a good solution before the TS rewrite. Would it be difficult to implement that same logic in TS?