---
title: Part plugins
---

The `plugins` property on the part configuration object 
list the plugins that are used in/required by the part:

```js
import { pluginBundle } from '@freesewing/plugin-bundle'
import { pluginBust } from '@freesewing/plugin-bust'

const part = {
  name: 'example.front',
  plugins: [ pluginBundle, pluginBust ],
  draft: ({ part }) => part
}
```
:::tip

You should only list the plugins that are required by the part itself,
not those required by its dependencies

:::

## Passing data to a plugin

Some plugins require you to pass data to the plugin.
For these, pass an `[plugin, data]` array:

```js
import { pluginBundle } from '@freesewing/plugin-bundle'
import { myDataPlugin } from 'myDataPlugin'

const myData = {
  some: 'data'
}

const part = {
  name: 'example.front',
  plugins: [ pluginBundle, [ myDataPlugin, data ] ],
  draft: ({ part }) => part
}
```

## Conditional plugins

A conditional plugin is loaded only when a condition is met.
The plugin and condition should be provided as an `Object`
with the following structure:

```js
import myPlugin from './my-plugin.mjs'

const myConditionalPlugin = {
  myPlugin,
  condition,
}
```

Where `myPlugin` is the plugin itself, and `condition` is a method
that returns `true` if the plugin should be loaded.

:::note RELATED

Refer to [the plugin guide](/guides/plugins) to learn
about conditional plugins

:::
