generateWrapper function

String generateWrapper(
  1. List<SlangPackageInfo> packages
)

Generate nested TranslationProvider wrapper function Order: main_app (outermost) → dependencies → child (innermost)

Implementation

String generateWrapper(List<SlangPackageInfo> packages) {
  if (packages.isEmpty) {
    return '''
Widget pvtroWrapper({required Widget child}) {
  return child;
}
''';
  }

  final buffer = StringBuffer();
  buffer.writeln('Widget pvtroWrapper({required Widget child}) {');

  // Build nested TranslationProviders
  // First package (main) is outermost, last is innermost around child
  for (var i = 0; i < packages.length; i++) {
    final indent = '  ' * (i + 1);
    if (i == 0) {
      buffer.writeln('  return _\$$i.TranslationProvider(');
    } else {
      buffer.writeln('${indent}child: _\$$i.TranslationProvider(');
    }
  }

  // The innermost child
  final deepestIndent = '  ' * (packages.length + 1);
  buffer.writeln('${deepestIndent}child: child,');

  // Close all providers (reverse order)
  for (var i = packages.length - 1; i >= 0; i--) {
    final indent = '  ' * (i + 1);
    buffer.write('$indent)');
    if (i > 0) {
      buffer.writeln(',');
    } else {
      buffer.writeln(';');
    }
  }

  buffer.writeln('}');

  return buffer.toString();
}