Skip to content

Commit 90c53fa

Browse files
committed
Added functions to builder
1 parent 64d7525 commit 90c53fa

File tree

1 file changed

+111
-0
lines changed

1 file changed

+111
-0
lines changed

lib/es_tree/tools/builder.ex

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -770,4 +770,115 @@ defmodule ESTree.Tools.Builder do
770770
argument: argument, loc: loc, delegate: delegate
771771
}
772772
end
773+
774+
775+
@spec jsx_identifier(
776+
binary,
777+
ESTree.SourceLocation.t | nil
778+
) :: ESTree.JSXIdentifier.t
779+
def jsx_identifier(name, loc \\ nil) do
780+
%ESTree.JSXIdentifier{
781+
name: name, loc: loc
782+
}
783+
end
784+
785+
786+
@spec jsx_member_expression(
787+
ESTree.JSXMemberExpression.t | ESTree.JSXIdentifier.t,
788+
ESTree.JSXIdentifier.t,
789+
ESTree.SourceLocation.t | nil
790+
) :: ESTree.MemberExpression.t
791+
def jsx_member_expression(object, property, loc \\ nil) do
792+
%ESTree.JSXMemberExpression{
793+
object: object, property: property, loc: loc
794+
}
795+
end
796+
797+
@spec jsx_namespaced_name(
798+
ESTree.JSXIdentifier.t,
799+
ESTree.JSXIdentifier.t,
800+
ESTree.SourceLocation.t | nil
801+
) :: ESTree.JSXNamespacedName.t
802+
def jsx_namespaced_name(namespace, name, loc \\ nil) do
803+
%ESTree.JSXNamespacedName{
804+
namespace: namespace, name: name, loc: loc
805+
}
806+
end
807+
808+
@spec jsx_empty_expression(
809+
ESTree.SourceLocation.t | nil
810+
) :: ESTree.JSXEmptyExpression.t
811+
def jsx_empty_expression(loc \\ nil) do
812+
%ESTree.JSXEmptyExpression{
813+
loc: loc
814+
}
815+
end
816+
817+
@spec jsx_expression_container(
818+
ESTree.Expression.t | ESTree.JSXEmptyExpression.t,
819+
ESTree.SourceLocation.t | nil
820+
) :: ESTree.JSXExpressionContainer.t
821+
def jsx_expression_container(expression, loc \\ nil) do
822+
%ESTree.JSXExpressionContainer{
823+
expression: expression, loc: loc
824+
}
825+
end
826+
827+
828+
@spec jsx_opening_element(
829+
ESTree.JSXIdentifier.t | ESTree.JSXMemberExpression.t | ESTree.JSXNamespacedName.t,
830+
[ ESTree.JSXAttribute.t | ESTree.JSXSpreadAttribute.t ],
831+
boolean,
832+
ESTree.SourceLocation.t | nil
833+
) :: ESTree.JSXOpeningElement.t
834+
def jsx_opening_element(name, attributes, selfClosing \\ false, loc \\ nil) do
835+
%ESTree.JSXOpeningElement{
836+
name: name, attributes: attributes, selfClosing: selfClosing, loc: loc
837+
}
838+
end
839+
840+
841+
@spec jsx_closing_element(
842+
ESTree.JSXIdentifier.t | ESTree.JSXMemberExpression.t | ESTree.JSXNamespacedName.t,
843+
ESTree.SourceLocation.t | nil
844+
) :: ESTree.JSXClosingElement.t
845+
def jsx_closing_element(name, loc \\ nil) do
846+
%ESTree.JSXClosingElement{
847+
name: name, loc: loc
848+
}
849+
end
850+
851+
852+
@spec jsx_attribute(
853+
ESTree.JSXIdentifier.t | ESTree.JSXNamespacedName.t,
854+
ESTree.Literal.t | ESTree.JSXExpressionContainer.t | ESTree.JSXElement.t | nil,
855+
ESTree.SourceLocation.t | nil
856+
) :: ESTree.JSXAttribute.t
857+
def jsx_attribute(name, value \\ nil, loc \\ nil) do
858+
%ESTree.JSXAttribute{
859+
name: name, value: value, loc: loc
860+
}
861+
end
862+
863+
@spec jsx_spread_attribute(
864+
ESTree.Expression.t | nil,
865+
ESTree.SourceLocation.t | nil
866+
) :: ESTree.SpreadElement.t
867+
def jsx_spread_attribute(argument, loc \\ nil) do
868+
%ESTree.JSXSpreadAttribute{
869+
argument: argument, loc: loc
870+
}
871+
end
872+
873+
@spec jsx_element(
874+
ESTree.JSXOpeningElement.t,
875+
[ESTree.Literal.t | ESTree.JSXExpressionContainer.t | ESTree.JSXElement.t],
876+
ESTree.JSXClosingElement.t | nil,
877+
ESTree.SourceLocation.t | nil
878+
) :: ESTree.JSXElement.t
879+
def jsx_element(openingElement, children, closingElement \\ nil, loc \\ nil) do
880+
%ESTree.JSXElement{
881+
openingElement: openingElement, children: children, closingElement: closingElement, loc: loc
882+
}
883+
end
773884
end

0 commit comments

Comments
 (0)