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