writeHtmlViewerFromJson function

String writeHtmlViewerFromJson({
  1. required String jsonString,
  2. required String outputDir,
  3. String fileName = 'graph.html',
})

Escribe el visor HTML desde un JSON ya serializado. Evita re-parsear + re-serializar cuando el JSON ya existe en disco. Devuelve la ruta absoluta del archivo escrito. Lanza StateError si el placeholder no está en el template (template corrupto).

Implementation

String writeHtmlViewerFromJson({
  required String jsonString,
  required String outputDir,
  String fileName = 'graph.html',
}) {
  if (!kGraphHtmlTemplate.contains(_placeholder)) {
    throw StateError(
      'Template corrupto: el placeholder "$_placeholder" no se encontró.',
    );
  }
  // El template menciona el placeholder también en comentarios HTML de documentación,
  // además de la ocurrencia real dentro del <script id="graph-payload">.
  // replaceAll garantiza que ninguna ocurrencia del marcador quede en el output,
  // lo que es seguro porque el JSON no puede contener el string del placeholder.
  final html = kGraphHtmlTemplate.replaceAll(_placeholder, jsonString);
  final dir = Directory(outputDir);
  if (!dir.existsSync()) dir.createSync(recursive: true);
  final outFile = File(p.join(outputDir, fileName));
  outFile.writeAsStringSync(html);
  return outFile.absolute.path;
}