internal static FileEntry ToFile <T>(FileKind kind, T value) { var filename = FileEntry.GetFilenameForKind(kind); string output; if (Utilities.IsYamlFile(filename)) { StringWriter tw = new StringWriter(); YamlPocoSerializer.CanonicalWrite(tw, value); output = tw.ToString(); } else { var jsonStr = JsonSerializer.Serialize(value, Utilities._jsonOpts); output = JsonNormalizer.Normalize(jsonStr); } var bytes = Encoding.UTF8.GetBytes(output); return(new FileEntry { Name = filename, RawBytes = bytes }); }
public void WriteAllJson <T>(string subdir, FilePath filename, T obj) { if (Utilities.IsYamlFile(filename)) { using (var tw = new StringWriter()) { YamlPocoSerializer.CanonicalWrite(tw, obj); WriteAllText(subdir, filename, tw.ToString()); } } else { var text = JsonSerializer.Serialize <T>(obj, Utilities._jsonOpts); text = JsonNormalizer.Normalize(text); WriteAllText(subdir, filename, text); } }