Skip to main content

Mountain/IPC/WindServiceHandlers/Extensions/
ExtensionsGetAll.rs

1
2//! `extensions:getAll` - every scanned extension's raw
3//! manifest, no `ILocalExtension` reshape. Used by tooling /
4//! debug surfaces that want the full payload (extension
5//! activity log, marketplace UI, audit reports). Renderer
6//! consumers MUST go through `ExtensionsGetInstalled` for the
7//! workbench-shaped data.
8
9use std::sync::Arc;
10
11use CommonLibrary::ExtensionManagement::ExtensionManagementService::ExtensionManagementService;
12use serde_json::{Value, json};
13
14use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
15
16pub async fn Fn(RunTime:Arc<ApplicationRunTime>) -> Result<Value, String> {
17	let Extensions = RunTime
18		.Environment
19		.GetExtensions()
20		.await
21		.map_err(|Error| format!("extensions:getAll failed: {}", Error))?;
22
23	dev_log!("extensions", "extensions:getAll returning {} extensions", Extensions.len());
24
25	if let Some(First) = Extensions.first() {
26		dev_log!(
27			"extensions",
28			"extensions:getAll sample: {}",
29			serde_json::to_string(First)
30				.unwrap_or_default()
31				.chars()
32				.take(300)
33				.collect::<String>()
34		);
35	}
36
37	Ok(json!(Extensions))
38}