mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-16 21:56:25 -05:00
a99a4bb1b3
* fix config builder erroring when passed partial config * add tests and changeset * update readme * update readme --------- Co-authored-by: Juan Picado <juanpicado19@gmail.com>
77 lines
2.8 KiB
Markdown
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).
|