public function parseLiteral($ast)
{
// Note: throwing GraphQL\Error\Error vs \UnexpectedValueException to benefit from GraphQL
// error location in query:
if (!$ast instanceof StringValueNode) {
throw new Error('Query error: Can only parse strings got: ' . $ast->kind, [$ast]);
}
if (!is_string($ast->value) || !filter_var($ast->value, FILTER_VALIDATE_URL)) {
throw new Error('Query error: Not a valid URL', [$ast]);
}
return $ast->value;
}