Skip to content

Commit f56478a

Browse files
committed
CachedRegex & pre-allocate output buffer
1 parent 7cbc423 commit f56478a

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

packages/next-swc/Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/next-swc/crates/core/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ swc_ecma_loader = {version = "0.29.0", features = ["node", "lru"]}
2828
swc_ecmascript = {version = "0.132.0", features = ["codegen", "minifier", "optimization", "parser", "react", "transforms", "typescript", "utils", "visit"]}
2929
swc_node_base = "0.5.1"
3030
swc_stylis = "0.96.1"
31+
swc_cached = "0.1.1"
3132
tracing = {version = "0.1.28", features = ["release_max_level_off"]}
3233
handlebars = "4.2.1"
3334

packages/next-swc/crates/core/src/modularize_imports.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use handlebars::{Context, Handlebars, Helper, HelperResult, Output, RenderContex
55
use once_cell::sync::Lazy;
66
use regex::{Captures, Regex};
77
use serde::{Deserialize, Serialize};
8+
use swc_cached::regex::CachedRegex;
89
use swc_ecmascript::ast::*;
910
use swc_ecmascript::visit::{noop_fold_type, Fold};
1011

@@ -28,7 +29,7 @@ pub struct PackageConfig {
2829

2930
struct FoldImports {
3031
renderer: handlebars::Handlebars<'static>,
31-
packages: Vec<(Regex, PackageConfig)>,
32+
packages: Vec<(CachedRegex, PackageConfig)>,
3233
}
3334

3435
struct Rewriter<'a> {
@@ -44,7 +45,7 @@ impl<'a> Rewriter<'a> {
4445
return vec![old_decl.clone()];
4546
}
4647

47-
let mut out: Vec<ImportDecl> = vec![];
48+
let mut out: Vec<ImportDecl> = Vec::with_capacity(old_decl.specifiers.len());
4849

4950
for spec in &old_decl.specifiers {
5051
match spec {
@@ -181,7 +182,7 @@ pub fn modularize_imports(config: Config) -> impl Fold {
181182
}
182183
folder
183184
.packages
184-
.push((Regex::new(&k).expect("transform-imports: invalid regex"), v));
185+
.push((CachedRegex::new(&k).expect("transform-imports: invalid regex"), v));
185186
}
186187
folder
187188
}

0 commit comments

Comments
 (0)