Description
Issue workflow progress
Progress of the issue based on the Contributor Workflow
- 1. The issue provides a reproduction available on Github, Stackblitz or CodeSandbox
- 2. A failing test has been provided
- 3. A local solution has been provided
- 4. A pull request is pending review
Describe the bug
Generating a schema from a valid WSDL file results in an error
To Reproduce
Steps to reproduce the behavior:
https://codesandbox.io/s/elegant-cache-jssohs
- Run the project by running the command
npm run dev
- Notice we get the following error when running starting the graphql-mesh server
Mesh - Example1DoesntWork could not resolve input type 'PeriodType'; using GraphQLString 💥 🕸️ Mesh - Example1DoesntWork Failed to generate the schema TypeError: Cannot read properties of undefined (reading 'forEach') at GraphqlInputFieldResolver.appendObjectTypeFields (\graphql-demo\node_modules\@graphql-mesh\soap\index.js:485:25) at GraphqlInputFieldResolver.appendObjectTypeFields (\graphql-demo\node_modules\@graphql-mesh\soap\index.js:491:18) at fields (\graphql-demo\node_modules\@graphql-mesh\soap\index.js:476:18) at resolveObjMapThunk (\graphql-demo\node_modules\graphql\type\definition.js:504:40) at defineInputFieldMap (\graphql-demo\node_modules\graphql\type\definition.js:1313:20) at GraphQLInputObjectType.getFields (\graphql-demo\node_modules\graphql\type\definition.js:1276:27) at collectReferencedTypes (\graphql-demo\node_modules\graphql\type\schema.js:395:51) at collectReferencedTypes (\graphql-demo\node_modules\graphql\type\schema.js:391:11) at new GraphQLSchema (\graphql-demo\node_modules\graphql\type\schema.js:183:7) at soapGraphqlSchema (\graphql-demo\node_modules\@graphql-mesh\soap\index.js:937:12) 💥 🕸️ Mesh - Server Error: Schemas couldn't be generated successfully. Check for the logs by running Mesh with DEBUG=1 environmental variable to get more verbose output. at Object.getMesh (\graphql-demo\node_modules\@graphql-mesh\runtime\index.js:318:15) at processTicksAndRejections (node:internal/process/task_queues:96:5)
- Comment out the first source and uncomment the second source with the name
Example1Works
and run it. It compiles but is unable to create proper types as we can see from the output
💡 🕸️ Mesh - Server Generating the unified schema... ⚠️ 🕸️ Mesh - Example1Works could not resolve output type ' ArrayOfTodoMessage '; using GraphQLJSON instead ⚠️ 🕸️ Mesh - Example1Works could not resolve input type 'FileClass'; using GraphQLString ⚠️ 🕸️ Mesh - Example1Works could not resolve input type 'UpdateClass'; using GraphQLString ⚠️ 🕸️ Mesh - Example1Works could not resolve input type 'TodoMessage'; using GraphQLString
- Comment out the second source and uncomment the third source with the name
Example2-works
and run. It compiles and is able to create the schema/types correctly
The wsdls Example1-doesntwork.wsdl and /Example1-works/Example1-works.wsdl should be the same with the only different being that /Example1-works/Example1-works.wsdl is expanded out into multiple files while the former is all contained in one file
The difference between Example1-doesntwork.wsdl and Example2-works.wsdl is that the type FileClass is assigned a different namespace.
These are all valid WSDL's and soapui is able to create operations with valid schema from them
Expected behavior
GraphQL-mesh soap to create a proper schema/type for all the WSDL examples
Environment:
- OS: Windows 10 pro
@graphql-mesh/...
:- NodeJS: v16.13.0
Additional context