Skip to content

Commit e5585e9

Browse files
authoredFeb 7, 2024
chore(preset-env): Update browserslist-rs (#8614)
1 parent 927b14a commit e5585e9

File tree

7 files changed

+63
-3
lines changed

7 files changed

+63
-3
lines changed
 

‎Cargo.lock

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎crates/preset_env_base/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ bench = false
1313
[dependencies]
1414
ahash = "0.8.5"
1515
anyhow = "1"
16-
browserslist-rs = "0.14.0"
16+
browserslist-rs = "0.15.0"
1717
dashmap = "5.4.0"
1818
once_cell = "1.18.0"
1919
semver = { version = "1.0.17", features = ["serde"] }

‎crates/preset_env_base/src/lib.rs

+15
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,21 @@ pub struct BrowserData<T: Default> {
7272
pub bun: T,
7373
}
7474

75+
impl<T> BrowserData<T>
76+
where
77+
T: Default,
78+
{
79+
pub fn insert(&mut self, k: &str, v: T) -> T {
80+
for (key, value) in self.iter_mut() {
81+
if k == key {
82+
return std::mem::replace(value, v);
83+
}
84+
}
85+
86+
panic!("unknown key: {}", k)
87+
}
88+
}
89+
7590
/// A map of browser names to data for feature support in browser.
7691
///
7792
/// This type mainly stores `minimum version for each browsers with support for

‎crates/preset_env_base/src/query.rs

+16
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,22 @@ pub fn targets_to_versions(v: Option<Targets>) -> Result<Versions, Error> {
121121
}
122122
}
123123

124+
let mut result = Versions::default();
125+
for (k, v) in map.iter() {
126+
match v {
127+
QueryOrVersion::Query(q) => {
128+
let v = q.exec().context("failed to run query")?;
129+
130+
for (k, v) in v {
131+
result.insert(k, v);
132+
}
133+
}
134+
QueryOrVersion::Version(v) => {
135+
result.insert(k, Some(*v));
136+
}
137+
}
138+
}
139+
124140
unimplemented!("Targets: {:?}", map)
125141
}
126142
_ => unimplemented!("Option<Targets>: {:?}", v),
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"jsc": {
3+
"parser": {
4+
"syntax": "ecmascript",
5+
"jsx": false
6+
},
7+
"loose": false,
8+
"minify": {
9+
"compress": false,
10+
"mangle": false
11+
}
12+
},
13+
"module": {
14+
"type": "es6"
15+
},
16+
"minify": false,
17+
"isModule": true,
18+
"env": {
19+
"targets": "ios_saf 14",
20+
"coreJs": "3.21",
21+
"mode": "usage"
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// Doesn't matter
2+
console.log(Promise.resolve)
3+
console.log(globalThis)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
console.log(Promise.resolve);
2+
console.log(globalThis);

0 commit comments

Comments
 (0)
Please sign in to comment.