Skip to content
This repository was archived by the owner on Jul 6, 2025. It is now read-only.

Commit c039ac1

Browse files
author
Wenjie Xia
committed
refactor: improve useDeno hook signature
1 parent 87c97d9 commit c039ac1

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

compiler/src/resolve.rs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -670,9 +670,25 @@ impl Fold for AlephResolveFold {
670670
_ => false,
671671
};
672672
if has_callback {
673+
let bundle_mode = self.resolver.borrow().bundle_mode;
673674
let id = self.new_use_deno_hook_ident();
674-
if call.args.len() > 1 {
675-
call.args[1] = ExprOrSpread {
675+
if bundle_mode {
676+
call.args[0] = ExprOrSpread {
677+
spread: None,
678+
expr: Box::new(Expr::Lit(Lit::Null(Null { span: DUMMY_SP }))),
679+
};
680+
}
681+
if call.args.len() == 1 {
682+
call.args.push(ExprOrSpread {
683+
spread: None,
684+
expr: Box::new(Expr::Lit(Lit::Num(Number {
685+
span: DUMMY_SP,
686+
value: 0 as f64,
687+
}))),
688+
});
689+
}
690+
if call.args.len() > 2 {
691+
call.args[2] = ExprOrSpread {
676692
spread: None,
677693
expr: Box::new(Expr::Lit(Lit::Str(new_js_str(id.clone())))),
678694
};

compiler/src/swc.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ mod tests {
303303
let (code, _) = module
304304
.transpile(resolver.clone(), &EmitOptions::default())
305305
.expect("could not transpile module");
306+
println!("{}", code);
306307
(code, resolver)
307308
}
308309

@@ -362,12 +363,12 @@ mod tests {
362363
}
363364

364365
#[test]
365-
fn test_transpile_use_deno() {
366+
fn test_sign_use_deno() {
366367
let specifer = "/pages/index.tsx";
367368
let source = r#"
368369
export default function Index() {
369370
const verison = useDeno(() => Deno.version)
370-
const verison = useDeno(async () => await readJson("data.json"))
371+
const verison = useDeno(async () => await readJson("data.json"), 1000)
371372
return (
372373
<>
373374
<p>Deno v{version.deno}</p>
@@ -390,8 +391,11 @@ mod tests {
390391

391392
for _ in 0..3 {
392393
let (code, _) = t(specifer, source, false);
393-
assert!(code.contains(format!(", \"useDeno-{}\"", id_1).as_str()));
394-
assert!(code.contains(format!(", \"useDeno-{}\"", id_2).as_str()));
394+
assert!(code.contains(format!("0, \"useDeno-{}\"", id_1).as_str()));
395+
assert!(code.contains(format!("1000, \"useDeno-{}\"", id_2).as_str()));
396+
let (code, _) = t(specifer, source, true);
397+
assert!(code.contains(format!("null, 0, \"useDeno-{}\"", id_1).as_str()));
398+
assert!(code.contains(format!("null, 1000, \"useDeno-{}\"", id_2).as_str()));
395399
}
396400
}
397401

0 commit comments

Comments
 (0)