1
0
Fork 0
freesewing/markdown/dev/reference/api/part/config/plugins/en.md
Joost De Cock ebc65082af
chore: Phrasing
Changed `the method` to `a method` to make it (more) clear that one should provide this method themselves.
2022-12-14 09:48:33 +01:00

1.4 KiB

title
Part plugins

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

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

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

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:

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:

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.

Refer to the plugin guide to learn about conditional plugins