docs(transformer): add documentation for optional-catch-binding plugin (#5064)

follow-up #4881
This commit is contained in:
Dunqing 2024-08-22 08:34:42 +00:00
parent f73d486d25
commit d50eb72399

View file

@ -1,3 +1,37 @@
//! ES2019: Optional Catch Binding
//!
//! This plugin transform catch clause without parameter to add a parameter called `unused` in catch clause.
//!
//! > This plugin is included in `preset-env`, in ES2019
//!
//! ## Example
//!
//! Input:
//! ```js
//! try {
//! throw 0;
//! } catch {
//! doSomethingWhichDoesNotCareAboutTheValueThrown();
//! }
//! ```
//!
//! Output:
//! ```js
//! try {
//! throw 0;
//! } catch (_unused) {
//! doSomethingWhichDoesNotCareAboutTheValueThrown();
//! }
//! ```
//!
//! ## Implementation
//!
//! Implementation based on [@babel/plugin-transform-optional-catch-binding](https://babel.dev/docs/babel-plugin-transform-optional-catch-binding).
//!
//! ## References:
//! * Babel plugin implementation: <https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding>
//! * Optional catch binding TC39 proposal: <https://github.com/tc39/proposal-optional-catch-binding>
use std::cell::Cell;
use oxc_ast::ast::*;
@ -7,11 +41,6 @@ use oxc_traverse::TraverseCtx;
use crate::context::Ctx;
/// ES2019: Optional Catch Binding
///
/// References:
/// * <https://babel.dev/docs/babel-plugin-transform-optional-catch-binding>
/// * <https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding>
pub struct OptionalCatchBinding<'a> {
_ctx: Ctx<'a>,
}
@ -22,16 +51,6 @@ impl<'a> OptionalCatchBinding<'a> {
}
/// If CatchClause has no param, add a parameter called `unused`.
///
/// ```ts
/// try {}
/// catch {}
/// ```
/// too
/// ```ts
/// try {}
/// catch (_unused) {}
/// ```
#[allow(clippy::unused_self)]
pub fn transform_catch_clause(&self, clause: &mut CatchClause<'a>, ctx: &mut TraverseCtx<'a>) {
if clause.param.is_some() {