import { i18n } from '@osd/i18n' ; import { ExpressionFunctionDefinition } from '../types' ; interface Arguments { name : string ; value ? : any ; } export type ExpressionFunctionVarSet = ExpressionFunctionDefinition < 'var_set' , unknown , Arguments , unknown > ; export const variableSet = { name : 'var_set' , help : i18n . translate ( 'expressions.functions.varset.help' , { defaultMessage : 'Updates the OpenSearch Dashboards global context.' , } ) , args : { name : { types : [ 'string' ] , aliases : [ '_' ] , required : true , help : i18n . translate ( 'expressions.functions.varset.name.help' , { defaultMessage : 'Specify the name of the variable.' , } ) , } , value : { aliases : [ 'val' ] , help : i18n . translate ( 'expressions.functions.varset.val.help' , { defaultMessage : 'Specify the value for the variable. When unspecified, the input context is used.' , } ) , } , } , fn ( input , args , context ) { const variables = context . variables ; variables [ args . name ] = args . value === undefined ? input : args . value ; return input ; } , } ;