Skip to content

Commit 82d96da

Browse files
author
Viktor Tochonov
committed
Changed comments in buildTypeDiscriminatorCheck
1 parent 4b5cc32 commit 82d96da

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
@@ -239,22 +239,37 @@ module ObjectListFilter =
239239
let buildTypeDiscriminatorCheck (param : SourceExpression) (t : Type) =
240240
match options.CompareDiscriminator, options.GetDiscriminatorValue with
241241
| ValueNone, ValueNone ->
242-
// use __typename from filter and do type.ToSting() for values
243-
let typename = t.FullName
244-
Expression.Equal (Expression.PropertyOrField (param, "__typename"), Expression.Constant (typename)) :> Expression
242+
Expression.Equal (
243+
// Default discriminator property
244+
Expression.PropertyOrField (param, "__typename"),
245+
// Default discriminator value
246+
Expression.Constant (t.FullName)
247+
) :> Expression
245248
| ValueSome discExpr, ValueNone ->
246-
// use discriminator and do type.ToSting() for values
247-
let typename = t.FullName
248-
Expression.Invoke (discExpr, param, Expression.Constant (typename)) :> Expression
249+
Expression.Invoke (
250+
// Provided discriminator comparison
251+
discExpr,
252+
param,
253+
// Default discriminator value gathered from type
254+
Expression.Constant(t.FullName)
255+
) :> Expression
249256
| ValueNone, ValueSome discValueFn ->
250-
// use __typename from filter and execute discValueFn for values
251257
let discriminatorValue = discValueFn t
252-
Expression.Equal (Expression.PropertyOrField (param, "__typename"), Expression.Constant (discriminatorValue)) :> Expression
258+
Expression.Equal (
259+
// Default discriminator property
260+
Expression.PropertyOrField (param, "__typename"),
261+
// Provided discriminator value gathered from type
262+
Expression.Constant (discriminatorValue)
263+
) :> Expression
253264
| ValueSome discExpr, ValueSome discValueFn ->
254-
// use discriminator and execute discValueFn for values
255265
let discriminatorValue = discValueFn t
256-
Expression.Invoke (discExpr, param, Expression.Constant (discriminatorValue))
257-
266+
Expression.Invoke (
267+
// Provided discriminator comparison
268+
discExpr,
269+
param,
270+
// Provided discriminator value gathered from type
271+
Expression.Constant (discriminatorValue)
272+
)
258273
let queryExpr =
259274
let param = Expression.Parameter (typeof<'T>, "x")
260275
let body = buildFilterExpr (SourceExpression param) buildTypeDiscriminatorCheck filter

0 commit comments

Comments
 (0)