swc_ecma_compat_es2020/
nullish_coalescing.rs1use serde::Deserialize;
2use swc_ecma_ast::Pass;
3use swc_ecma_compiler::{Compiler, Features};
4use swc_ecma_transforms_base::assumptions::Assumptions;
5
6#[derive(Debug, Clone, Copy, Default, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct Config {
10 #[serde(default)]
11 pub no_document_all: bool,
12}
13
14pub fn nullish_coalescing(c: Config) -> impl Pass + 'static {
18 let mut assumptions = Assumptions::default();
19 assumptions.no_document_all = c.no_document_all;
20
21 Compiler::new(swc_ecma_compiler::Config {
22 includes: Features::NULLISH_COALESCING,
23 assumptions,
24 ..Default::default()
25 })
26}