getDirectiveValue method
dynamic
getDirectiveValue()
Implementation
dynamic getDirectiveValue(String name, String argumentName, Directives holder,
Map<String?, dynamic> variableValues) {
var directive = holder.directives.firstWhereOrNull((d) {
var vv = d.value;
if (vv is VariableContext) {
return vv.name == name;
} else if (vv == null) {
return d.nameToken?.text == name;
} else {
return vv.computeValue(variableValues as Map<String, dynamic>) == name;
}
});
if (directive == null) return null;
if (directive.argument?.name != argumentName) return null;
var vv = directive.argument!.value;
if (vv is VariableContext) {
var vname = vv.name;
if (!variableValues.containsKey(vname)) {
throw GraphQLException.fromSourceSpan(
'Unknown variable: "$vname"', vv.span);
}
return variableValues[vname];
}
return vv.computeValue(variableValues as Map<String, dynamic>);
}