Skip to content

Commit

Permalink
feat: add helpers for SimpleAssignTarget and AssignTargetPat (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
dsherret authored Feb 7, 2024
1 parent e188c02 commit 24e0031
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"deno.enable": true,
"deno.lint": false
"deno.lint": false,
"rust-analyzer.cargo.features": "all"
}
32 changes: 32 additions & 0 deletions rs-lib/src/view/custom.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
use super::generated::AssignTargetPat;
use super::generated::BindingIdent;
use super::generated::Expr;
use super::generated::Ident;
use super::generated::Pat;
use super::generated::SimpleAssignTarget;
use crate::swc::ast::Id;
use crate::swc::common::SyntaxContext;

Expand All @@ -22,3 +26,31 @@ impl<'a> BindingIdent<'a> {
self.id.ctxt()
}
}

impl<'a> SimpleAssignTarget<'a> {
pub fn as_expr(&self) -> Expr<'a> {
match self {
SimpleAssignTarget::Ident(node) => Expr::Ident(node.id),
SimpleAssignTarget::Member(node) => Expr::Member(node),
SimpleAssignTarget::SuperProp(node) => Expr::SuperProp(node),
SimpleAssignTarget::Paren(node) => Expr::Paren(node),
SimpleAssignTarget::OptChain(node) => Expr::OptChain(node),
SimpleAssignTarget::TsAs(node) => Expr::TsAs(node),
SimpleAssignTarget::TsSatisfies(node) => Expr::TsSatisfies(node),
SimpleAssignTarget::TsNonNull(node) => Expr::TsNonNull(node),
SimpleAssignTarget::TsTypeAssertion(node) => Expr::TsTypeAssertion(node),
SimpleAssignTarget::TsInstantiation(node) => Expr::TsInstantiation(node),
SimpleAssignTarget::Invalid(node) => Expr::Invalid(node),
}
}
}

impl<'a> AssignTargetPat<'a> {
pub fn as_pat(&self) -> Pat<'a> {
match self {
AssignTargetPat::Array(node) => Pat::Array(node),
AssignTargetPat::Object(node) => Pat::Object(node),
AssignTargetPat::Invalid(node) => Pat::Invalid(node),
}
}
}

0 comments on commit 24e0031

Please sign in to comment.