mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 10:59:13 +00:00
feat(cli): support configuring the lock file in the config file (#16781)
This allows the user to completely opt out from the lock file or rename it without having to use `--no-lock` and/or `--lock` in all commands. ## Don’t Use Lock File ```json { "lock": false } ``` ## Use Lock File With a Different Name ```json { "lock": "deno2.lock" } ``` The CLI args `--no-lock` and `--lock` will always override what is in the config file. Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
This commit is contained in:
parent
dac30af151
commit
44b2b950fd
12 changed files with 93 additions and 3 deletions
|
@ -429,6 +429,13 @@ pub struct TestConfig {
|
|||
pub files: FilesConfig,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
#[serde(untagged)]
|
||||
pub enum LockConfig {
|
||||
Bool(bool),
|
||||
PathBuf(PathBuf),
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct ConfigFileJson {
|
||||
|
@ -438,6 +445,7 @@ pub struct ConfigFileJson {
|
|||
pub fmt: Option<Value>,
|
||||
pub tasks: Option<Value>,
|
||||
pub test: Option<Value>,
|
||||
pub lock: Option<Value>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
|
@ -759,6 +767,16 @@ impl ConfigFile {
|
|||
bail!("No tasks found in configuration file")
|
||||
}
|
||||
}
|
||||
|
||||
pub fn to_lock_config(&self) -> Result<Option<LockConfig>, AnyError> {
|
||||
if let Some(config) = self.json.lock.clone() {
|
||||
let lock_config: LockConfig = serde_json::from_value(config)
|
||||
.context("Failed to parse \"lock\" configuration")?;
|
||||
Ok(Some(lock_config))
|
||||
} else {
|
||||
Ok(None)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Represents the "default" type library that should be used when type
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue