Skip to content

Comments

feat: support oxc_minifier options#5472

Closed
AliceLanniste wants to merge 4 commits intorolldown:mainfrom
AliceLanniste:support_minifier_options
Closed

feat: support oxc_minifier options#5472
AliceLanniste wants to merge 4 commits intorolldown:mainfrom
AliceLanniste:support_minifier_options

Conversation

@AliceLanniste
Copy link
Contributor

related #5451

@IWANABETHATGUY
Copy link
Member

Can you just refer to how transformOptions implemented,

use itertools::Either;
use oxc::transformer::EnvOptions;
use super::{
compiler_assumptions::CompilerAssumptions, decorator_options::DecoratorOptions,
jsx_options::JsxOptions, typescript_options::TypeScriptOptions,
};
#[derive(Debug, Default, Clone)]
pub struct TransformOptions {
pub lang: Option<String>,
pub jsx: Option<Either<String, JsxOptions>>,
pub target: Option<Either<String, Vec<String>>>,
pub decorator: Option<DecoratorOptions>,
pub typescript: Option<TypeScriptOptions>,
pub assumptions: Option<CompilerAssumptions>,
}
impl TryFrom<TransformOptions> for oxc::transformer::TransformOptions {
type Error = String;
fn try_from(value: TransformOptions) -> Result<Self, Self::Error> {
let env = match value.target {
Some(Either::Left(s)) => EnvOptions::from_target(&s)?,
Some(Either::Right(list)) => EnvOptions::from_target_list(&list)?,
_ => EnvOptions::default(),
};
Ok(Self {
// cwd: options.cwd.map(PathBuf::from).unwrap_or_default(),
assumptions: value.assumptions.map(Into::into).unwrap_or_default(),
typescript: value
.typescript
.map(oxc::transformer::TypeScriptOptions::from)
.unwrap_or_default(),
decorator: value.decorator.map(oxc::transformer::DecoratorOptions::from).unwrap_or_default(),
jsx: match value.jsx {
Some(Either::Left(s)) => {
if s == "preserve" {
oxc::transformer::JsxOptions::disable()
} else {
return Err(format!("Invalid jsx option: `{s}`."));
}
}
Some(Either::Right(options)) => oxc::transformer::JsxOptions::from(options),
None => oxc::transformer::JsxOptions::enable(),
},
env,
proposals: oxc::transformer::ProposalOptions::default(),
// helper_loader: options
// .helpers
// .map_or_else(HelperLoaderOptions::default, HelperLoaderOptions::from),
..Default::default()
})
}
}
I think they should be pretty similar.

@IWANABETHATGUY
Copy link
Member

IWANABETHATGUY commented Jul 28, 2025

pub transform: Option<oxc_transform_napi::TransformOptions>,
, hard coding options is not good for maintenance.

@IWANABETHATGUY
Copy link
Member

IWANABETHATGUY commented Aug 12, 2025

The direction looks good, can you rebase the pr?

@AliceLanniste AliceLanniste force-pushed the support_minifier_options branch from 6d80c5a to 6c4da99 Compare August 12, 2025 06:44
@IWANABETHATGUY IWANABETHATGUY marked this pull request as ready for review August 15, 2025 08:26
github-merge-queue bot pushed a commit that referenced this pull request Aug 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants