Skip to content

Commit cfde068

Browse files
authored
fix: should ignores names without columns (#117)
1 parent 91d09c1 commit cfde068

File tree

4 files changed

+50
-5
lines changed

4 files changed

+50
-5
lines changed

src/encoder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ impl MappingsEncoder for FullMappingsEncoder {
7070
fn encode(&mut self, mapping: &Mapping) {
7171
if self.active_mapping && self.current_line == mapping.generated_line {
7272
// A mapping is still active
73-
if mapping.original.is_some_and(|original| {
73+
if mapping.original.as_ref().is_some_and(|original| {
7474
original.source_index == self.current_source_index
7575
&& original.original_line == self.current_original_line
7676
&& original.original_column == self.current_original_column

src/helpers.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ fn stream_chunks_of_source_map_full<'a>(
419419
tracking_generated_index = current_generated_index;
420420
tracking_generated_line = mapping.generated_line;
421421
tracking_generated_column = mapping.generated_column;
422-
tracking_mapping_original = mapping.original;
422+
tracking_mapping_original = mapping.original.clone();
423423

424424
current_mapping = mappings_iter.next();
425425
}
@@ -497,7 +497,7 @@ fn stream_chunks_of_source_map_lines_final<'a>(
497497
let mut current_generated_line = 1;
498498

499499
let mut on_mapping = |mut mapping: Mapping| {
500-
if let Some(mut original) = mapping.original.filter(|_| {
500+
if let Some(original) = mapping.original.as_mut().filter(|_| {
501501
current_generated_line <= mapping.generated_line
502502
&& mapping.generated_line <= final_line
503503
}) {
@@ -556,8 +556,9 @@ fn stream_chunks_of_source_map_lines_full<'a>(
556556
}
557557
current_generated_line += 1;
558558
}
559-
if let Some(mut original) = mapping
559+
if let Some(original) = mapping
560560
.original
561+
.as_mut()
561562
.filter(|_| mapping.generated_line as usize <= lines.len())
562563
{
563564
let chunk = lines[current_generated_line as usize - 1];

src/source.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ pub struct Mapping {
480480
}
481481

482482
/// Represent original position information of a [Mapping].
483-
#[derive(Debug, Clone, PartialEq, Eq, Hash, Copy)]
483+
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
484484
pub struct OriginalLocation {
485485
/// Source index.
486486
pub source_index: u32,

src/source_map_source.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,4 +649,48 @@ mod tests {
649649
.unwrap(),
650650
);
651651
}
652+
653+
#[test]
654+
fn should_ignores_names_without_columns() {
655+
let source = SourceMapSource::new(SourceMapSourceOptions {
656+
value: "h",
657+
name: "hello.txt",
658+
source_map: SourceMap::from_json(
659+
r#"{
660+
"version": 3,
661+
"sources": ["hello.txt"],
662+
"mappings": "AAAAA",
663+
"names": ["hello"]
664+
}"#,
665+
)
666+
.unwrap(),
667+
original_source: Some("hello".to_string()),
668+
inner_source_map: Some(
669+
SourceMap::from_json(
670+
r#"{
671+
"version": 3,
672+
"sources": ["hello world.txt"],
673+
"mappings": "AAAA",
674+
"names": [],
675+
"sourcesContent": ["hello, world!"]
676+
}"#,
677+
)
678+
.unwrap(),
679+
),
680+
remove_original_source: false,
681+
});
682+
assert_eq!(
683+
source.map(&MapOptions::new(false)).unwrap(),
684+
SourceMap::from_json(
685+
r#"{
686+
"mappings": "AAAA",
687+
"names": [],
688+
"sources": ["hello world.txt"],
689+
"version": 3,
690+
"sourcesContent": ["hello, world!"]
691+
}"#
692+
)
693+
.unwrap()
694+
);
695+
}
652696
}

0 commit comments

Comments
 (0)