/// <summary>
        /// Parses a stream representing a source map into a SourceMap object.
        /// </summary>
        public SourceMap ParseSourceMap(StreamReader sourceMapStream)
        {
            if (sourceMapStream == null)
            {
                return(null);
            }
            using (JsonTextReader jsonTextReader = new JsonTextReader(sourceMapStream))
            {
                JsonSerializer serializer = new JsonSerializer();

                SourceMap result = serializer.Deserialize <SourceMap>(jsonTextReader);

                // Since SourceMap is immutable we need to allocate a new one and copy over all the information
                List <MappingEntry> parsedMappings = _mappingsListParser.ParseMappings(result.Mappings, result.Names, result.Sources);

                // Resize to free unused memory
                parsedMappings.Capacity = parsedMappings.Count;

                result = new SourceMap(
                    version: result.Version,
                    file: result.File,
                    mappings: result.Mappings,
                    sources: result.Sources,
                    names: result.Names,
                    parsedMappings: parsedMappings,
                    sourcesContent: result.SourcesContent);

                sourceMapStream.Close();
                return(result);
            }
        }
示例#2
0
        /// <summary>
        /// Parses a stream representing a source map into a SourceMap object.
        /// </summary>
        public SourceMap ParseSourceMap(string content)
        {
            if (content == null)
                return null;

            SourceMap result;

            using (var reader = new StringReader(content))
                result = SerializationHelper.Deserialize<SourceMap>(reader);

            result.ParsedMappings = _mappingsListParser.ParseMappings(result.Mappings, result.Names, result.Sources);

            return result;
        }
示例#3
0
        /// <summary>
        /// Parses a stream representing a source map into a SourceMap object.
        /// </summary>
        public SourceMap ParseSourceMap(StreamReader sourceMapStream)
        {
            if (sourceMapStream == null)
            {
                return(null);
            }
            using (JsonTextReader jsonTextReader = new JsonTextReader(sourceMapStream))
            {
                JsonSerializer serializer = new JsonSerializer();

                SourceMap result = serializer.Deserialize <SourceMap>(jsonTextReader);
                result.ParsedMappings = _mappingsListParser.ParseMappings(result.Mappings, result.Names, result.Sources);
                sourceMapStream.Close();
                return(result);
            }
        }