# Sanitization

When dealing with user input, you need to make sure the given data is valid. While validation is a great first line of defense, there are cases where it is most practical to modify the given input to ensure it is valid or safe to use.

# Single arguments

A great way to deal with single values is to use an ArgTransformerDirective. Lighthouse offers a few built-in options, but it is also really easy to build your own.

Here is how you can remove whitespace of a given input string by using the built-in @trim directive:

type Mutation {
  createPost(title: String @trim): Post
}

# Complex arguments

When you need to look at multiple input fields in order to run sanitization, you can use a FieldMiddlewareDirective to transform the given inputs before passing them along to the final resolver.