Skip to content

Commit a4b7bfc

Browse files
author
Viktor Tochonov
committed
Changed comments in buildTypeDiscriminatorCheck
1 parent fd37e4a commit a4b7bfc

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

src/FSharp.Data.GraphQL.Server.Middleware/ObjectListFilter.fs

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -193,22 +193,37 @@ module ObjectListFilter =
193193
let buildTypeDiscriminatorCheck (param : SourceExpression) (t : Type) =
194194
match options.CompareDiscriminator, options.GetDiscriminatorValue with
195195
| ValueNone, ValueNone ->
196-
// use __typename from filter and do type.ToSting() for values
197-
let typename = t.FullName
198-
Expression.Equal (Expression.PropertyOrField (param, "__typename"), Expression.Constant (typename)) :> Expression
196+
Expression.Equal (
197+
// Default discriminator property
198+
Expression.PropertyOrField (param, "__typename"),
199+
// Default discriminator value
200+
Expression.Constant (t.FullName)
201+
) :> Expression
199202
| ValueSome discExpr, ValueNone ->
200-
// use discriminator and do type.ToSting() for values
201-
let typename = t.FullName
202-
Expression.Invoke (discExpr, param, Expression.Constant (typename)) :> Expression
203+
Expression.Invoke (
204+
// Provided discriminator comparison
205+
discExpr,
206+
param,
207+
// Default discriminator value gathered from type
208+
Expression.Constant(t.FullName)
209+
) :> Expression
203210
| ValueNone, ValueSome discValueFn ->
204-
// use __typename from filter and execute discValueFn for values
205211
let discriminatorValue = discValueFn t
206-
Expression.Equal (Expression.PropertyOrField (param, "__typename"), Expression.Constant (discriminatorValue)) :> Expression
212+
Expression.Equal (
213+
// Default discriminator property
214+
Expression.PropertyOrField (param, "__typename"),
215+
// Provided discriminator value gathered from type
216+
Expression.Constant (discriminatorValue)
217+
) :> Expression
207218
| ValueSome discExpr, ValueSome discValueFn ->
208-
// use discriminator and execute discValueFn for values
209219
let discriminatorValue = discValueFn t
210-
Expression.Invoke (discExpr, param, Expression.Constant (discriminatorValue))
211-
220+
Expression.Invoke (
221+
// Provided discriminator comparison
222+
discExpr,
223+
param,
224+
// Provided discriminator value gathered from type
225+
Expression.Constant (discriminatorValue)
226+
)
212227
let queryExpr =
213228
let param = Expression.Parameter (typeof<'T>, "x")
214229
let body = buildFilterExpr (SourceExpression param) buildTypeDiscriminatorCheck filter

0 commit comments

Comments
 (0)