dprint_swc_ext/view/
custom.rs

1use super::generated::AssignTargetPat;
2use super::generated::BindingIdent;
3use super::generated::Expr;
4use super::generated::Ident;
5use super::generated::Pat;
6use super::generated::SimpleAssignTarget;
7use crate::swc::ast::Id;
8use crate::swc::common::SyntaxContext;
9
10impl<'a> Ident<'a> {
11  pub fn to_id(&self) -> Id {
12    (self.sym().clone(), self.ctxt())
13  }
14}
15
16impl<'a> BindingIdent<'a> {
17  pub fn to_id(&self) -> Id {
18    self.id.to_id()
19  }
20
21  pub fn ctxt(&self) -> SyntaxContext {
22    self.id.ctxt()
23  }
24}
25
26impl<'a> SimpleAssignTarget<'a> {
27  pub fn as_expr(&self) -> Expr<'a> {
28    match self {
29      SimpleAssignTarget::Ident(node) => Expr::Ident(node.id),
30      SimpleAssignTarget::Member(node) => Expr::Member(node),
31      SimpleAssignTarget::SuperProp(node) => Expr::SuperProp(node),
32      SimpleAssignTarget::Paren(node) => Expr::Paren(node),
33      SimpleAssignTarget::OptChain(node) => Expr::OptChain(node),
34      SimpleAssignTarget::TsAs(node) => Expr::TsAs(node),
35      SimpleAssignTarget::TsSatisfies(node) => Expr::TsSatisfies(node),
36      SimpleAssignTarget::TsNonNull(node) => Expr::TsNonNull(node),
37      SimpleAssignTarget::TsTypeAssertion(node) => Expr::TsTypeAssertion(node),
38      SimpleAssignTarget::TsInstantiation(node) => Expr::TsInstantiation(node),
39      SimpleAssignTarget::Invalid(node) => Expr::Invalid(node),
40    }
41  }
42}
43
44impl<'a> AssignTargetPat<'a> {
45  pub fn as_pat(&self) -> Pat<'a> {
46    match self {
47      AssignTargetPat::Array(node) => Pat::Array(node),
48      AssignTargetPat::Object(node) => Pat::Object(node),
49      AssignTargetPat::Invalid(node) => Pat::Invalid(node),
50    }
51  }
52}