build method

String build()

Implementation

String build() {
  final builder = CommandBuilder(command: this, parent: null);

  if (hasFamily) {
    // For family commands, extension returns a method that takes family params
    return """
${_buildProviderDeclaration()}

${builder.buildFacadeCommandClassRef()}

${builder.buildFacadeCommandClassWidgetRef()}

extension \$${name[0].toUpperCase()}${name.substring(1)}CommandRefEx on Ref {
${builder.facadeCommandClassNameRef} ${name}Command(${familyParams.toParameterSignature()}) => ${builder.facadeCommandClassNameRef}(this, ${familyParams.toRecordValue()});
}

extension \$${name[0].toUpperCase()}${name.substring(1)}CommandWidgetRefEx on WidgetRef {
${builder.facadeCommandClassNameWidgetRef} ${name}Command(${familyParams.toParameterSignature()}) => ${builder.facadeCommandClassNameWidgetRef}(this, ${familyParams.toRecordValue()});
}
""";
  }

  return """
${_buildProviderDeclaration()}

${builder.buildFacadeCommandClassRef()}

${builder.buildFacadeCommandClassWidgetRef()}

extension \$${name[0].toUpperCase()}${name.substring(1)}CommandRefEx on Ref {
${builder.facadeCommandClassNameRef} get ${name}Command => ${builder.facadeCommandClassNameRef}(this);
}

extension \$${name[0].toUpperCase()}${name.substring(1)}CommandWidgetRefEx on WidgetRef {
${builder.facadeCommandClassNameWidgetRef} get ${name}Command => ${builder.facadeCommandClassNameWidgetRef}(this);
}
""";
}