mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +00:00
parent
d910304eac
commit
a822c9db0a
2 changed files with 20 additions and 4 deletions
|
|
@ -168,7 +168,7 @@ pub struct JSXClosingFragment {
|
||||||
#[ast(visit)]
|
#[ast(visit)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
#[generate_derive(CloneIn, GetSpan, GetSpanMut, ContentEq, ContentHash)]
|
#[generate_derive(CloneIn, GetSpan, GetSpanMut, ContentEq, ContentHash)]
|
||||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
#[cfg_attr(feature = "serialize", derive(Tsify))]
|
||||||
#[serde(untagged)]
|
#[serde(untagged)]
|
||||||
pub enum JSXElementName<'a> {
|
pub enum JSXElementName<'a> {
|
||||||
/// `<div />`
|
/// `<div />`
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@ use serde::{
|
||||||
use crate::ast::{
|
use crate::ast::{
|
||||||
ArrayAssignmentTarget, ArrayPattern, AssignmentTargetMaybeDefault, AssignmentTargetProperty,
|
ArrayAssignmentTarget, ArrayPattern, AssignmentTargetMaybeDefault, AssignmentTargetProperty,
|
||||||
AssignmentTargetRest, BindingPattern, BindingPatternKind, BindingProperty, BindingRestElement,
|
AssignmentTargetRest, BindingPattern, BindingPatternKind, BindingProperty, BindingRestElement,
|
||||||
Directive, Elision, FormalParameter, FormalParameterKind, FormalParameters,
|
Directive, Elision, FormalParameter, FormalParameterKind, FormalParameters, JSXElementName,
|
||||||
ObjectAssignmentTarget, ObjectPattern, Program, RegExpFlags, Statement, StringLiteral,
|
JSXIdentifier, ObjectAssignmentTarget, ObjectPattern, Program, RegExpFlags, Statement,
|
||||||
TSModuleBlock, TSTypeAnnotation,
|
StringLiteral, TSModuleBlock, TSTypeAnnotation,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub struct EcmaFormatter;
|
pub struct EcmaFormatter;
|
||||||
|
|
@ -249,3 +249,19 @@ struct DirectiveAsStatement<'a, 'b> {
|
||||||
span: Span,
|
span: Span,
|
||||||
expression: &'b StringLiteral<'a>,
|
expression: &'b StringLiteral<'a>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'a> Serialize for JSXElementName<'a> {
|
||||||
|
fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
|
||||||
|
match self {
|
||||||
|
Self::Identifier(ident) => ident.serialize(serializer),
|
||||||
|
Self::IdentifierReference(ident) => {
|
||||||
|
JSXIdentifier { span: ident.span, name: ident.name.clone() }.serialize(serializer)
|
||||||
|
}
|
||||||
|
Self::NamespacedName(name) => name.serialize(serializer),
|
||||||
|
Self::MemberExpression(expr) => expr.serialize(serializer),
|
||||||
|
Self::ThisExpression(expr) => {
|
||||||
|
JSXIdentifier { span: expr.span, name: "this".into() }.serialize(serializer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue