omena_query_transform_runner/
lib.rs1use serde::Serialize;
9
10pub use omena_transform_bundle::{
11 TransformBundleSourceSummaryV0, summarize_omena_transform_bundle_from_source,
12};
13pub use omena_transform_cst::{TransformPassKind, all_transform_pass_kinds};
14pub use omena_transform_egg::{
15 EggRewriteSourceWitnessV0, TransformEggPlanV0, execute_egg_rewrite_witnesses_for_css_source,
16 plan_egg_rewrite_passes_for_source,
17};
18pub use omena_transform_passes::{
19 CustomPropertyLeastFixedPointSummaryV0, TransformClassNameRewriteV0,
20 TransformCssModuleComposesResolutionV0, TransformCssModuleValueResolutionV0,
21 TransformDesignTokenRouteV0, TransformExecutionContextV0, TransformExecutionSummaryV0,
22 TransformImportInlineV0, TransformLessInlineLiteralPlaceholderV0, TransformModuleEvaluationV0,
23 TransformPassPlanV0, execute_transform_passes_on_source_with_dialect_and_context,
24 expand_css_nested_selector, inline_css_imports,
25 inline_css_imports_for_static_module_evaluation, parse_static_css_cascade_value,
26 plan_transform_passes, reduce_static_numeric_expression,
27 resolve_static_css_modules_local_value_resolutions_from_source,
28 restore_less_inline_literal_placeholders,
29 summarize_static_css_custom_property_fixed_point_from_source,
30};
31pub use omena_transform_print::{
32 TransformPrintArtifactV0, TransformPrintMode, TransformPrintOptionsV0, default_print_options,
33 print_transform_execution_artifact_with_dialect_and_source,
34};
35pub use omena_transform_target::{
36 TargetFeatureSupportV0, TargetTransformOptionsV0, TransformTargetPlanV0,
37 TransformTargetQueryPlanV0, conservative_target_options, modern_feature_support,
38 plan_target_transforms, plan_target_transforms_from_query,
39};
40
41pub const OMENA_QUERY_TRANSFORM_RUNNER_COLLAPSED_CRATES_V0: [&str; 6] = [
42 "omena-transform-bundle",
43 "omena-transform-cst",
44 "omena-transform-egg",
45 "omena-transform-passes",
46 "omena-transform-print",
47 "omena-transform-target",
48];
49
50#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
51#[serde(rename_all = "camelCase")]
52pub struct OmenaQueryTransformRunnerBoundaryV0 {
53 pub schema_version: &'static str,
54 pub product: &'static str,
55 pub boundary_kind: &'static str,
56 pub collapsed_transform_crate_count: usize,
57 pub collapsed_transform_crates: Vec<&'static str>,
58 pub direct_query_dependency_replacement: &'static str,
59 pub ready_surfaces: Vec<&'static str>,
60}
61
62pub fn summarize_omena_query_transform_runner_boundary_v0() -> OmenaQueryTransformRunnerBoundaryV0 {
63 OmenaQueryTransformRunnerBoundaryV0 {
64 schema_version: "0",
65 product: "omena-query-transform-runner.boundary",
66 boundary_kind: "query-transform-runner-split",
67 collapsed_transform_crate_count: OMENA_QUERY_TRANSFORM_RUNNER_COLLAPSED_CRATES_V0.len(),
68 collapsed_transform_crates: OMENA_QUERY_TRANSFORM_RUNNER_COLLAPSED_CRATES_V0.to_vec(),
69 direct_query_dependency_replacement: "omena-query-transform-runner",
70 ready_surfaces: vec![
71 "transformPlannerBoundary",
72 "transformExecutorBoundary",
73 "transformPrinterBoundary",
74 "transformTargetPlannerBoundary",
75 "transformEggWitnessBoundary",
76 ],
77 }
78}
79
80#[cfg(test)]
81mod tests {
82 use super::*;
83
84 #[test]
85 fn transform_runner_boundary_collapses_transform_family_for_query() {
86 let summary = summarize_omena_query_transform_runner_boundary_v0();
87
88 assert_eq!(summary.collapsed_transform_crate_count, 6);
89 assert_eq!(
90 summary.collapsed_transform_crates,
91 OMENA_QUERY_TRANSFORM_RUNNER_COLLAPSED_CRATES_V0
92 );
93 assert!(
94 summary
95 .ready_surfaces
96 .contains(&"transformExecutorBoundary")
97 );
98 assert!(
99 summary
100 .ready_surfaces
101 .contains(&"transformTargetPlannerBoundary")
102 );
103 }
104}