MCPcopy Create free account
hub / github.com/Moosync/Moosync / find_extensions

Method find_extensions

src-tauri/extensions/src/ext_runner.rs:328–354  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

326
327 #[tracing::instrument(level = "debug", skip(self))]
328 async fn find_extensions(&self) -> Vec<ExtensionManifest> {
329 let manifests = self.find_extension_manifests();
330 let mut parsed_manifests = vec![];
331
332 let extensions_map = self.extensions_map.lock().await;
333 for manifest_path in manifests {
334 if let Ok(contents) = fs::read(manifest_path.clone()) {
335 match serde_json::from_slice::<ExtensionManifest>(&contents) {
336 Ok(mut manifest) => {
337 manifest.extension_entry = manifest_path
338 .parent()
339 .unwrap()
340 .join(manifest.extension_entry);
341 if !extensions_map.contains_key(&manifest.name)
342 && manifest.extension_entry.extension().unwrap() == "wasm"
343 && manifest.extension_entry.exists()
344 {
345 parsed_manifests.push(manifest);
346 }
347 }
348 Err(e) => tracing::error!("Error parsing manifest: {:?}", e),
349 }
350 }
351 }
352
353 parsed_manifests
354 }
355
356 #[tracing::instrument(level = "debug", skip())]
357 fn spawn_extension(

Callers 1

spawn_extensionsMethod · 0.80

Calls 2

cloneMethod · 0.80

Tested by

no test coverage detected