graphql-engine/server/src-lib/Hasura/GraphQL/Schema
Antoine Leblanc b9ee669ee1 Improve remote joins collect
### Description

This PR improves the `Collect` module by re-ordering the functions to make clear what is public API and what is internal implementation. Furthermore, it makes use of `traverseOf` and `traverseFields` to reduce duplication. To do so, it also introduces a few more lenses in the rest of the codebase, and uses this opportunity to harmonize some structures that were not following our naming convention.

While the diff is massive, a lot of it is just code moving around; the file is now divided into separate sections:
- entry points: IR types for which we want to run the collection
- internal monadic structure
- internal traversals: functions that do nothing but drill down further
- actual transformations: the three cases where we do actually have work to do: selection sets on which we do want to insert join columns, extract remote relationships... those functions are left unchanged by this PR
- internal helpers

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3863
GitOrigin-RevId: f7cbecfae9eed9737b62acfa5848bfcf9d4651f6
2022-03-10 06:18:48 +00:00
..
Action.hs Nested action joins 2022-03-03 03:44:20 +00:00
Backend.hs Role-invariant schema constructors 2022-02-17 08:17:17 +00:00
BoolExp.hs Role-invariant schema constructors 2022-02-17 08:17:17 +00:00
Build.hs server: Customize root field GraphQL schema descriptions 2022-02-28 07:50:12 +00:00
Common.hs Nested action joins 2022-03-03 03:44:20 +00:00
Instances.hs server: Renames the experimental backend modules 2022-02-25 16:09:17 +00:00
Introspect.hs server: optimize collectTypeDefinitions and refactor 2022-02-24 18:56:22 +00:00
Mutation.hs Improve remote joins collect 2022-03-10 06:18:48 +00:00
OrderBy.hs Role-invariant schema constructors 2022-02-17 08:17:17 +00:00
Postgres.hs server: add support for nested object type in action 2021-12-15 23:52:43 +00:00
Remote.hs Improve remote joins collect 2022-03-10 06:18:48 +00:00
RemoteRelationship.hs Enable remote joins from remote schemas in the execution engine. 2022-03-09 03:18:22 +00:00
RemoteRelationship.hs-boot simplified schema cache representation of remote relationships 2021-12-21 23:15:50 +00:00
Select.hs Replace all occurrences of mapMaybe id by catMaybes. 2022-03-03 20:13:10 +00:00
Table.hs Role-invariant schema constructors 2022-02-17 08:17:17 +00:00
Update.hs Role-invariant schema constructors 2022-02-17 08:17:17 +00:00