Module that handles all vlt configuration needs
Project-level configs are set in a vlt.json
file in the local
project if present. This will override the user-level configs in the
appropriate XDG config path.
Command-specific configuration can be specified by putting options in
a field in the command
object. For example:
{ "registry": "https://registry.npmjs.org/", "command": { "publish": { "registry": "http://registry.internal" } }}
Classes
Config
Defined in: src/cli-sdk/src/config/index.ts:211
Class that handles configuration for vlt.
Call Config.load to get one of these.
Constructors
new Config()
new Config(jack, projectRoot): Config
Defined in: src/cli-sdk/src/config/index.ts:325
Parameters
jack
Jack
<object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
> = definition
projectRoot
string
= ...
Returns
Properties
command?
optional command: | "version" | "install" | "cache" | "config" | "init" | "query" | "token" | "pkg" | "exec" | "exec-local" | "gui" | "help" | "login" | "logout" | "list" | "run-exec" | "run" | "uninstall" | "exec-cache" | "whoami";
Defined in: src/cli-sdk/src/config/index.ts:323
Which command name to use for overriding with command-specific values, determined from the argv when parse() is called.
commands
commands: object
Defined in: src/cli-sdk/src/config/index.ts:317
Record<alias, canonical name>
to dereference command aliases.
?
readonly ?: "help" = 'help';
add
readonly add: "install" = 'install';
cache
readonly cache: "cache" = 'cache';
conf
readonly conf: "config" = 'config';
config
readonly config: "config" = 'config';
exec
readonly exec: "exec" = 'exec';
exec-cache
readonly exec-cache: "exec-cache" = 'exec-cache';
exec-local
readonly exec-local: "exec-local" = 'exec-local';
gui
readonly gui: "gui" = 'gui';
h
readonly h: "help" = 'help';
help
readonly help: "help" = 'help';
i
readonly i: "install" = 'install';
init
readonly init: "init" = 'init';
install
readonly install: "install" = 'install';
list
readonly list: "list" = 'list';
login
readonly login: "login" = 'login';
logout
readonly logout: "logout" = 'logout';
ls
readonly ls: "list" = 'list';
pkg
readonly pkg: "pkg" = 'pkg';
query
readonly query: "query" = 'query';
r
readonly r: "run" = 'run';
rm
readonly rm: "uninstall" = 'uninstall';
run
readonly run: "run" = 'run';
run-exec
readonly run-exec: "run-exec" = 'run-exec';
run-script
readonly run-script: "run" = 'run';
rx
readonly rx: "run-exec" = 'run-exec';
token
readonly token: "token" = 'token';
u
readonly u: "uninstall" = 'uninstall';
uninstall
readonly uninstall: "uninstall" = 'uninstall';
version
readonly version: "version" = 'version';
whoami
readonly whoami: "whoami" = 'whoami';
x
readonly x: "exec" = 'exec';
xc
readonly xc: "exec-cache" = 'exec-cache';
xl
readonly xl: "exec-local" = 'exec-local';
commandValues
commandValues: object = {}
Defined in: src/cli-sdk/src/config/index.ts:226
Command-specific config values
cache?
optional cache: ConfigData;
config?
optional config: ConfigData;
exec?
optional exec: ConfigData;
exec-cache?
optional exec-cache: ConfigData;
exec-local?
optional exec-local: ConfigData;
gui?
optional gui: ConfigData;
help?
optional help: ConfigData;
init?
optional init: ConfigData;
install?
optional install: ConfigData;
list?
optional list: ConfigData;
login?
optional login: ConfigData;
logout?
optional logout: ConfigData;
pkg?
optional pkg: ConfigData;
query?
optional query: ConfigData;
run?
optional run: ConfigData;
run-exec?
optional run-exec: ConfigData;
token?
optional token: ConfigData;
uninstall?
optional uninstall: ConfigData;
version?
optional version: ConfigData;
whoami?
optional whoami: ConfigData;
jack
jack: Jack< object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object>
Defined in: src/cli-sdk/src/config/index.ts:216
The JackSpeak object representing vlt’s configuration
positionals?
optional positionals: string[];
Defined in: src/cli-sdk/src/config/index.ts:302
positional arguments to the vlt process
projectRoot
projectRoot: string
Defined in: src/cli-sdk/src/config/index.ts:312
The root of the project where a vlt.json, vlt.json, package.json, or
.git was found. Not necessarily the process.cwd()
, though that is
the default location.
Never walks up as far as $HOME
. So for example, if a project is in
~/projects/xyz
, then the highest dir it will check is ~/projects
values?
optional values: OptionsResults<object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object>;
Defined in: src/cli-sdk/src/config/index.ts:221
Parsed values in effect
Accessors
options
Get Signature
get options(): ConfigOptions
Defined in: src/cli-sdk/src/config/index.ts:233
A flattened object of the parsed configuration
Returns
Methods
addConfigToFile()
addConfigToFile( this, which,values): Promise<void>
Defined in: src/cli-sdk/src/config/index.ts:427
Fold in the provided fields with the existing properties in the config file.
Parameters
this
which
values
NonNullable
<ConfigFileData
>
Returns
Promise
<void
>
deleteConfigKeys()
deleteConfigKeys( this, which,fields): Promise<boolean>
Defined in: src/cli-sdk/src/config/index.ts:487
Deletes the specified config fields from the named file Returns true
if anything was changed.
Parameters
this
which
fields
string
[]
Returns
Promise
<boolean
>
editConfigFile()
editConfigFile( this, which,edit): Promise<void>
Defined in: src/cli-sdk/src/config/index.ts:540
Edit the user or project configuration file.
If the file isn’t present, then it starts with {}
so the user has
something to work with.
If the result is not valid, or no config settings are contained in the file after editing, then it’s restored to what it was before, which might mean deleting the file.
Parameters
this
which
edit
(file
) => void
| Promise
<void
>
Returns
Promise
<void
>
get()
get<K>(k): OptionsResults<object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object & object>[K]
Defined in: src/cli-sdk/src/config/index.ts:405
Get a configuration value.
Note: key=value
pair configs are returned as a string array. To get
them as an object, use Config#getRecord.
Type Parameters
• K extends | "registry"
| "workspace"
| "version"
|
"os"
| "tag"
| "script-shell"
| "color"
| "registries"
| "git-hosts"
| "git-host-archives"
| "scope-registries"
|
"jsr-registries"
| "cache"
| "config"
| "workspace-group"
| "before"
| "node-version"
| "arch"
| "fetch-retries"
|
"fetch-retry-factor"
| "fetch-retry-maxtimeout"
|
"fetch-retry-mintimeout"
| "git-shallow"
| "identity"
|
"stale-while-revalidate-factor"
| "query"
| "recursive"
|
"package"
| "help"
| "no-color"
| "bail"
| "no-bail"
|
"editor"
| "fallback-command"
| "view"
| "dashboard-root"
| "save-dev"
| "save-optional"
| "save-peer"
| "save-prod"
| "expect-results"
| "yes"
Parameters
k
K
Returns
OptionsResults
<object
& object
& object
& object
& object
& object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
>[K
]
getRecord()
getRecord(k): RecordString
Defined in: src/cli-sdk/src/config/index.ts:381
Get a key=value
list option value as an object.
For example, a list option with a vlaue of
['key=value', 'xyz=as=df' ]
would be returned as
{key: 'value', xyz: 'as=df'}
Results are memoized, so subsequent calls for the same key will return the same object. If new strings are added to the list, then the memoized value is not updated, so only use once configurations have been fully loaded.
If the config value is not set at all, an empty object is returned.
Parameters
k
"workspace"
| "registries"
| "git-hosts"
| "git-host-archives"
| "scope-registries"
| "jsr-registries"
| "workspace-group"
|
"dashboard-root"
Returns
loadConfigFile()
loadConfigFile(): Promise<Config>
Defined in: src/cli-sdk/src/config/index.ts:582
Find the local config file and load both it and the user-level config in the XDG config home.
Returns
Promise
<Config
>
parse()
parse(args): Config & object
Defined in: src/cli-sdk/src/config/index.ts:337
Parse the arguments and set configuration and positionals accordingly.
Parameters
args
string
[] = process.argv
Returns
Config
& object
resetOptions()
resetOptions(projectRoot): void
Defined in: src/cli-sdk/src/config/index.ts:291
Reset the options value, optionally setting a new project root to recalculate the options.
Parameters
projectRoot
string
= ...
Returns
void
writeConfigFile()
writeConfigFile( this, which,values): Promise<void>
Defined in: src/cli-sdk/src/config/index.ts:415
Write the config values to the user or project config file.
Parameters
this
which
values
NonNullable
<ConfigFileData
>
Returns
Promise
<void
>
load()
static load(projectRoot, argv): Promise<ParsedConfig>
Defined in: src/cli-sdk/src/config/index.ts:598
Load the configuration and return a Promise to a Config object
Parameters
projectRoot
string
= ...
argv
string
[] = process.argv
Returns
Promise
<ParsedConfig
>
Type Aliases
ConfigData
type ConfigData = ConfigDataNoCommand & object
Defined in: src/cli-sdk/src/config/index.ts:151
Config data can be any options, and also a ‘command’ field which contains command names and override options for that command.
Type declaration
command?
optional command: { [k in keyof Commands]?: ConfigDataNoCommand };
ConfigDataNoCommand
type ConfigDataNoCommand = { [k in keyof OptionsResults<ConfigDefinitions>]?: OptionsResults<ConfigDefinitions>[k]}
Defined in: src/cli-sdk/src/config/index.ts:143
ConfigDefinitions
type ConfigDefinitions = Unwrap<typeof definition>
Defined in: src/cli-sdk/src/config/index.ts:196
The base config definition set as a type
ConfigFileData
type ConfigFileData = ConfigFileDataNoCommand & object
Defined in: src/cli-sdk/src/config/index.ts:169
Config data as it appears in the config field of the vlt.json, with kv
pair lists stored as Record<string, string>
and
Type declaration
command?
optional command: { [k in keyof Commands]?: ConfigFileDataNoCommand };
ConfigFileDataNoCommand
type ConfigFileDataNoCommand = { [k in keyof ConfigDataNoCommand]: k extends ( OptListKeys<ConfigDataNoCommand> ) ? RecordString | string[] : ConfigDataNoCommand[k]}
Defined in: src/cli-sdk/src/config/index.ts:157
ConfigOptions
type ConfigOptions = ConfigOptionsNoExtras & Pick<SpecOptions, 'catalog' | 'catalogs'> & object
Defined in: src/cli-sdk/src/config/index.ts:184
Type declaration
monorepo?
optional monorepo: Monorepo;
packageInfo
packageInfo: PackageInfoClient
packageJson
packageJson: PackageJson
projectRoot
projectRoot: string
scurry
scurry: PathScurry
ConfigOptionsNoExtras
type ConfigOptionsNoExtras = { [k in keyof OptionsResults<ConfigDefinitions>]: k extends ( RecordField ) ? RecordString : k extends 'command' ? never : OptionsResults<ConfigDefinitions>[k]}
Defined in: src/cli-sdk/src/config/index.ts:175
LoadedConfig
type LoadedConfig = ParsedConfig
Defined in: src/cli-sdk/src/config/index.ts:627
A fully loaded Config object
OptListKeys<O>
type OptListKeys<O> = Exclude< StringListKeys<O>[keyof StringListKeys<O>], undefined>
Defined in: src/cli-sdk/src/config/index.ts:201
Type Parameters
• O
PairsAsRecords
type PairsAsRecords = ConfigOptionsNoExtras & object
Defined in: src/cli-sdk/src/config/index.ts:84
Type declaration
command?
optional command: { [k in keyof Commands]?: ConfigOptionsNoExtras };
ParsedConfig
type ParsedConfig = Config & object
Defined in: src/cli-sdk/src/config/index.ts:618
Type declaration
command
command: NonNullable<Config['command']>
positionals
positionals: string[];
values
values: OptionsResults<ConfigDefinitions>
RecordPairs
type RecordPairs = Record<string, unknown>
Defined in: src/cli-sdk/src/config/index.ts:59
RecordString
type RecordString = Record<string, string>
Defined in: src/cli-sdk/src/config/index.ts:60
StringListKeys<O>
type StringListKeys<O> = { [k in keyof O]: O[k] extends string[] | undefined ? k : never}
Defined in: src/cli-sdk/src/config/index.ts:198
Type Parameters
• O
Variables
kCustomInspect
const kCustomInspect: typeof kCustomInspect
Defined in: src/cli-sdk/src/config/index.ts:57
Functions
pairsToRecords()
function pairsToRecords(obj): PairsAsRecords
Defined in: src/cli-sdk/src/config/index.ts:90
Parameters
obj
OptionsResults
<object
& object
& object
& object
& object
& object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
& object
&
object
& object
& object
& object
& object
> |
NonNullable
<ConfigFileData
>
Returns
recordsToPairs()
function recordsToPairs(obj): RecordPairs
Defined in: src/cli-sdk/src/config/index.ts:112
Parameters
obj
Returns
References
commands
Re-exports commands
Commands
Re-exports Commands
definition
Re-exports definition
isRecordField
Re-exports isRecordField
recordFields
Re-exports recordFields