swc_ecma_compat_es2020/
optional_chaining.rs1use serde::Deserialize;
2use swc_common::Mark;
3use swc_ecma_ast::Pass;
4use swc_ecma_compat_es2022::optional_chaining_impl::optional_chaining_impl;
5use swc_ecma_visit::visit_mut_pass;
6
7pub fn optional_chaining(c: Config, unresolved_mark: Mark) -> impl Pass {
8 visit_mut_pass(optional_chaining_impl(
9 swc_ecma_compat_es2022::optional_chaining_impl::Config {
10 no_document_all: c.no_document_all,
11 pure_getter: c.pure_getter,
12 },
13 unresolved_mark,
14 ))
15}
16
17#[derive(Debug, Clone, Copy, Default, Deserialize)]
18#[serde(rename_all = "camelCase")]
19pub struct Config {
20 #[serde(default)]
21 pub no_document_all: bool,
22 #[serde(default)]
23 pub pure_getter: bool,
24}