use farmfe_core::{
config::comments::CommentsConfig,
swc_common::{
comments::{Comment, CommentKind, SingleThreadedComments},
BytePos,
},
};
pub fn minify_comments(comments: &SingleThreadedComments, config: &CommentsConfig) {
match config {
CommentsConfig::Bool(true) => {}
CommentsConfig::Bool(false) => {
let (mut l, mut t) = comments.borrow_all_mut();
l.clear();
t.clear();
}
CommentsConfig::License => {
let preserve_excl = |_: &BytePos, vc: &mut Vec<Comment>| -> bool {
vc.retain(|c: &Comment| {
c.text.contains("@lic")
|| c.text.contains("@preserve")
|| c.text.contains("@copyright")
|| c.text.contains("@cc_on")
|| (c.kind == CommentKind::Block && c.text.starts_with('!'))
});
!vc.is_empty()
};
let (mut l, mut t) = comments.borrow_all_mut();
l.retain(preserve_excl);
t.retain(preserve_excl);
}
}
}