Eduard Boloș
10/20/2022, 10:38 AMEduard Boloș
10/20/2022, 10:38 AMmbonnin
10/20/2022, 10:45 AMmbonnin
10/20/2022, 10:46 AMmbonnin
10/20/2022, 10:47 AMmbonnin
10/20/2022, 10:47 AMEduard Boloș
10/20/2022, 10:48 AMEduard Boloș
10/20/2022, 10:48 AMmbonnin
10/20/2022, 10:49 AMmbonnin
10/20/2022, 10:49 AMmbonnin
10/20/2022, 10:49 AMmbonnin
10/20/2022, 10:50 AMEduard Boloș
10/20/2022, 10:51 AMmbonnin
10/20/2022, 10:52 AMEduard Boloș
10/20/2022, 10:53 AMmbonnin
10/20/2022, 10:59 AMmbonnin
10/20/2022, 11:00 AMmbonnin
10/20/2022, 11:01 AMSchema.possibleTypes()
to loop through possible interface typesmbonnin
10/20/2022, 11:02 AMmbonnin
10/20/2022, 11:02 AMEduard Boloș
10/20/2022, 12:19 PMpossibleTypes()
is only used by the DefaultFakeResolver
in resolveTypename()
. wouldn't it be feasible to have only the used types then? or am I missing something?mbonnin
10/20/2022, 12:20 PMmbonnin
10/20/2022, 12:21 PMalwaysGenerateTypesMatching
). I'll make a PR to remove thisEduard Boloș
10/20/2022, 12:21 PMmbonnin
10/20/2022, 12:22 PMEduard Boloș
10/20/2022, 12:25 PMmbonnin
10/20/2022, 12:51 PMmbonnin
10/20/2022, 12:51 PMEduard Boloș
10/20/2022, 12:56 PMmbonnin
10/20/2022, 12:57 PMEduard Boloș
10/20/2022, 3:13 PMSchema
still contains all the types, including the ones that are not used. Not sure why, but it looks like this won't help 😞mbonnin
10/20/2022, 4:03 PMNode
interface or so that almost every object implements?Eduard Boloș
10/20/2022, 4:08 PMNode
interface, but only 7 of our types implement itmbonnin
10/20/2022, 4:09 PMmbonnin
10/20/2022, 4:10 PM{
node {
id
# more fields
}
}
Eduard Boloș
10/20/2022, 4:10 PMEduard Boloș
10/20/2022, 4:10 PMmbonnin
10/20/2022, 4:11 PMData {
node = buildCat {
}
// or
node = buildDog {
}
// etc, for all types
}
mbonnin
10/20/2022, 4:12 PMEduard Boloș
10/20/2022, 4:15 PMMutation
and Query
types basically include all the operations with all the types?mbonnin
10/20/2022, 4:16 PMEduard Boloș
10/20/2022, 4:18 PMQuery.type
being used in the Query<>
classes.
public override fun rootField(): CompiledField = CompiledField.Builder(
name = "data",
type = com.wave.backend.type.Query.type
)
We use the compat
codegen method, in case it makes a difference.mbonnin
10/20/2022, 4:19 PMWe use theit shouldn'tcodegen method, in case it makes a difference.compat
mbonnin
10/20/2022, 4:21 PMmbonnin
10/20/2022, 4:22 PMI can seebeing used in theQuery.type
classesQuery<>
Query
and Mutation
will always be generatedEduard Boloș
10/20/2022, 4:24 PMmbonnin
10/20/2022, 4:26 PMmbonnin
10/20/2022, 4:26 PMmbonnin
10/20/2022, 4:26 PMMutation
and Query
types basically include all the operations with all the types? (embonnin
10/20/2022, 4:26 PMmbonnin
10/20/2022, 4:28 PMmbonnin
10/20/2022, 4:29 PMEduard Boloș
10/20/2022, 4:33 PMmbonnin
10/20/2022, 4:36 PMmbonnin
10/20/2022, 4:37 PMmbonnin
10/20/2022, 4:46 PMEduard Boloș
10/20/2022, 4:47 PMmbonnin
10/21/2022, 12:06 PMmbonnin
10/21/2022, 12:07 PMmbonnin
10/21/2022, 12:07 PMmbonnin
10/21/2022, 12:11 PMEduard Boloș
10/21/2022, 12:11 PMEduard Boloș
10/21/2022, 12:13 PMmbonnin
10/21/2022, 12:18 PMmbonnin
10/21/2022, 12:47 PMmbonnin
10/21/2022, 12:48 PMEduard Boloș
10/21/2022, 1:00 PMEduard Boloș
10/21/2022, 1:01 PMEduard Boloș
10/21/2022, 1:01 PMmbonnin
10/21/2022, 1:01 PMmbonnin
10/21/2022, 1:02 PMEduard Boloș
10/21/2022, 1:02 PMEduard Boloș
10/21/2022, 1:02 PMmbonnin
10/21/2022, 1:03 PMEduard Boloș
10/21/2022, 1:03 PMmbonnin
10/21/2022, 1:04 PMmbonnin
10/21/2022, 1:04 PMmbonnin
10/21/2022, 1:05 PMUser
in the schema
module and using User.firstName
therembonnin
10/21/2022, 1:05 PMUser.lastName
in the feature1
module...mbonnin
10/21/2022, 1:07 PMEduard Boloș
10/21/2022, 1:07 PMUserBuilder
doesn't contain a lastName
field 🙃mbonnin
10/21/2022, 1:07 PMmbonnin
10/21/2022, 1:08 PMtrack field usages accross all modules...That means we configure and run codegen in all modules. Kindof defeats the isolation benefit of modules 😕
Eduard Boloș
10/21/2022, 1:08 PMmbonnin
10/21/2022, 1:10 PMfeature1
might trigger a recompilation in feature2
mbonnin
10/21/2022, 1:31 PMmbonnin
10/21/2022, 1:32 PMmbonnin
10/24/2022, 2:02 PMEduard Boloș
10/25/2022, 9:52 AMEduard Boloș
11/10/2022, 10:09 AMmbonnin
11/10/2022, 10:19 AMmbonnin
11/10/2022, 10:20 AMmbonnin
11/10/2022, 10:21 AMusedCoordinates
turned out. It's a lot of manual Gradle configuration. I'm currently looking into ways to make this process a bit more smooth (you currently have to doubly link the schema and feature modules)mbonnin
11/10/2022, 10:22 AMmbonnin
11/10/2022, 10:22 AMEduard Boloș
11/10/2022, 10:29 AM