The `graphql` package serves two purposes in being the reference implementation of the
[GraphQL specification](https://spec.graphql.org/) and being used as the shared toolkit
for implementing GraphQL in client-side and server-side JavaScript applications. This
can cause bloat for client-side apps, where we'd rather choose lower bundlesize impact
over fidelity.
`graphql-web-lite` provides an alias package that can be swapped in for the standard
`graphql` package in client-side applications.
It aims to reduce the size of imports that are in common use by GraphQL clients and
users, while still providing most `graphql` exports that are used in other contexts.
It replaces the default `language` exports with
[`@0no-co/graphql.web`](https://github.com/0no-co/graphql.web) for a leaner
parser, printer, and visitor, which only support the GraphQL query language and
are tested to 100% coverage and built to match GraphQL.js’ performance.
In an average app using the GraphQL library for a GraphQL client aliasing this
package could save you 7kB gzip effortlessly.
> **Note:** If you’re using `@urql/core@^4` you’re already benefitting from
> `@0no-co/graphql.web`’s size reduction and aliasing `graphql-web-lite` will
> only benefit you if you import from `graphql` in any of your other code or
> libraries.
## Installation
`graphql-web-lite` mirrors the folder structure of the regular `graphql` package and
includes mostly the same files and imports as the `graphql` package, minus a couple
that aren't commonly used for client-side GraphQL.
This offers us several installation options, depending on how the package is aliased
to the regular `"graphql"` import.