public static SourceMap Flatten()

in src/SourcemapToolkit.SourcemapParser/SourceMapTransformer.cs [13:42]


		public static SourceMap Flatten(SourceMap sourceMap)
		{
			HashSet<int> visitedLines = new HashSet<int>();
			List<MappingEntry> parsedMappings = new List<MappingEntry>(sourceMap.ParsedMappings.Count); // assume each line will not have been visited before

			foreach (MappingEntry mapping in sourceMap.ParsedMappings)
			{
				int generatedLine = mapping.GeneratedSourcePosition.ZeroBasedLineNumber;

				if (visitedLines.Add(generatedLine))
				{
					MappingEntry newMapping = mapping.CloneWithResetColumnNumber();
					parsedMappings.Add(newMapping);
				}
			}

			// Free-up any unneeded space.  This no-ops if we're already the right size.
			parsedMappings.Capacity = parsedMappings.Count;

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

			return newMap;
		}