MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / provider_to_bootstrap

Function provider_to_bootstrap

crates/opencode-server/src/server.rs:255–285  ·  view source on GitHub ↗
(provider: &opencode_config::ProviderConfig)

Source from the content-addressed store, hash-verified

253}
254
255fn provider_to_bootstrap(provider: &opencode_config::ProviderConfig) -> BootstrapConfigProvider {
256 let mut options = provider.options.clone().unwrap_or_default();
257 if let Some(api_key) = &provider.api_key {
258 options
259 .entry("apiKey".to_string())
260 .or_insert_with(|| serde_json::Value::String(api_key.clone()));
261 }
262 if let Some(base_url) = &provider.base_url {
263 options
264 .entry("baseURL".to_string())
265 .or_insert_with(|| serde_json::Value::String(base_url.clone()));
266 }
267
268 let models = provider.models.as_ref().map(|models| {
269 models
270 .iter()
271 .map(|(id, model)| (id.clone(), model_to_bootstrap(id, model)))
272 .collect()
273 });
274
275 BootstrapConfigProvider {
276 name: provider.name.clone(),
277 api: provider.base_url.clone(),
278 npm: provider.npm.clone(),
279 options: (!options.is_empty()).then_some(options),
280 models,
281 blacklist: (!provider.blacklist.is_empty()).then_some(provider.blacklist.clone()),
282 whitelist: (!provider.whitelist.is_empty()).then_some(provider.whitelist.clone()),
283 ..Default::default()
284 }
285}
286
287fn model_to_bootstrap(id: &str, model: &opencode_config::ModelConfig) -> BootstrapConfigModel {
288 let mut options = HashMap::new();

Calls 3

is_emptyMethod · 0.80
model_to_bootstrapFunction · 0.70
cloneMethod · 0.45

Tested by

no test coverage detected