The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

GraphQL::MaybeTypeCheck - Conditional type-checking at runtime

SYNOPSIS

  use GraphQL::MaybeTypeCheck;

  method foo(
    $arg1 Str,
    $arg2 Int
  ) :ReturnType(Map[Str, Int]) {
    # ...
  }

DESCRIPTION

This module optionally enables type-checking in the caller as implemented by Function::Parameters and Return::Type depending on whether Devel::StrictMode is activated.

Devel::StrictMode ON

When Devel::StrictMode is active, this module will import Function::Parameters into the caller with its default configuration. As of writing, this includes checking both argument count and type.

When in strict mode this also requires Return::Type which registers the ReturnType attribute.

Devel::StrictMode OFF

When strict mode is inactive this module still imports Function::Parameters into the caller however it sets fun and method to lax mode and disables argument type checking.

This also installs a no-op ReturnType attribute so the existing syntax isn't broken.