@tarojs/helper 3.7.0-alpha.26 → 3.7.0-alpha.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +3 -3
- package/dist/constants.js +3 -3
- package/dist/constants.js.map +1 -1
- package/dist/esbuild/index.js +1 -0
- package/dist/esbuild/index.js.map +1 -1
- package/dist/swcRegister.d.ts +0 -6
- package/dist/swcRegister.js +0 -15
- package/dist/swcRegister.js.map +1 -1
- package/dist/utils.d.ts +8 -2
- package/dist/utils.js +12 -3
- package/dist/utils.js.map +1 -1
- package/package.json +5 -5
- package/swc/plugin-compile-mode/.cargo/config +5 -0
- package/swc/plugin-compile-mode/.editorconfig +6 -0
- package/swc/plugin-compile-mode/.vscode/settings.json +3 -0
- package/swc/plugin-compile-mode/Cargo.lock +2021 -0
- package/swc/plugin-compile-mode/Cargo.toml +19 -0
- package/swc/plugin-compile-mode/package.json +15 -0
- package/swc/plugin-compile-mode/src/lib.rs +71 -0
- package/swc/plugin-compile-mode/src/tests/attributes.rs +54 -0
- package/swc/plugin-compile-mode/src/tests/children.rs +86 -0
- package/swc/plugin-compile-mode/src/tests/condition.rs +50 -0
- package/swc/plugin-compile-mode/src/tests/entry.rs +20 -0
- package/swc/plugin-compile-mode/src/tests/harmony/attributes.rs +45 -0
- package/swc/plugin-compile-mode/src/tests/harmony/children.rs +74 -0
- package/swc/plugin-compile-mode/src/tests/harmony/condition.rs +79 -0
- package/swc/plugin-compile-mode/src/tests/harmony/entry.rs +67 -0
- package/swc/plugin-compile-mode/src/tests/harmony/looping.rs +62 -0
- package/swc/plugin-compile-mode/src/tests/harmony/mod.rs +45 -0
- package/swc/plugin-compile-mode/src/tests/looping.rs +84 -0
- package/swc/plugin-compile-mode/src/tests/mod.rs +100 -0
- package/swc/plugin-compile-mode/src/tests/shake.rs +27 -0
- package/swc/plugin-compile-mode/src/transform.rs +480 -0
- package/swc/plugin-compile-mode/src/transform_harmony.rs +526 -0
- package/swc/plugin-compile-mode/src/utils/constants.rs +149 -0
- package/swc/plugin-compile-mode/src/utils/harmony/components.rs +61 -0
- package/swc/plugin-compile-mode/src/utils/harmony/mod.rs +1 -0
- package/swc/plugin-compile-mode/src/utils/mod.rs +346 -0
- package/swc/plugin-compile-mode/target/wasm32-wasi/release/swc_plugin_compile_mode.wasm +0 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/attributes.rs/should_handle_events.js +8 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/attributes.rs/should_keep_static_attrs_only_in_templates.js +8 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/attributes.rs/should_turn_dynamic_attrs.js +11 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/children.rs/should_render_native_component.js +7 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/children.rs/should_render_react_component.js +7 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/children.rs/should_support_fragment.js +44 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/children.rs/should_support_render_fn.js +8 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/condition.rs/should_support_and_expr.js +14 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/condition.rs/should_support_conditional_expr.js +15 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/entry.rs/should_support_multi_compile_mode.js +10 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/attributes.rs/should_handle_events.js +181 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/attributes.rs/should_turn_dynamic_attrs.js +184 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/children.rs/should_render_react_component.js +75 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/children.rs/should_support_fragment.js +339 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/children.rs/should_support_render_fn.js +184 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/condition.rs/should_support_and_expr.js +209 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/condition.rs/should_support_complex_condition.js +242 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/condition.rs/should_support_conditional_and_unkonw_component.js +137 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/condition.rs/should_support_conditional_expr.js +342 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/entry.rs/should_support_compile_child_node.js +139 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/entry.rs/should_support_component_not_in_config.js +90 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/entry.rs/should_support_multi_compile_mode.js +206 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/entry.rs/should_support_single_compile_mode.js +65 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/looping.rs/should_loop_with_arrow_function_with_blockstmt.js +75 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/looping.rs/should_loop_with_arrow_function_with_blockstmt_and_set_parent_dynamic_id.js +88 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/harmony/looping.rs/should_loop_with_function_expr.js +85 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/looping.rs/should_loop_with_arrow_function_with_blockstmt.js +8 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/looping.rs/should_loop_with_arrow_function_with_expr.js +6 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/looping.rs/should_loop_with_function_expr.js +20 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/looping.rs/should_support_nested_loop.js +15 -0
- package/swc/plugin-compile-mode/tests/__swc_snapshots__/src/tests/shake.rs/should_static_jsx_being_shaked.js +20 -0
- package/swc/plugin-define-config/.cargo/config +5 -0
- package/swc/plugin-define-config/Cargo.lock +582 -506
- package/swc/plugin-define-config/Cargo.toml +2 -11
- package/swc/plugin-define-config/src/lib.rs +81 -128
- package/swc/plugin-define-config/target/wasm32-wasi/release/swc_plugin_define_config.wasm +0 -0
- package/swc/plugin-define-config/tests/__swc_snapshots__/src/lib.rs/module_decl_default_app.js +2 -0
- package/swc/plugin-define-config/tests/__swc_snapshots__/src/lib.rs/module_decl_default_page.js +2 -0
- package/swc/plugin-define-config/tests/__swc_snapshots__/src/lib.rs/module_exports.js +11 -0
- package/swc/plugin-define-config/tests/__swc_snapshots__/src/lib.rs/var_decl_app.js +3 -0
- package/swc/plugin-define-config/tests/__swc_snapshots__/src/lib.rs/var_decl_page.js +3 -0
|
@@ -1,27 +1,18 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "swc-plugin-define-config"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.2.0"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
|
|
6
6
|
[lib]
|
|
7
7
|
crate-type = ["cdylib"]
|
|
8
8
|
|
|
9
9
|
[profile.release]
|
|
10
|
-
# This removes more dead code
|
|
11
|
-
codegen-units = 1
|
|
12
10
|
lto = true
|
|
13
|
-
# Optimize for size
|
|
14
|
-
opt-level = "s"
|
|
15
|
-
# Optimize for performance, this is default so you don't need to specify it
|
|
16
|
-
# opt-level = "z"
|
|
17
|
-
# Strip debug symbols
|
|
18
|
-
strip = "symbols"
|
|
19
11
|
|
|
20
12
|
[dependencies]
|
|
21
13
|
serde = "1"
|
|
22
|
-
swc_core = { version = "0.
|
|
14
|
+
swc_core = { version = "0.86.*", features = ["ecma_plugin_transform", "__utils"] }
|
|
23
15
|
|
|
24
16
|
# .cargo/config defines few alias to build plugin.
|
|
25
17
|
# cargo build-wasi generates wasm-wasi32 binary
|
|
26
18
|
# cargo build-wasm32 generates wasm32-unknown-unknown binary.
|
|
27
|
-
|
|
@@ -1,101 +1,66 @@
|
|
|
1
|
-
use swc_core::
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
use swc_core::{
|
|
2
|
+
ecma::{
|
|
3
|
+
ast::*,
|
|
4
|
+
transforms::testing::test,
|
|
5
|
+
visit::{as_folder, FoldWith, VisitMut, VisitMutWith},
|
|
6
|
+
utils::{quote_ident, FunctionFactory, prepend_stmt},
|
|
7
|
+
},
|
|
8
|
+
common::{DUMMY_SP as span, SyntaxContext },
|
|
9
|
+
plugin::{plugin_transform, proxies::TransformPluginProgramMetadata},
|
|
5
10
|
};
|
|
6
|
-
use swc_core::common::{DUMMY_SP, SyntaxContext};
|
|
7
|
-
use swc_core::plugin::{plugin_transform, proxies::TransformPluginProgramMetadata};
|
|
8
11
|
|
|
9
|
-
struct
|
|
10
|
-
|
|
11
|
-
fn_name: String,
|
|
12
|
-
ctxt: SyntaxContext
|
|
12
|
+
struct DefineConfigVisitor {
|
|
13
|
+
fn_name: Option<Ident>
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
impl
|
|
16
|
-
fn
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
impl VisitMut for DefineConfig {
|
|
26
|
-
fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
|
|
27
|
-
node.visit_mut_children_with(self);
|
|
28
|
-
|
|
29
|
-
let callee = &node.callee;
|
|
30
|
-
if let Some(expr_box) = callee.as_expr() {
|
|
31
|
-
if let Expr::Ident(ident) = &**expr_box {
|
|
32
|
-
if &ident.sym == "defineAppConfig" || &ident.sym == "definePageConfig" {
|
|
33
|
-
self.found = true;
|
|
34
|
-
self.fn_name = String::from(&*ident.sym);
|
|
35
|
-
self.ctxt = ident.span.ctxt;
|
|
16
|
+
impl VisitMut for DefineConfigVisitor {
|
|
17
|
+
fn visit_mut_call_expr(&mut self, expr: &mut CallExpr) {
|
|
18
|
+
expr.visit_mut_children_with(self);
|
|
19
|
+
if let Callee::Expr(expr) = &expr.callee {
|
|
20
|
+
if let Expr::Ident(ident) = &**expr {
|
|
21
|
+
if ident.sym == "defineAppConfig" || ident.sym == "definePageConfig" {
|
|
22
|
+
self.fn_name = Some(ident.clone());
|
|
23
|
+
}
|
|
24
|
+
}
|
|
36
25
|
}
|
|
37
|
-
}
|
|
38
26
|
}
|
|
39
|
-
}
|
|
40
27
|
}
|
|
41
28
|
|
|
42
29
|
pub struct TransformVisitor;
|
|
43
30
|
|
|
44
31
|
impl VisitMut for TransformVisitor {
|
|
45
|
-
fn visit_mut_module_items(&mut self,
|
|
46
|
-
|
|
32
|
+
fn visit_mut_module_items(&mut self, items: &mut Vec<ModuleItem>) {
|
|
33
|
+
let mut folder = DefineConfigVisitor { fn_name: None };
|
|
47
34
|
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
let is_found = items.iter_mut().any(|item| {
|
|
36
|
+
item.visit_mut_with(&mut folder);
|
|
37
|
+
folder.fn_name.is_some()
|
|
38
|
+
});
|
|
50
39
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
40
|
+
if is_found {
|
|
41
|
+
let fn_name = folder.fn_name.take().unwrap();
|
|
42
|
+
let func = Function {
|
|
43
|
+
span,
|
|
44
|
+
decorators: Default::default(),
|
|
45
|
+
params: vec![Param {
|
|
46
|
+
span,
|
|
47
|
+
decorators: Default::default(),
|
|
48
|
+
pat: Pat::Ident(quote_ident!("config").into()),
|
|
49
|
+
}],
|
|
50
|
+
body: Some(BlockStmt {
|
|
51
|
+
span,
|
|
52
|
+
stmts: vec![Stmt::Return(ReturnStmt {
|
|
53
|
+
span,
|
|
54
|
+
arg: Some(Box::new(quote_ident!("config").into())),
|
|
55
|
+
})],
|
|
56
|
+
}),
|
|
57
|
+
is_async: false,
|
|
58
|
+
is_generator: false,
|
|
59
|
+
type_params: None,
|
|
60
|
+
return_type: None,
|
|
61
|
+
};
|
|
62
|
+
prepend_stmt(items, ModuleItem::Stmt(Stmt::Decl(Decl::Fn(func.into_fn_decl(fn_name)))));
|
|
68
63
|
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if define_config.found {
|
|
72
|
-
let func = Stmt::Decl(Decl::Fn(FnDecl {
|
|
73
|
-
ident: Ident::new(define_config.fn_name.into(), DUMMY_SP.with_ctxt(define_config.ctxt)),
|
|
74
|
-
declare: false,
|
|
75
|
-
function: Box::new(Function {
|
|
76
|
-
span: DUMMY_SP,
|
|
77
|
-
params: vec![Param {
|
|
78
|
-
span: DUMMY_SP,
|
|
79
|
-
decorators: Default::default(),
|
|
80
|
-
pat: Pat::Ident(BindingIdent::from(Ident::new("config".into(), DUMMY_SP))),
|
|
81
|
-
}],
|
|
82
|
-
body: Some(BlockStmt {
|
|
83
|
-
span: DUMMY_SP,
|
|
84
|
-
stmts: vec![Stmt::Return(ReturnStmt {
|
|
85
|
-
span: DUMMY_SP,
|
|
86
|
-
arg: Some(Box::new(Expr::Ident(Ident::new("config".into(), DUMMY_SP)))),
|
|
87
|
-
})],
|
|
88
|
-
}),
|
|
89
|
-
is_generator: false,
|
|
90
|
-
is_async: false,
|
|
91
|
-
type_params: Default::default(),
|
|
92
|
-
decorators: Default::default(),
|
|
93
|
-
return_type: Default::default(),
|
|
94
|
-
}),
|
|
95
|
-
}));
|
|
96
|
-
|
|
97
|
-
module_item.insert(line_to_be_insert, ModuleItem::Stmt(func));
|
|
98
|
-
}
|
|
99
64
|
}
|
|
100
65
|
}
|
|
101
66
|
|
|
@@ -127,62 +92,50 @@ test!(
|
|
|
127
92
|
Default::default(),
|
|
128
93
|
|_| as_folder(TransformVisitor),
|
|
129
94
|
module_decl_default_app,
|
|
130
|
-
|
|
131
|
-
r#"
|
|
132
|
-
export default defineAppConfig({})
|
|
133
|
-
"#,
|
|
134
|
-
// Output codes after transformed with plugin
|
|
135
|
-
r#"
|
|
136
|
-
function defineAppConfig(config) {return config}
|
|
137
|
-
export default defineAppConfig({})
|
|
138
|
-
"#
|
|
95
|
+
r#"export default defineAppConfig({})"#
|
|
139
96
|
);
|
|
140
97
|
|
|
141
98
|
test!(
|
|
142
99
|
Default::default(),
|
|
143
100
|
|_| as_folder(TransformVisitor),
|
|
144
101
|
module_decl_default_page,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
102
|
+
r#"export default definePageConfig({})"#
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
test!(
|
|
106
|
+
Default::default(),
|
|
107
|
+
|_| as_folder(TransformVisitor),
|
|
108
|
+
var_decl_app,
|
|
150
109
|
r#"
|
|
151
|
-
|
|
152
|
-
export default
|
|
110
|
+
const config = defineAppConfig({})
|
|
111
|
+
export default config
|
|
153
112
|
"#
|
|
154
113
|
);
|
|
155
114
|
|
|
156
115
|
test!(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
"#,
|
|
165
|
-
// Output codes after transformed with plugin
|
|
166
|
-
r#"
|
|
167
|
-
function defineAppConfig(config) {return config}
|
|
168
|
-
const config = defineAppConfig({})
|
|
169
|
-
export default config
|
|
170
|
-
"#
|
|
116
|
+
Default::default(),
|
|
117
|
+
|_| as_folder(TransformVisitor),
|
|
118
|
+
var_decl_page,
|
|
119
|
+
r#"
|
|
120
|
+
const config = definePageConfig({})
|
|
121
|
+
export default config
|
|
122
|
+
"#
|
|
171
123
|
);
|
|
172
124
|
|
|
173
125
|
test!(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
126
|
+
Default::default(),
|
|
127
|
+
|_| as_folder(TransformVisitor),
|
|
128
|
+
module_exports,
|
|
129
|
+
r#"
|
|
130
|
+
var require_index_config = __commonJS({
|
|
131
|
+
"src/pages/index/index.config.ts": function(exports1, module) {
|
|
132
|
+
var config = definePageConfig({
|
|
133
|
+
navigationBarTitleText: "首页",
|
|
134
|
+
usingComponents: {}
|
|
135
|
+
});
|
|
136
|
+
module.exports = config;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
var _default = require_index_config();
|
|
140
|
+
"#
|
|
188
141
|
);
|
|
Binary file
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
function definePageConfig(config) {return config}
|
|
2
|
+
var require_index_config = __commonJS({
|
|
3
|
+
"src/pages/index/index.config.ts": function(exports1, module) {
|
|
4
|
+
var config = definePageConfig({
|
|
5
|
+
navigationBarTitleText: "首页",
|
|
6
|
+
usingComponents: {}
|
|
7
|
+
});
|
|
8
|
+
module.exports = config;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _default = require_index_config();
|