tryExecuteFunction method

Future<ASTValue?> tryExecuteFunction(
  1. String namespace,
  2. String functionName, [
  3. List? positionalParameters
])

Tries to execute a function with variations of positionalParameters.

Implementation

Future<ASTValue?> tryExecuteFunction(String namespace, String functionName,
    [List? positionalParameters]) async {
  positionalParameters ??= [];

  if (await getFunction(namespace, functionName, positionalParameters) !=
      null) {
    return await executeFunction(namespace, functionName,
        positionalParameters: positionalParameters);
  } else if (await getFunction(
          namespace, functionName, [positionalParameters]) !=
      null) {
    return await executeFunction(namespace, functionName,
        positionalParameters: [positionalParameters]);
  } else if (await getFunction(
          namespace, functionName, [ASTTypeArray.instanceOfString]) !=
      null) {
    return await executeFunction(namespace, functionName,
        positionalParameters: [
          positionalParameters.map((e) => '$e').toList()
        ]);
  } else if (await getFunction(
          namespace, functionName, [ASTTypeArray.instanceOfDynamic]) !=
      null) {
    return await executeFunction(namespace, functionName,
        positionalParameters: [positionalParameters]);
  }
  return null;
}