toContent method

String toContent({
  1. required Context pathContext,
})

Returns the contents of the built package config file.

Implementation

String toContent({required path.Context pathContext}) {
  var buffer = StringBuffer();

  buffer.writeln('{');

  var prefix = ' ' * 2;
  buffer.writeln('$prefix"configVersion": 2,');
  buffer.writeln('$prefix"packages": [');

  for (var i = 0; i < _packages.length; i++) {
    var package = _packages[i];

    var prefix = ' ' * 4;
    buffer.writeln('$prefix{');

    prefix = ' ' * 6;
    buffer.writeln('$prefix"name": "${package.name}",');

    var rootUri = pathContext.toUri(package.rootPath).toString();
    buffer.write('$prefix"rootUri": "$rootUri"');

    buffer.writeln(',');
    buffer.write('$prefix"packageUri": "${package.packageUri}"');

    if (package.languageVersion != null) {
      buffer.writeln(',');
      buffer.write('$prefix"languageVersion": "${package.languageVersion}"');
    }

    buffer.writeln();

    prefix = ' ' * 4;
    buffer.write(prefix);
    buffer.writeln(i < _packages.length - 1 ? '},' : '}');
  }

  buffer.writeln('  ]');
  buffer.writeln('}');

  return buffer.toString();
}