MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / provider_to_bootstrap

Function provider_to_bootstrap

crates/opencode-cli/src/main.rs:1698–1728  ·  view source on GitHub ↗
(provider: &opencode_config::ProviderConfig)

Source from the content-addressed store, hash-verified

1696}
1697
1698fn provider_to_bootstrap(provider: &opencode_config::ProviderConfig) -> BootstrapConfigProvider {
1699 let mut options = provider.options.clone().unwrap_or_default();
1700 if let Some(api_key) = &provider.api_key {
1701 options
1702 .entry("apiKey".to_string())
1703 .or_insert_with(|| serde_json::Value::String(api_key.clone()));
1704 }
1705 if let Some(base_url) = &provider.base_url {
1706 options
1707 .entry("baseURL".to_string())
1708 .or_insert_with(|| serde_json::Value::String(base_url.clone()));
1709 }
1710
1711 let models = provider.models.as_ref().map(|models| {
1712 models
1713 .iter()
1714 .map(|(id, model)| (id.clone(), model_to_bootstrap(id, model)))
1715 .collect()
1716 });
1717
1718 BootstrapConfigProvider {
1719 name: provider.name.clone(),
1720 api: provider.base_url.clone(),
1721 npm: provider.npm.clone(),
1722 options: (!options.is_empty()).then_some(options),
1723 models,
1724 blacklist: (!provider.blacklist.is_empty()).then_some(provider.blacklist.clone()),
1725 whitelist: (!provider.whitelist.is_empty()).then_some(provider.whitelist.clone()),
1726 ..Default::default()
1727 }
1728}
1729
1730fn model_to_bootstrap(id: &str, model: &opencode_config::ModelConfig) -> BootstrapConfigModel {
1731 let mut options = HashMap::new();

Callers 1

convert_config_providersFunction · 0.70

Calls 3

is_emptyMethod · 0.80
model_to_bootstrapFunction · 0.70
cloneMethod · 0.45

Tested by

no test coverage detected