diff --git a/api/Cargo.lock b/api/Cargo.lock index 4cd75b66..10696d87 100644 --- a/api/Cargo.lock +++ b/api/Cargo.lock @@ -854,9 +854,9 @@ dependencies = [ [[package]] name = "deno_ast" -version = "0.36.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff757b9a40f67682e34c2806a2d5a0331449acad467ab53e783cad8092675e50" +checksum = "67f9b18b22c707b59cf1ee9cb6f0afbfcf0d03a59b9244ddadacf6a4dc7cfeba" dependencies = [ "anyhow", "base64 0.21.6", @@ -888,15 +888,16 @@ dependencies = [ "swc_visit", "swc_visit_macros", "text_lines", + "thiserror", "unicode-width", "url", ] [[package]] name = "deno_doc" -version = "0.123.1" +version = "0.124.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a185c2d8aa17865002e9c5ee5652534ff11406b1633833306366e1aaa37a273a" +checksum = "3e1215167b2d2a7595cf32737ff9c7802d7faf58dfbe8c9e5d8f07d4c3af4987" dependencies = [ "ammonia", "anyhow", @@ -929,9 +930,9 @@ dependencies = [ [[package]] name = "deno_graph" -version = "0.71.2" +version = "0.72.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e6b15fb6eda0c3b03ec24ae7d3c4e7a9c561f8cfe79aa9a9c3abf2b0fc5a8b4" +checksum = "508791f6140a8b5b1ac40bac1842db04281b61db4b64c5fd5bf9f1f7259f328a" dependencies = [ "anyhow", "async-trait", @@ -4376,18 +4377,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", diff --git a/api/Cargo.toml b/api/Cargo.toml index ad7eaa80..789f252e 100644 --- a/api/Cargo.toml +++ b/api/Cargo.toml @@ -78,9 +78,9 @@ deno_semver = "0.5.2" flate2 = "1" thiserror = "1" async-tar = "0.4.2" -deno_graph = "0.71.2" -deno_ast = "0.36.1" -deno_doc = { version = "0.123.0", features = ["tree-sitter"] } +deno_graph = "0.72.0" +deno_ast = "0.37.0" +deno_doc = { version = "0.124.0", features = ["tree-sitter"] } comrak = { version = "0.20.0", default-features = false } async-trait = "0.1.73" jsonwebkey = { version = "0.3.5", features = ["jsonwebtoken", "jwt-convert"] } diff --git a/api/src/npm/emit.rs b/api/src/npm/emit.rs index 82bdb926..043ee6fd 100644 --- a/api/src/npm/emit.rs +++ b/api/src/npm/emit.rs @@ -12,8 +12,6 @@ use deno_ast::swc::ast::Lit; use deno_ast::swc::ast::Module; use deno_ast::swc::ast::NamedExport; use deno_ast::swc::ast::Str; -use deno_ast::swc::common::Globals; -use deno_ast::swc::common::Mark; use deno_ast::swc::visit::as_folder; use deno_ast::swc::visit::noop_visit_mut_type; use deno_ast::swc::visit::FoldWith; @@ -45,22 +43,22 @@ pub fn transpile_to_js( let source_map = SourceMap::single(source_url, source.text_info().text_str().to_string()); - let mut folder = as_folder(NpmImportTransform); - let program = source.program_ref().clone().fold_with(&mut folder); - // needs to align with what's done internally in source map assert_eq!(1, source.text_info().range().start.as_byte_pos().0); // we need the comments to be mutable, so make it single threaded let comments = source.comments().as_single_threaded(); - let globals = Globals::new(); - deno_ast::swc::common::GLOBALS.set(&globals, || { - let top_level_mark = Mark::fresh(Mark::root()); + source.globals().with(|marks| { + let mut folder = as_folder(NpmImportTransform); + // todo(dsherret): this shouldn't clone the entire program. Probably we + // should add a way to run `transpile` with custom folders + let program = source.program_ref().clone().fold_with(&mut folder); + let program = fold_program( program, &transpile_options, &source_map, &comments, - top_level_mark, + marks, source.diagnostics(), )?;