Skip to content

Commit 52bd0b1

Browse files
committed
refactor(transformer): move common utils functions to the root module (#8513)
These utils functions are very useful for other plugins, I am going to gradually move utils functions where in separate plugins into the root utils module. It also will include scope adjusting functions.
1 parent 04bc259 commit 52bd0b1

File tree

5 files changed

+47
-38
lines changed

5 files changed

+47
-38
lines changed

crates/oxc_transformer/src/es2022/class_properties/private_field.rs

+7-3
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,17 @@ use oxc_traverse::{
1111
ast_operations::get_var_name_from_node, Ancestor, BoundIdentifier, TraverseCtx,
1212
};
1313

14-
use crate::{common::helper_loader::Helper, TransformCtx};
14+
use crate::{
15+
common::helper_loader::Helper,
16+
utils::ast_builder::{create_bind_call, create_call_call, create_member_callee},
17+
TransformCtx,
18+
};
1519

1620
use super::{
1721
class_details::ResolvedGetSetPrivateProp,
1822
utils::{
19-
create_assignment, create_bind_call, create_call_call, create_member_callee,
20-
create_underscore_ident_name, debug_assert_expr_is_not_parenthesis_or_typescript_syntax,
23+
create_assignment, create_underscore_ident_name,
24+
debug_assert_expr_is_not_parenthesis_or_typescript_syntax,
2125
},
2226
ClassProperties, ResolvedPrivateProp,
2327
};

crates/oxc_transformer/src/es2022/class_properties/utils.rs

+1-35
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
44
use std::path::PathBuf;
55

6-
use oxc_ast::{ast::*, NONE};
6+
use oxc_ast::ast::*;
77
use oxc_span::SPAN;
88
use oxc_syntax::reference::ReferenceFlags;
99
use oxc_traverse::{BoundIdentifier, TraverseCtx};
@@ -81,37 +81,3 @@ pub(super) fn create_prototype_member<'a>(
8181
let static_member = ctx.ast.member_expression_static(SPAN, object, property, false);
8282
Expression::from(static_member)
8383
}
84-
85-
/// `object` -> `object.call`.
86-
pub(super) fn create_member_callee<'a>(
87-
object: Expression<'a>,
88-
property: &'static str,
89-
ctx: &mut TraverseCtx<'a>,
90-
) -> Expression<'a> {
91-
let property = ctx.ast.identifier_name(SPAN, Atom::from(property));
92-
Expression::from(ctx.ast.member_expression_static(SPAN, object, property, false))
93-
}
94-
95-
/// `object` -> `object.bind(this)`.
96-
pub(super) fn create_bind_call<'a>(
97-
callee: Expression<'a>,
98-
this: Expression<'a>,
99-
span: Span,
100-
ctx: &mut TraverseCtx<'a>,
101-
) -> Expression<'a> {
102-
let callee = create_member_callee(callee, "bind", ctx);
103-
let arguments = ctx.ast.vec1(Argument::from(this));
104-
ctx.ast.expression_call(span, callee, NONE, arguments, false)
105-
}
106-
107-
/// `object` -> `object.call(...arguments)`.
108-
pub(super) fn create_call_call<'a>(
109-
callee: Expression<'a>,
110-
this: Expression<'a>,
111-
span: Span,
112-
ctx: &mut TraverseCtx<'a>,
113-
) -> Expression<'a> {
114-
let callee = create_member_callee(callee, "call", ctx);
115-
let arguments = ctx.ast.vec1(Argument::from(this));
116-
ctx.ast.expression_call(span, callee, NONE, arguments, false)
117-
}

crates/oxc_transformer/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ mod common;
1919
mod compiler_assumptions;
2020
mod context;
2121
mod options;
22+
mod utils;
2223

2324
// Presets: <https://babel.dev/docs/presets>
2425
mod es2015;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
use oxc_ast::{ast::*, NONE};
2+
use oxc_span::SPAN;
3+
use oxc_traverse::TraverseCtx;
4+
5+
/// `object` -> `object.call`.
6+
pub(crate) fn create_member_callee<'a>(
7+
object: Expression<'a>,
8+
property: &'static str,
9+
ctx: &mut TraverseCtx<'a>,
10+
) -> Expression<'a> {
11+
let property = ctx.ast.identifier_name(SPAN, Atom::from(property));
12+
Expression::from(ctx.ast.member_expression_static(SPAN, object, property, false))
13+
}
14+
15+
/// `object` -> `object.bind(this)`.
16+
pub(crate) fn create_bind_call<'a>(
17+
callee: Expression<'a>,
18+
this: Expression<'a>,
19+
span: Span,
20+
ctx: &mut TraverseCtx<'a>,
21+
) -> Expression<'a> {
22+
let callee = create_member_callee(callee, "bind", ctx);
23+
let arguments = ctx.ast.vec1(Argument::from(this));
24+
ctx.ast.expression_call(span, callee, NONE, arguments, false)
25+
}
26+
27+
/// `object` -> `object.call(...arguments)`.
28+
pub(crate) fn create_call_call<'a>(
29+
callee: Expression<'a>,
30+
this: Expression<'a>,
31+
span: Span,
32+
ctx: &mut TraverseCtx<'a>,
33+
) -> Expression<'a> {
34+
let callee = create_member_callee(callee, "call", ctx);
35+
let arguments = ctx.ast.vec1(Argument::from(this));
36+
ctx.ast.expression_call(span, callee, NONE, arguments, false)
37+
}
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub(crate) mod ast_builder;

0 commit comments

Comments
 (0)