dprint_swc_ext/view/
custom.rs1use 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}