ast-types 0.11.5 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/.travis.yml +2 -2
  2. package/def/babel-core.d.ts +2 -0
  3. package/def/babel-core.js +250 -290
  4. package/def/babel.d.ts +2 -0
  5. package/def/babel.js +12 -3
  6. package/def/core.d.ts +2 -0
  7. package/def/core.js +57 -126
  8. package/def/es-proposals.d.ts +2 -0
  9. package/def/es-proposals.js +34 -32
  10. package/def/es6.d.ts +2 -0
  11. package/def/es6.js +210 -253
  12. package/def/es7.d.ts +2 -0
  13. package/def/es7.js +35 -41
  14. package/def/esprima.d.ts +2 -0
  15. package/def/esprima.js +50 -71
  16. package/def/flow.d.ts +2 -0
  17. package/def/flow.js +289 -393
  18. package/def/jsx.d.ts +2 -0
  19. package/def/jsx.js +99 -125
  20. package/def/type-annotations.d.ts +7 -0
  21. package/def/type-annotations.js +42 -0
  22. package/def/typescript.d.ts +2 -0
  23. package/def/typescript.js +326 -444
  24. package/fork.d.ts +46 -0
  25. package/fork.js +40 -31
  26. package/gen/builders.d.ts +2539 -0
  27. package/gen/builders.js +2 -0
  28. package/gen/kinds.d.ts +259 -0
  29. package/gen/kinds.js +2 -0
  30. package/gen/namedTypes.d.ts +262 -0
  31. package/gen/namedTypes.js +2 -0
  32. package/gen/nodes.d.ts +1255 -0
  33. package/gen/nodes.js +2 -0
  34. package/gen/visitor.d.ts +263 -0
  35. package/gen/visitor.js +2 -0
  36. package/lib/equiv.d.ts +5 -0
  37. package/lib/equiv.js +19 -49
  38. package/lib/node-path.d.ts +22 -0
  39. package/lib/node-path.js +60 -125
  40. package/lib/path-visitor.d.ts +52 -0
  41. package/lib/path-visitor.js +117 -194
  42. package/lib/path.d.ts +25 -0
  43. package/lib/path.js +71 -107
  44. package/lib/scope.d.ts +26 -0
  45. package/lib/scope.js +100 -143
  46. package/lib/shared.d.ts +13 -0
  47. package/lib/shared.js +34 -31
  48. package/lib/types.d.ts +140 -0
  49. package/lib/types.js +584 -676
  50. package/main.d.ts +16 -0
  51. package/main.js +33 -18
  52. package/package.json +24 -7
  53. package/tsconfig.json +20 -0
  54. package/types.d.ts +6 -0
  55. package/types.js +2 -0
  56. package/def/e4x.js +0 -86
  57. package/def/mozilla.js +0 -42
