private static TextReader ReadAsReader()

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));
                }
            }
        }