0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-16 21:56:25 -05:00
verdaccio/website/docs/dev-plugins.md
Juan Picado 3ad519f0c2 chore: website scaffolding (#1843)
* chore: upload gatsby website

* chore: update header

* chore: add background header

* chore: add ci for website

* Update ci-website.yml

* chore: update patch mach ci

* chore: update ci settings

* chore: update docker version
2021-04-09 17:54:10 +02:00

1.8 KiB

id title
dev-plugins Developing Plugins

There are many ways to extend verdaccio, the kind of plugins supported are:

We recommend developing plugins using our Typescript type definitions.

''

Other plugins

The following plugins are valid and in process of incubation.

Theme Plugin

The plugin must return a function that returns a string. The string should be the absolute location of the root of your user interface.

API

const path = require('path');

module.exports = (...arguments) => {
  return path.join(__dirname, 'static');
};

It is imporant that the name of the plugin must start with verdaccio-theme- prefix.

Theme Example

Filter Plugin

Since 4.1.0

Filter plugins were introduced due a request in order to be able to filter metadata from uplinks.

More info in the PR.

filters:
   storage-filter-blackwhitelist:
     filter_file: /path/to/file

API

The method filter_metadata will allow you to filter metadata that comes from any uplink, it is Promise based and has to return the same metadata modified.

Do not remove properties from the metadata, try to do not mutate rather return a new object.

interface IPluginStorageFilter<T> extends IPlugin<T> {
	filter_metadata(packageInfo: Package): Promise<Package>;
}