Skip to content

Commit

Permalink
refactor: code
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait committed Dec 18, 2022
1 parent b2cda90 commit 4087178
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 39 deletions.
53 changes: 25 additions & 28 deletions crates/swc_css_compat/src/compiler/color_alpha_parameter.rs
@@ -1,45 +1,42 @@
use swc_atoms::js_word;
use swc_css_ast::{AbsoluteColorBase, ComponentValue};
use swc_css_ast::{AbsoluteColorBase, ComponentValue, FunctionName};

use crate::compiler::Compiler;

impl Compiler {
pub(crate) fn process_color_alpha_parameter(&mut self, n: &mut AbsoluteColorBase) {
if let AbsoluteColorBase::Function(function) = n {
let name = function.name.value.to_ascii_lowercase();

if let Some(ComponentValue::AlphaValue(_) | ComponentValue::Function(_)) =
function.value.last()
{
if !matches!(
name,
js_word!("rgb") | js_word!("rgba") | js_word!("hsl") | js_word!("hsla")
) {
return;
}

match name {
js_word!("rgb") => {
function.name.value = js_word!("rgba");
function.name.raw = None;
}
js_word!("hsl") => {
function.name.value = js_word!("hsla");
function.name.raw = None;
let name = match &mut function.name {
FunctionName::Ident(name) => name,
_ => {
return;
}
_ => {}
};

if name.value == js_word!("rgb") {
name.value = js_word!("rgba");
name.raw = None;
} else if name.value == js_word!("hsl") {
name.value = js_word!("hsla");
name.raw = None;
}
} else {
match name {
js_word!("rgba") => {
function.name.value = js_word!("rgb");
function.name.raw = None;
}
js_word!("hsla") => {
function.name.value = js_word!("hsl");
function.name.raw = None;
let name = match &mut function.name {
FunctionName::Ident(name) => name,
_ => {
return;
}
_ => {}
};

if name.value == js_word!("rgba") {
name.value = js_word!("rgb");
name.raw = None;
} else if name.value == js_word!("hsla") {
name.value = js_word!("hsl");
name.raw = None;
}
}
}
Expand Down
Expand Up @@ -2,7 +2,7 @@ use std::mem::take;

use swc_atoms::js_word;
use swc_common::DUMMY_SP;
use swc_css_ast::{AbsoluteColorBase, ComponentValue, Delimiter, DelimiterValue};
use swc_css_ast::{matches_eq, AbsoluteColorBase, ComponentValue, Delimiter, DelimiterValue};

use crate::compiler::Compiler;

Expand All @@ -12,11 +12,12 @@ impl Compiler {
n: &mut AbsoluteColorBase,
) {
if let AbsoluteColorBase::Function(function) = n {
let name = function.name.value.to_ascii_lowercase();

if !matches!(
name,
js_word!("rgb") | js_word!("rgba") | js_word!("hsl") | js_word!("hsla")
if !matches_eq!(
function.name,
js_word!("rgb"),
js_word!("rgba"),
js_word!("hsl"),
js_word!("hsla")
) {
return;
}
Expand Down
10 changes: 5 additions & 5 deletions crates/swc_css_compat/src/compiler/legacy_rgb_and_hsl.rs
@@ -1,7 +1,9 @@
use std::f64::consts::PI;

use swc_atoms::js_word;
use swc_css_ast::{AbsoluteColorBase, AlphaValue, Angle, ComponentValue, Hue, Number, Percentage};
use swc_css_ast::{
matches_eq, AbsoluteColorBase, AlphaValue, Angle, ComponentValue, Hue, Number, Percentage,
};

use crate::compiler::{
utils::{clamp_unit_f32, round_alpha},
Expand All @@ -11,10 +13,8 @@ use crate::compiler::{
impl Compiler {
pub(crate) fn process_rgb_and_hsl(&mut self, n: &mut AbsoluteColorBase) {
if let AbsoluteColorBase::Function(function) = n {
let name = function.name.value.to_ascii_lowercase();

let is_rgb = matches!(name, js_word!("rgb") | js_word!("rgba"));
let is_hsl = matches!(name, js_word!("hsl") | js_word!("hsla"));
let is_rgb = matches_eq!(function.name, js_word!("rgb"), js_word!("rgba"));
let is_hsl = matches_eq!(function.name, js_word!("hsl"), js_word!("hsla"));

if is_rgb {
function.value = function
Expand Down

0 comments on commit 4087178

Please sign in to comment.