Skip to content

Commit 779ff46

Browse files
committed
refactor(transformer): HelperLoader common transform: Helper struct (#6568)
Pure refactor. Use a struct with named fields to store loaded helper details, for clarity.
1 parent bc24a24 commit 779ff46

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

crates/oxc_transformer/src/common/helper_loader.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,10 @@ impl<'a, 'ctx> Traverse<'a> for HelperLoader<'a, 'ctx> {
145145
}
146146
}
147147

148-
// (helper_name, (path, bound_ident))
149-
type LoadedHelper<'a> = FxHashMap<Atom<'a>, (Atom<'a>, BoundIdentifier<'a>)>;
148+
struct Helper<'a> {
149+
source: Atom<'a>,
150+
local: BoundIdentifier<'a>,
151+
}
150152

151153
/// Stores the state of the helper loader in [`TransformCtx`].
152154
pub struct HelperLoaderStore<'a> {
@@ -155,7 +157,7 @@ pub struct HelperLoaderStore<'a> {
155157
/// Symbol ID for the `babelHelpers`.
156158
babel_helpers_symbol_id: Cell<Option<SymbolId>>,
157159
/// Loaded helpers, determined what helpers are loaded and what imports should be added.
158-
loaded_helpers: RefCell<LoadedHelper<'a>>,
160+
loaded_helpers: RefCell<FxHashMap<Atom<'a>, Helper<'a>>>,
159161
}
160162

161163
// Public methods
@@ -225,12 +227,12 @@ impl<'a> HelperLoaderStore<'a> {
225227
ctx: &mut TraverseCtx<'a>,
226228
) -> Expression<'a> {
227229
let mut loaded_helpers = self.loaded_helpers.borrow_mut();
228-
let (_, binding) = loaded_helpers.entry(helper_name).or_insert_with_key(|helper_name| {
230+
let helper = loaded_helpers.entry(helper_name).or_insert_with_key(|helper_name| {
229231
let source = ctx.ast.atom(&format!("{}/helpers/{helper_name}", self.module_name));
230-
let binding = ctx.generate_uid_in_root_scope(helper_name, SymbolFlags::Import);
231-
(source, binding)
232+
let local = ctx.generate_uid_in_root_scope(helper_name, SymbolFlags::Import);
233+
Helper { source, local }
232234
});
233-
binding.create_read_expression(ctx)
235+
helper.local.create_read_expression(ctx)
234236
}
235237

236238
fn transform_for_external_helper(
@@ -258,8 +260,8 @@ impl<'a> HelperLoaderStore<'a> {
258260

259261
fn add_imports(&self, transform_ctx: &TransformCtx<'a>) {
260262
let mut loaded_helpers = self.loaded_helpers.borrow_mut();
261-
loaded_helpers.drain().for_each(|(_, (source, import))| {
262-
transform_ctx.module_imports.add_default_import(source, import, false);
263-
});
263+
for (_, helper) in loaded_helpers.drain() {
264+
transform_ctx.module_imports.add_default_import(helper.source, helper.local, false);
265+
}
264266
}
265267
}

0 commit comments

Comments
 (0)