8d59b35418e5778d5961562d845a0abf20b93e52f7777752e66e2c2fcd9830b54295b341f3e723f84a0ae092a8029d97721152cb05836b8f7e48c1659923f2 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. "use strict";
  2. var _utils = require("./utils.js");
  3. const defineType = (0, _utils.defineAliasedType)("JSX");
  4. defineType("JSXAttribute", {
  5. visitor: ["name", "value"],
  6. aliases: ["Immutable"],
  7. fields: {
  8. name: {
  9. validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXNamespacedName")
  10. },
  11. value: {
  12. optional: true,
  13. validate: (0, _utils.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer")
  14. }
  15. }
  16. });
  17. defineType("JSXClosingElement", {
  18. visitor: ["name"],
  19. aliases: ["Immutable"],
  20. fields: {
  21. name: {
  22. validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
  23. }
  24. }
  25. });
  26. defineType("JSXElement", {
  27. builder: ["openingElement", "closingElement", "children", "selfClosing"],
  28. visitor: ["openingElement", "children", "closingElement"],
  29. aliases: ["Immutable", "Expression"],
  30. fields: Object.assign({
  31. openingElement: {
  32. validate: (0, _utils.assertNodeType)("JSXOpeningElement")
  33. },
  34. closingElement: {
  35. optional: true,
  36. validate: (0, _utils.assertNodeType)("JSXClosingElement")
  37. },
  38. children: (0, _utils.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
  39. }, {
  40. selfClosing: {
  41. validate: (0, _utils.assertValueType)("boolean"),
  42. optional: true
  43. }
  44. })
  45. });
  46. defineType("JSXEmptyExpression", {});
  47. defineType("JSXExpressionContainer", {
  48. visitor: ["expression"],
  49. aliases: ["Immutable"],
  50. fields: {
  51. expression: {
  52. validate: (0, _utils.assertNodeType)("Expression", "JSXEmptyExpression")
  53. }
  54. }
  55. });
  56. defineType("JSXSpreadChild", {
  57. visitor: ["expression"],
  58. aliases: ["Immutable"],
  59. fields: {
  60. expression: {
  61. validate: (0, _utils.assertNodeType)("Expression")
  62. }
  63. }
  64. });
  65. defineType("JSXIdentifier", {
  66. builder: ["name"],
  67. fields: {
  68. name: {
  69. validate: (0, _utils.assertValueType)("string")
  70. }
  71. }
  72. });
  73. defineType("JSXMemberExpression", {
  74. visitor: ["object", "property"],
  75. fields: {
  76. object: {
  77. validate: (0, _utils.assertNodeType)("JSXMemberExpression", "JSXIdentifier")
  78. },
  79. property: {
  80. validate: (0, _utils.assertNodeType)("JSXIdentifier")
  81. }
  82. }
  83. });
  84. defineType("JSXNamespacedName", {
  85. visitor: ["namespace", "name"],
  86. fields: {
  87. namespace: {
  88. validate: (0, _utils.assertNodeType)("JSXIdentifier")
  89. },
  90. name: {
  91. validate: (0, _utils.assertNodeType)("JSXIdentifier")
  92. }
  93. }
  94. });
  95. defineType("JSXOpeningElement", {
  96. builder: ["name", "attributes", "selfClosing"],
  97. visitor: ["name", "typeParameters", "typeArguments", "attributes"],
  98. aliases: ["Immutable"],
  99. fields: Object.assign({
  100. name: {
  101. validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
  102. },
  103. selfClosing: {
  104. default: false
  105. },
  106. attributes: (0, _utils.validateArrayOfType)("JSXAttribute", "JSXSpreadAttribute"),
  107. typeArguments: {
  108. validate: (0, _utils.assertNodeType)("TypeParameterInstantiation"),
  109. optional: true
  110. }
  111. }, {
  112. typeParameters: {
  113. validate: (0, _utils.assertNodeType)("TSTypeParameterInstantiation"),
  114. optional: true
  115. }
  116. })
  117. });
  118. defineType("JSXSpreadAttribute", {
  119. visitor: ["argument"],
  120. fields: {
  121. argument: {
  122. validate: (0, _utils.assertNodeType)("Expression")
  123. }
  124. }
  125. });
  126. defineType("JSXText", {
  127. aliases: ["Immutable"],
  128. builder: ["value"],
  129. fields: {
  130. value: {
  131. validate: (0, _utils.assertValueType)("string")
  132. }
  133. }
  134. });
  135. defineType("JSXFragment", {
  136. builder: ["openingFragment", "closingFragment", "children"],
  137. visitor: ["openingFragment", "children", "closingFragment"],
  138. aliases: ["Immutable", "Expression"],
  139. fields: {
  140. openingFragment: {
  141. validate: (0, _utils.assertNodeType)("JSXOpeningFragment")
  142. },
  143. closingFragment: {
  144. validate: (0, _utils.assertNodeType)("JSXClosingFragment")
  145. },
  146. children: (0, _utils.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
  147. }
  148. });
  149. defineType("JSXOpeningFragment", {
  150. aliases: ["Immutable"]
  151. });
  152. defineType("JSXClosingFragment", {
  153. aliases: ["Immutable"]
  154. });
  155. //# sourceMappingURL=jsx.js.map