Skip to content

Commit

Permalink
Add overloads
Browse files Browse the repository at this point in the history
  • Loading branch information
patrick91 committed Aug 25, 2021
1 parent 3b77f3b commit 6cf7534
Showing 1 changed file with 52 additions and 1 deletion.
53 changes: 52 additions & 1 deletion strawberry/field.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
Type,
TypeVar,
Union,
overload,
)

from cached_property import cached_property # type: ignore
Expand Down Expand Up @@ -267,8 +268,43 @@ def is_async(self) -> bool:
return self._has_async_permission_classes or self._has_async_base_resolver


T = TypeVar("T")


@overload
def field(
resolver: Optional[_RESOLVER_TYPE] = None,
*,
resolver: Callable[[], T],
name: Optional[str] = None,
is_subscription: bool = False,
description: Optional[str] = None,
permission_classes: Optional[List[Type[BasePermission]]] = None,
federation: Optional[FederationFieldParams] = None,
deprecation_reason: Optional[str] = None,
default: Any = UNSET,
default_factory: Union[Callable, object] = UNSET,
) -> T:
...


@overload
def field(
*,
name: Optional[str] = None,
is_subscription: bool = False,
description: Optional[str] = None,
permission_classes: Optional[List[Type[BasePermission]]] = None,
federation: Optional[FederationFieldParams] = None,
deprecation_reason: Optional[str] = None,
default: Any = UNSET,
default_factory: Union[Callable, object] = UNSET,
) -> Any:
...


@overload
def field(
resolver: _RESOLVER_TYPE,
*,
name: Optional[str] = None,
is_subscription: bool = False,
Expand All @@ -279,6 +315,21 @@ def field(
default: Any = UNSET,
default_factory: Union[Callable, object] = UNSET,
) -> StrawberryField:
...


def field(
resolver: Optional[_RESOLVER_TYPE] = None,
*,
name: Optional[str] = None,
is_subscription: bool = False,
description: Optional[str] = None,
permission_classes: Optional[List[Type[BasePermission]]] = None,
federation: Optional[FederationFieldParams] = None,
deprecation_reason: Optional[str] = None,
default: Any = UNSET,
default_factory: Union[Callable, object] = UNSET,
) -> Any:
"""Annotates a method or property as a GraphQL field.
This is normally used inside a type declaration:
Expand Down

0 comments on commit 6cf7534

Please sign in to comment.