in src/PSDocs/Pipeline/PipelineReceiver.cs [154:180]
private static string ReadAsString(PSObject sourceObject, out InputFileInfo sourceInfo)
{
sourceInfo = null;
if (sourceObject.BaseObject is string)
{
return sourceObject.BaseObject.ToString();
}
else if (sourceObject.BaseObject is InputFileInfo inputFileInfo)
{
sourceInfo = inputFileInfo;
using (var reader = new StreamReader(inputFileInfo.FullName))
return reader.ReadToEnd();
}
else if (sourceObject.BaseObject is FileInfo fileInfo)
{
sourceInfo = new InputFileInfo(PSDocumentOption.GetRootedBasePath(""), fileInfo.FullName);
using (var reader = new StreamReader(fileInfo.FullName))
return reader.ReadToEnd();
}
else
{
var uri = sourceObject.BaseObject as Uri;
sourceInfo = new InputFileInfo(null, uri.ToString());
using (var webClient = new WebClient())
return webClient.DownloadString(uri);
}
}