findTypeDependencies static method

Set<String> findTypeDependencies(
  1. String primaryType,
  2. Map<String, List<TypedDataField>> types, {
  3. Set<String>? results,
})

Finds all types within a type defintion object

@param {string} primaryType - Root type @param {Object} types - Type definitions @param {Array} results - current set of accumulated types @returns {Array} - Set of all types found in the type definition

Implementation

static Set<String> findTypeDependencies(
    String primaryType, Map<String, List<TypedDataField>> types,
    {Set<String>? results}) {
  primaryType = _typeRegex.stringMatch(primaryType) ?? "";
  results ??= Set();
  if (results.contains(primaryType) || !types.containsKey(primaryType)) {
    return results;
  }
  results.add(primaryType);
  types[primaryType]?.forEach((TypedDataField field) {
    findTypeDependencies(field.type, types, results: results).forEach((dep) {
      if (!results!.contains(dep)) {
        results.add(dep);
      }
    });
  });
  return results;
}