in src/Elastic.Documentation.Configuration/Builder/RedirectFile.cs [84:117]
private static LinkRedirect? ReadLinkRedirect(YamlStreamReader reader, string file, YamlMappingNode mapping)
{
var redirect = new LinkRedirect();
foreach (var entryValue in mapping.Children)
{
if (entryValue.Key is not YamlScalarNode scalar || scalar.Value is null)
continue;
var key = scalar.Value;
switch (key)
{
case "anchors":
redirect = redirect with { Anchors = reader.ReadDictionaryNullValue(entryValue) };
continue;
case "to":
var to = reader.ReadString(entryValue);
if (to is not null)
redirect = redirect with { To = to };
continue;
case "many":
var many = ReadManyRedirects(reader, file, entryValue.Value);
redirect = redirect with { Many = many };
continue;
}
}
if (redirect.To is null && redirect.Anchors is null && redirect.Many is null)
return null;
if (redirect.To is null && redirect.Many is null or { Length: 0 })
return redirect with { To = file };
return string.IsNullOrEmpty(redirect.To) && redirect.Many is null or { Length: 0 }
? null : redirect;
}