Skip to content

Latest commit

 

History

History
96 lines (68 loc) · 2.51 KB

plugins.mdx

File metadata and controls

96 lines (68 loc) · 2.51 KB

import { Callout, Cards, Card } from 'nextra/components';

Cosmos Plugins

A Cosmos plugin is a wrapper for two plugin types: server plugins and UI plugins. Each plugin type has a distinct API and runs in a different environment. Combining both into a single Cosmos plugin adds full-stack capabilities to React Cosmos with a single package.

Creating a Plugin

Create a cosmos.plugin.json file:

{
  "name": "Magic plugin",
  "server": "serverPlugin.js",
  "ui": "uiPlugin.js"
}

This JSON config is the plugin's entry point. A plugin name and at least one plugin type is required.

The `server` and `ui` paths are resolved relative to the config's parent directory.

See the individual guides for each plugin type:

Enabling a Plugin

Add it to the plugins option in the cosmos.config.json of the host project:

{
  "plugins": ["../packages/magic-plugin/cosmos.plugin.json"]
}

If the Cosmos plugin is an NPM package, add the name of the package to plugins instead:

{
  "plugins": ["react-cosmos-plugin-magic"]
}

Publishing a Plugin

To publish a Cosmos plugin as an NPM package, set the main field in its package.json to "cosmos.plugin.json" (or a different path where the Cosmos plugin config is located):

{
  "name": "react-cosmos-plugin-magic",
  "version": "1.0.0",
  "main": "cosmos.plugin.json"
}

Existing Plugins

Open Fixture Plugin

This combines a server plugin with a UI plugin. It adds a renderer action that opens the selected fixture file in your default editor.

npm i -D react-cosmos-plugin-open-fixture
{
  "plugins": ["react-cosmos-plugin-open-fixture"]
}

Boolean Input Plugin

This is a UI plugin that turns boolean inputs in the Control Panel from a true/false button to a checkbox input.

npm i -D react-cosmos-plugin-boolean-input
{
  "plugins": ["react-cosmos-plugin-boolean-input"]
}

Community Plugins