0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-16 21:56:25 -05:00
verdaccio/packages/config/README.md
Itamar Gronich a99a4bb1b3
fix config builder erroring when passed partial config (#4552)
* fix config builder erroring when passed partial config

* add tests and changeset

* update readme

* update readme

---------

Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2024-03-23 12:19:41 +01:00

77 lines
2.8 KiB
Markdown

# @verdaccio/config
## Overview
The `@verdaccio/config` package provides a powerful configuration builder constructor for programmatically creating configuration objects for Verdaccio, a lightweight private npm proxy registry. With this package, users can easily manage various configuration aspects such as package access, uplinks, security settings, authentication, logging, and storage options.
## Installation
You can install via npm:
```bash
npm install @verdaccio/config
```
## Usage
To start using `@verdaccio/config`, import the `ConfigBuilder` class and begin constructing your configuration object:
## `ConfigBuilder` constructor
The `ConfigBuilder` class is a helper configuration builder constructor used to programmatically create configuration objects for testing or other purposes.
```typescript
import { ConfigBuilder } from '@verdaccio/config';
// Create a new configuration builder instance
const config = ConfigBuilder.build({ security: { api: { legacy: false } } });
// Add package access configuration
configBuilder.addPackageAccess('@scope/*', { access: 'read', publish: 'write' });
// Add an uplink configuration
configBuilder.addUplink('npmjs', { url: 'https://registry.npmjs.org/' });
// Add security configuration
configBuilder.addSecurity({ allow_offline: true });
// Get the configuration object
const config = configBuilder.getConfig();
// Get the configuration yaml text
const config = configBuilder.getAsYaml();
```
### Methods
- `addPackageAccess(pattern: string, pkgAccess: PackageAccessYaml)`: Adds package access configuration.
- `addUplink(id: string, uplink: UpLinkConf)`: Adds an uplink configuration.
- `addSecurity(security: Partial<Security>)`: Adds security configuration.
- `addAuth(auth: Partial<AuthConf>)`: Adds authentication configuration.
- `addLogger(log: LoggerConfItem)`: Adds logger configuration.
- `addStorage(storage: string | object)`: Adds storage configuration.
- `getConfig(): ConfigYaml`: Retrieves the configuration object.
- `getAsYaml(): string`: Retrieves the configuration object as YAML format.
## `getDefaultConfig`
This method is available in the package's index and retrieves the default configuration object.
```typescript
import { getDefaultConfig } from '@verdaccio/config';
const defaultConfig = getDefaultConfig();
```
## Other Methods
- `fromJStoYAML(config: ConfigYaml): string`: Converts a JavaScript configuration object to YAML format.
- `parseConfigFile(filePath: string): ConfigYaml`: Parses a configuration file from the specified path and returns the configuration object.
### License
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)
The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is
[Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).