refactor(transformer): rename Query to BrowserslistQuery (#7143)

This commit is contained in:
Boshen 2024-11-05 13:45:12 +00:00
parent 481f7e603e
commit 8340243543
6 changed files with 17 additions and 17 deletions

View file

@ -1,12 +1,10 @@
mod data;
mod query;
mod targets;
use serde::Deserialize;
pub use self::{
data::{bugfix_features, features},
query::Query,
targets::BabelTargets,
};

View file

@ -5,8 +5,7 @@ use oxc_diagnostics::Error;
pub use browserslist::Version;
use super::query::Query;
use crate::options::EngineTargets;
use crate::options::{BrowserslistQuery, EngineTargets};
/// <https://babel.dev/docs/babel-preset-env#targets>
#[derive(Debug, Deserialize)]
@ -37,8 +36,8 @@ impl TryFrom<BabelTargets> for EngineTargets {
type Error = Error;
fn try_from(value: BabelTargets) -> Result<Self, Self::Error> {
match value {
BabelTargets::String(s) => Query::Single(s).exec(),
BabelTargets::Array(v) => Query::Multiple(v).exec(),
BabelTargets::String(s) => BrowserslistQuery::Single(s).exec(),
BabelTargets::Array(v) => BrowserslistQuery::Multiple(v).exec(),
BabelTargets::Map(map) => {
let mut targets = Self::default();
for (key, value) in map {

View file

@ -8,7 +8,7 @@ use serde::{de::DeserializeOwned, Deserialize};
use crate::CompilerAssumptions;
pub use self::env::{BabelEnvOptions, BabelTargets, Query};
pub use self::env::{BabelEnvOptions, BabelTargets};
use self::{plugins::BabelPlugins, presets::BabelPresets};
/// Babel options

View file

@ -9,17 +9,17 @@ use super::EngineTargets;
#[derive(Debug, Clone, Deserialize, Eq, PartialEq, PartialOrd, Ord, Hash)]
#[serde(untagged)]
pub enum Query {
pub enum BrowserslistQuery {
Single(String),
Multiple(Vec<String>),
}
fn cache() -> &'static DashMap<Query, EngineTargets> {
static CACHE: OnceLock<DashMap<Query, EngineTargets>> = OnceLock::new();
fn cache() -> &'static DashMap<BrowserslistQuery, EngineTargets> {
static CACHE: OnceLock<DashMap<BrowserslistQuery, EngineTargets>> = OnceLock::new();
CACHE.get_or_init(DashMap::new)
}
impl Query {
impl BrowserslistQuery {
pub fn exec(&self) -> Result<EngineTargets, Error> {
if let Some(v) = cache().get(self) {
return Ok(v.clone());
@ -32,14 +32,14 @@ impl Query {
};
let result = match self {
Query::Single(ref s) => {
BrowserslistQuery::Single(ref s) => {
if s.is_empty() {
browserslist::resolve(&["defaults"], &options)
} else {
browserslist::resolve(&[s], &options)
}
}
Query::Multiple(ref s) => browserslist::resolve(s, &options),
BrowserslistQuery::Multiple(ref s) => browserslist::resolve(s, &options),
};
let result = match result {
@ -63,11 +63,11 @@ impl Query {
#[cfg(test)]
mod tests {
use super::Query;
use super::BrowserslistQuery;
#[test]
fn test_empty() {
let res = Query::Single(String::new()).exec().unwrap();
let res = BrowserslistQuery::Single(String::new()).exec().unwrap();
assert!(!res.is_any_target(), "empty query should return non-empty result");
}
}

View file

@ -3,7 +3,7 @@ use serde::Deserialize;
use oxc_diagnostics::Error;
use super::babel::{BabelTargets, Query};
use super::{babel::BabelTargets, BrowserslistQuery};
/// A map of engine names to minimum supported versions.
#[derive(Debug, Default, Clone, Eq, PartialEq, Deserialize)]
@ -27,7 +27,7 @@ impl EngineTargets {
///
/// * Query is invalid.
pub fn try_from_query(query: &str) -> Result<Self, Error> {
Query::Single(query.to_string()).exec()
BrowserslistQuery::Single(query.to_string()).exec()
}
/// Returns true if all fields are [None].

View file

@ -1,4 +1,6 @@
pub mod babel;
mod browserslist_query;
mod engine_targets;
mod env;
@ -24,6 +26,7 @@ use crate::{
};
pub use self::{
browserslist_query::BrowserslistQuery,
engine_targets::EngineTargets,
env::{ESTarget, EnvOptions},
};