From adb01fe60c10dc119cffcd025f8c30a332547793 Mon Sep 17 00:00:00 2001 From: mattcompiles Date: Tue, 7 Feb 2023 11:37:35 +1100 Subject: [PATCH] Sort global deps before injecting imports (#8818) --- Cargo.lock | 1 + packages/transformers/js/core/Cargo.toml | 1 + packages/transformers/js/core/src/global_replacer.rs | 5 +++-- packages/transformers/js/core/src/lib.rs | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d17ea50964d..ac667fe21fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1205,6 +1205,7 @@ dependencies = [ "Inflector", "data-encoding", "dunce", + "indexmap", "indoc", "path-slash", "pathdiff", diff --git a/packages/transformers/js/core/Cargo.toml b/packages/transformers/js/core/Cargo.toml index 107c6b7e900..1efdcbdf217 100644 --- a/packages/transformers/js/core/Cargo.toml +++ b/packages/transformers/js/core/Cargo.toml @@ -20,3 +20,4 @@ sha-1 = "0.10.0" dunce = "1.0.1" pathdiff = "0.2.0" path-slash = "0.1.4" +indexmap = "1.9.2" diff --git a/packages/transformers/js/core/src/global_replacer.rs b/packages/transformers/js/core/src/global_replacer.rs index e249e6da2ba..a39d0ad4846 100644 --- a/packages/transformers/js/core/src/global_replacer.rs +++ b/packages/transformers/js/core/src/global_replacer.rs @@ -1,5 +1,6 @@ +use indexmap::IndexMap; use path_slash::PathBufExt; -use std::collections::{HashMap, HashSet}; +use std::collections::HashSet; use std::path::Path; use swc_atoms::JsWord; @@ -14,7 +15,7 @@ pub struct GlobalReplacer<'a> { pub source_map: &'a SourceMap, pub items: &'a mut Vec, pub global_mark: Mark, - pub globals: HashMap, + pub globals: IndexMap, pub project_root: &'a Path, pub filename: &'a Path, pub decls: &'a mut HashSet, diff --git a/packages/transformers/js/core/src/lib.rs b/packages/transformers/js/core/src/lib.rs index e0d51e61b3a..d82087c3ea0 100644 --- a/packages/transformers/js/core/src/lib.rs +++ b/packages/transformers/js/core/src/lib.rs @@ -26,6 +26,7 @@ use std::collections::{HashMap, HashSet}; use std::path::{Path, PathBuf}; use std::str::FromStr; +use indexmap::IndexMap; use path_slash::PathExt; use serde::{Deserialize, Serialize}; use swc_common::comments::SingleThreadedComments; @@ -369,7 +370,7 @@ pub fn transform(config: Config) -> Result { source_map: &source_map, items: &mut global_deps, global_mark, - globals: HashMap::new(), + globals: IndexMap::new(), project_root: Path::new(&config.project_root), filename: Path::new(&config.filename), decls: &mut decls,