mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
refactor(transformer): rename Query to BrowserslistQuery (#7143)
This commit is contained in:
parent
481f7e603e
commit
8340243543
6 changed files with 17 additions and 17 deletions
|
|
@ -1,12 +1,10 @@
|
|||
mod data;
|
||||
mod query;
|
||||
mod targets;
|
||||
|
||||
use serde::Deserialize;
|
||||
|
||||
pub use self::{
|
||||
data::{bugfix_features, features},
|
||||
query::Query,
|
||||
targets::BabelTargets,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
@ -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].
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue