make method

String make(
  1. String singular
)

Implementation

String make(String singular) {
  if (singular.isEmpty) return singular;

  if (singular.endsWith('ies') ||
      singular.endsWith('ses') ||
      singular.endsWith('xes') ||
      singular.endsWith('zes') ||
      singular.endsWith('ches') ||
      singular.endsWith('shes') ||
      singular.endsWith('oes')) {
    return singular;
  }

  if (irregulars.containsKey(singular.toLowerCase())) {
    String plural = irregulars[singular.toLowerCase()]!;

    if (singular[0].toUpperCase() == singular[0]) {
      return plural[0].toUpperCase() + plural.substring(1);
    }
    return plural;
  }

  if (singular.endsWith('y') &&
      singular.length > 1 &&
      !_isVowel(singular[singular.length - 2])) {
    return '${singular.substring(0, singular.length - 1)}ies';
  }

  if (singular.endsWith('s') ||
      singular.endsWith('x') ||
      singular.endsWith('z') ||
      singular.endsWith('ch') ||
      singular.endsWith('sh') ||
      (singular.endsWith('o') && !_isVowelBeforeO(singular))) {
    return '${singular}es';
  }

  return '${singular}s';
}