spin_trigger/cli/
variable.rs

1use spin_factor_variables::VariablesFactor;
2use spin_factors::RuntimeFactors;
3use spin_factors_executor::ExecutorHooks;
4
5/// An executor hook that prepares the variables factor before runtime execution.
6pub struct VariablesValidatorHook;
7
8#[spin_core::async_trait]
9impl<F: RuntimeFactors, U> ExecutorHooks<F, U> for VariablesValidatorHook {
10    async fn configure_app(
11        &self,
12        configured_app: &spin_factors::ConfiguredApp<F>,
13    ) -> anyhow::Result<()> {
14        let variables_factor_app_state = configured_app.app_state::<VariablesFactor>()?;
15
16        let expression_resolver = variables_factor_app_state.expression_resolver();
17        expression_resolver.ensure_required_variables_resolvable()?;
18
19        Ok(())
20    }
21}