package/def/jsx.js CHANGED
@@ -1,131 +1,105 @@
1
- module.exports = function (fork) {
2
- fork.use(require("./es7"));
3
-
4
- var types = fork.use(require("../lib/types"));
5
- var def = types.Type.def;
6
- var or = types.Type.or;
7
- var defaults = fork.use(require("../lib/shared")).defaults;
8
-
9
- def("JSXAttribute")
10
- .bases("Node")
11
- .build("name", "value")
12
- .field("name", or(def("JSXIdentifier"), def("JSXNamespacedName")))
13
- .field("value", or(
14
- def("Literal"), // attr="value"
15
- def("JSXExpressionContainer"), // attr={value}
16
- null // attr= or just attr
1
+ "use strict";;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var es7_1 = __importDefault(require("./es7"));
7
+ var types_1 = __importDefault(require("../lib/types"));
8
+ var shared_1 = __importDefault(require("../lib/shared"));
9
+ function default_1(fork) {
10
+ fork.use(es7_1.default);
11
+ var types = fork.use(types_1.default);
12
+ var def = types.Type.def;
13
+ var or = types.Type.or;
14
+ var defaults = fork.use(shared_1.default).defaults;
15
+ def("JSXAttribute")
16
+ .bases("Node")
17
+ .build("name", "value")
18
+ .field("name", or(def("JSXIdentifier"), def("JSXNamespacedName")))
19
+ .field("value", or(def("Literal"), // attr="value"
20
+ def("JSXExpressionContainer"), // attr={value}
21
+ null // attr= or just attr
17
22
  ), defaults["null"]);
18
-
19
- def("JSXIdentifier")
20
- .bases("Identifier")
21
- .build("name")
22
- .field("name", String);
23
-
24
- def("JSXNamespacedName")
25
- .bases("Node")
26
- .build("namespace", "name")
27
- .field("namespace", def("JSXIdentifier"))
28
- .field("name", def("JSXIdentifier"));
29
-
30
- def("JSXMemberExpression")
31
- .bases("MemberExpression")
32
- .build("object", "property")
33
- .field("object", or(def("JSXIdentifier"), def("JSXMemberExpression")))
34
- .field("property", def("JSXIdentifier"))
35
- .field("computed", Boolean, defaults.false);
36
-
37
- var JSXElementName = or(
38
- def("JSXIdentifier"),
39
- def("JSXNamespacedName"),
23
+ def("JSXIdentifier")
24
+ .bases("Identifier")
25
+ .build("name")
26
+ .field("name", String);
27
+ def("JSXNamespacedName")
28
+ .bases("Node")
29
+ .build("namespace", "name")
30
+ .field("namespace", def("JSXIdentifier"))
31
+ .field("name", def("JSXIdentifier"));
40
32
  def("JSXMemberExpression")
41
- );
42
-
43
- def("JSXSpreadAttribute")
44
- .bases("Node")
45
- .build("argument")
46
- .field("argument", def("Expression"));
47
-
48
- var JSXAttributes = [or(
49
- def("JSXAttribute"),
33
+ .bases("MemberExpression")
34
+ .build("object", "property")
35
+ .field("object", or(def("JSXIdentifier"), def("JSXMemberExpression")))
36
+ .field("property", def("JSXIdentifier"))
37
+ .field("computed", Boolean, defaults.false);
38
+ var JSXElementName = or(def("JSXIdentifier"), def("JSXNamespacedName"), def("JSXMemberExpression"));
50
39
  def("JSXSpreadAttribute")
51
- )];
52
-
53
- def("JSXExpressionContainer")
54
- .bases("Expression")
55
- .build("expression")
56
- .field("expression", def("Expression"));
57
-
58
- def("JSXElement")
59
- .bases("Expression")
60
- .build("openingElement", "closingElement", "children")
61
- .field("openingElement", def("JSXOpeningElement"))
62
- .field("closingElement", or(def("JSXClosingElement"), null), defaults["null"])
63
- .field("children", [or(
64
- def("JSXElement"),
65
- def("JSXExpressionContainer"),
66
- def("JSXFragment"),
67
- def("JSXText"),
68
- def("Literal") // TODO Esprima should return JSXText instead.
69
- )], defaults.emptyArray)
70
- .field("name", JSXElementName, function () {
71
- // Little-known fact: the `this` object inside a default function
72
- // is none other than the partially-built object itself, and any
73
- // fields initialized directly from builder function arguments
74
- // (like openingElement, closingElement, and children) are
75
- // guaranteed to be available.
76
- return this.openingElement.name;
40
+ .bases("Node")
41
+ .build("argument")
42
+ .field("argument", def("Expression"));
43
+ var JSXAttributes = [or(def("JSXAttribute"), def("JSXSpreadAttribute"))];
44
+ def("JSXExpressionContainer")
45
+ .bases("Expression")
46
+ .build("expression")
47
+ .field("expression", def("Expression"));
48
+ def("JSXElement")
49
+ .bases("Expression")
50
+ .build("openingElement", "closingElement", "children")
51
+ .field("openingElement", def("JSXOpeningElement"))
52
+ .field("closingElement", or(def("JSXClosingElement"), null), defaults["null"])
53
+ .field("children", [or(def("JSXElement"), def("JSXExpressionContainer"), def("JSXFragment"), def("JSXText"), def("Literal") // TODO Esprima should return JSXText instead.
54
+ )], defaults.emptyArray)
55
+ .field("name", JSXElementName, function () {
56
+ // Little-known fact: the `this` object inside a default function
57
+ // is none other than the partially-built object itself, and any
58
+ // fields initialized directly from builder function arguments
59
+ // (like openingElement, closingElement, and children) are
60
+ // guaranteed to be available.
61
+ return this.openingElement.name;
77
62
  }, true) // hidden from traversal
78
- .field("selfClosing", Boolean, function () {
79
- return this.openingElement.selfClosing;
63
+ .field("selfClosing", Boolean, function () {
64
+ return this.openingElement.selfClosing;
80
65
  }, true) // hidden from traversal
81
- .field("attributes", JSXAttributes, function () {
82
- return this.openingElement.attributes;
66
+ .field("attributes", JSXAttributes, function () {
67
+ return this.openingElement.attributes;
83
68
  }, true); // hidden from traversal
84
-
85
- def("JSXOpeningElement")
86
- .bases("Node") // TODO Does this make sense? Can't really be an JSXElement.
87
- .build("name", "attributes", "selfClosing")
88
- .field("name", JSXElementName)
89
- .field("attributes", JSXAttributes, defaults.emptyArray)
90
- .field("selfClosing", Boolean, defaults["false"]);
91
-
92
- def("JSXClosingElement")
93
- .bases("Node") // TODO Same concern.
94
- .build("name")
95
- .field("name", JSXElementName);
96
-
97
- def("JSXFragment")
98
- .bases("Expression")
99
- .build("openingElement", "closingElement", "children")
100
- .field("openingElement", def("JSXOpeningFragment"))
101
- .field("closingElement", def("JSXClosingFragment"))
102
- .field("children", [or(
103
- def("JSXElement"),
104
- def("JSXExpressionContainer"),
105
- def("JSXFragment"),
106
- def("JSXText"),
107
- def("Literal") // TODO Esprima should return JSXText instead.
108
- )], defaults.emptyArray)
109
-
110
- def("JSXOpeningFragment")
111
- .bases("Node") // TODO Same concern.
112
- .build();
113
-
114
- def("JSXClosingFragment")
115
- .bases("Node") // TODO Same concern.
116
- .build();
117
-
118
- def("JSXText")
119
- .bases("Literal")
120
- .build("value")
121
- .field("value", String);
122
-
123
- def("JSXEmptyExpression").bases("Expression").build();
124
-
125
- // This PR has caused many people issues, but supporting it seems like a
126
- // good idea anyway: https://github.com/babel/babel/pull/4988
127
- def("JSXSpreadChild")
128
- .bases("Expression")
129
- .build("expression")
130
- .field("expression", def("Expression"));
131
- };
69
+ def("JSXOpeningElement")
70
+ .bases("Node") // TODO Does this make sense? Can't really be an JSXElement.
71
+ .build("name", "attributes", "selfClosing")
72
+ .field("name", JSXElementName)
73
+ .field("attributes", JSXAttributes, defaults.emptyArray)
74
+ .field("selfClosing", Boolean, defaults["false"]);
75
+ def("JSXClosingElement")
76
+ .bases("Node") // TODO Same concern.
77
+ .build("name")
78
+ .field("name", JSXElementName);
79
+ def("JSXFragment")
80
+ .bases("Expression")
81
+ .build("openingElement", "closingElement", "children")
82
+ .field("openingElement", def("JSXOpeningFragment"))
83
+ .field("closingElement", def("JSXClosingFragment"))
84
+ .field("children", [or(def("JSXElement"), def("JSXExpressionContainer"), def("JSXFragment"), def("JSXText"), def("Literal") // TODO Esprima should return JSXText instead.
85
+ )], defaults.emptyArray);
86
+ def("JSXOpeningFragment")
87
+ .bases("Node") // TODO Same concern.
88
+ .build();
89
+ def("JSXClosingFragment")
90
+ .bases("Node") // TODO Same concern.
91
+ .build();
92
+ def("JSXText")
93
+ .bases("Literal")
94
+ .build("value")
95
+ .field("value", String);
96
+ def("JSXEmptyExpression").bases("Expression").build();
97
+ // This PR has caused many people issues, but supporting it seems like a
98
+ // good idea anyway: https://github.com/babel/babel/pull/4988
99
+ def("JSXSpreadChild")
100
+ .bases("Expression")
101
+ .build("expression")
102
+ .field("expression", def("Expression"));
103
+ }
104
+ exports.default = default_1;
105
+ module.exports = exports["default"];
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Type annotation defs shared between Flow and TypeScript.
3
+ * These defs could not be defined in ./flow.ts or ./typescript.ts directly
4
+ * because they use the same name.
5
+ */
6
+ import { Fork } from "../types";
7
+ export default function (fork: Fork): void;
@@ -0,0 +1,42 @@
1
+ "use strict";;
2
+ /**
3
+ * Type annotation defs shared between Flow and TypeScript.
4
+ * These defs could not be defined in ./flow.ts or ./typescript.ts directly
5
+ * because they use the same name.
6
+ */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ var types_1 = __importDefault(require("../lib/types"));
12
+ var shared_1 = __importDefault(require("../lib/shared"));
13
+ function default_1(fork) {
14
+ var types = fork.use(types_1.default);
15
+ var def = types.Type.def;
16
+ var or = types.Type.or;
17
+ var defaults = fork.use(shared_1.default).defaults;
18
+ var TypeAnnotation = or(def("TypeAnnotation"), def("TSTypeAnnotation"), null);
19
+ var TypeParamDecl = or(def("TypeParameterDeclaration"), def("TSTypeParameterDeclaration"), null);
20
+ def("Identifier")
21
+ .field("typeAnnotation", TypeAnnotation, defaults["null"]);
22
+ def("ObjectPattern")
23
+ .field("typeAnnotation", TypeAnnotation, defaults["null"]);
24
+ def("Function")
25
+ .field("returnType", TypeAnnotation, defaults["null"])
26
+ .field("typeParameters", TypeParamDecl, defaults["null"]);
27
+ def("ClassProperty")
28
+ .build("key", "value", "typeAnnotation", "static")
29
+ .field("value", or(def("Expression"), null))
30
+ .field("static", Boolean, defaults["false"])
31
+ .field("typeAnnotation", TypeAnnotation, defaults["null"]);
32
+ ["ClassDeclaration",
33
+ "ClassExpression",
34
+ ].forEach(function (typeName) {
35
+ def(typeName)
36
+ .field("typeParameters", TypeParamDecl, defaults["null"])
37
+ .field("superTypeParameters", or(def("TypeParameterInstantiation"), def("TSTypeParameterInstantiation"), null), defaults["null"])
38
+ .field("implements", or([def("ClassImplements")], [def("TSExpressionWithTypeArguments")]), defaults.emptyArray);
39
+ });
40
+ }
41
+ exports.default = default_1;
42
+ module.exports = exports["default"];
@@ -0,0 +1,2 @@
1
+ import { Fork } from "../types";
2
+ export default function (fork: Fork): void;