---
description: >-
  Project Toolchain is an optional module that you can use. It provides access
  to Prisma Util's enhanced code generation features.
---

# Project Toolchain

## What is Project Toolchain?

Project Toolchain is the name we gave to our internal code-generators in an attempt to streamline the developer experience when using code from Prisma Util. This module will handle generation of middleware which you can import and generate based on your configuration file.

### Clarifications

This page (and its subpages) are meant to show the code usage of the Project Toolchain **module**. They are _not_ going to explain how to configure the Project Toolchain configuration **object**, which is done in the API Documentation [here](broken-reference) and explained in more detail [here](../concepts/project-toolchain).

## How to use Project Toolchain?

Project Toolchain is a built-in module that is available in Prisma Util v2.0.0+. You don't need to install any additional packages, you just have to use the exports defined below.

## Project Toolchain Alert

Features that make use of Project Toolchain's APIs display an alert such as this one on their pages:

{% hint style="warning" %}
## Project Toolchain Usage

This feature makes use of these Project Toolchain APIs: **Middleware**, **Extensions**. Because of this usage, it defines the following modules:

### moduleName

This module defines the following middleware and extensions identifiers that can be imported via Project Toolchain, along with their descriptions:

* **featureName** - Feature description.
{% endhint %}

These alerts are made to help you identify the names of the modules, middleware and extensions that you want and properly add them to your client.

## Project Toolchain Exports

The exports from this module are structured as follows:

{% code title="Import Abstraction" %}
```javascript
import { desiredImports } from "prisma-util/toolchain/[TYPE]";
```
{% endcode %}

In this abstraction, the `[TYPE]` will be replaced with a valid code-generation category. Each category has its own page that shows how to use the exports and how the folder structure is generated. Here are the available categories:

{% content-ref url="project-toolchain/middleware" %}
[middleware](project-toolchain/middleware)
{% endcontent-ref %}

{% content-ref url="project-toolchain/extensions" %}
[extensions](project-toolchain/extensions)
{% endcontent-ref %}
