ast-types 0.10.0 → 0.10.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 (2) hide show
  1. package/def/flow.js +354 -347
  2. package/package.json +1 -1
package/def/flow.js CHANGED
@@ -1,349 +1,356 @@
1
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
- // Type Annotations
10
- def("Type").bases("Node");
11
-
12
- def("AnyTypeAnnotation")
13
- .bases("Type")
14
- .build();
15
-
16
- def("EmptyTypeAnnotation")
17
- .bases("Type")
18
- .build();
19
-
20
- def("MixedTypeAnnotation")
21
- .bases("Type")
22
- .build();
23
-
24
- def("VoidTypeAnnotation")
25
- .bases("Type")
26
- .build();
27
-
28
- def("NumberTypeAnnotation")
29
- .bases("Type")
30
- .build();
31
-
32
- def("NumberLiteralTypeAnnotation")
33
- .bases("Type")
34
- .build("value", "raw")
35
- .field("value", Number)
36
- .field("raw", String);
37
-
38
- // Babylon 6 differs in AST from Flow
39
- // same as NumberLiteralTypeAnnotation
40
- def("NumericLiteralTypeAnnotation")
41
- .bases("Type")
42
- .build("value", "raw")
43
- .field("value", Number)
44
- .field("raw", String);
45
-
46
- def("StringTypeAnnotation")
47
- .bases("Type")
48
- .build();
49
-
50
- def("StringLiteralTypeAnnotation")
51
- .bases("Type")
52
- .build("value", "raw")
53
- .field("value", String)
54
- .field("raw", String);
55
-
56
- def("BooleanTypeAnnotation")
57
- .bases("Type")
58
- .build();
59
-
60
- def("BooleanLiteralTypeAnnotation")
61
- .bases("Type")
62
- .build("value", "raw")
63
- .field("value", Boolean)
64
- .field("raw", String);
65
-
66
- def("TypeAnnotation")
67
- .bases("Node")
68
- .build("typeAnnotation")
69
- .field("typeAnnotation", def("Type"));
70
-
71
- def("NullableTypeAnnotation")
72
- .bases("Type")
73
- .build("typeAnnotation")
74
- .field("typeAnnotation", def("Type"));
75
-
76
- def("NullLiteralTypeAnnotation")
77
- .bases("Type")
78
- .build();
79
-
80
- def("NullTypeAnnotation")
81
- .bases("Type")
82
- .build();
83
-
84
- def("ThisTypeAnnotation")
85
- .bases("Type")
86
- .build();
87
-
88
- def("ExistsTypeAnnotation")
89
- .bases("Type")
90
- .build();
91
-
92
- def("ExistentialTypeParam")
93
- .bases("Type")
94
- .build();
95
-
96
- def("FunctionTypeAnnotation")
97
- .bases("Type")
98
- .build("params", "returnType", "rest", "typeParameters")
99
- .field("params", [def("FunctionTypeParam")])
100
- .field("returnType", def("Type"))
101
- .field("rest", or(def("FunctionTypeParam"), null))
102
- .field("typeParameters", or(def("TypeParameterDeclaration"), null));
103
-
104
- def("FunctionTypeParam")
105
- .bases("Node")
106
- .build("name", "typeAnnotation", "optional")
107
- .field("name", def("Identifier"))
108
- .field("typeAnnotation", def("Type"))
109
- .field("optional", Boolean);
110
-
111
- def("ArrayTypeAnnotation")
112
- .bases("Type")
113
- .build("elementType")
114
- .field("elementType", def("Type"));
115
-
116
- def("ObjectTypeAnnotation")
117
- .bases("Type")
118
- .build("properties", "indexers", "callProperties")
119
- .field("properties", [or(def("ObjectTypeProperty"), def("ObjectTypeSpreadProperty"))])
120
- .field("indexers", [def("ObjectTypeIndexer")], defaults.emptyArray)
121
- .field("callProperties",
122
- [def("ObjectTypeCallProperty")],
123
- defaults.emptyArray)
124
- .field("exact", Boolean, defaults["false"]);
125
-
126
- def("ObjectTypeProperty")
127
- .bases("Node")
128
- .build("key", "value", "optional")
129
- .field("key", or(def("Literal"), def("Identifier")))
130
- .field("value", def("Type"))
131
- .field("optional", Boolean)
132
- .field("variance",
133
- or("plus", "minus", null),
134
- defaults["null"]);
135
-
136
- def("ObjectTypeIndexer")
137
- .bases("Node")
138
- .build("id", "key", "value")
139
- .field("id", def("Identifier"))
140
- .field("key", def("Type"))
141
- .field("value", def("Type"))
142
- .field("variance",
143
- or("plus", "minus", null),
144
- defaults["null"]);
145
-
146
- def("ObjectTypeCallProperty")
147
- .bases("Node")
148
- .build("value")
149
- .field("value", def("FunctionTypeAnnotation"))
150
- .field("static", Boolean, defaults["false"]);
151
-
152
- def("QualifiedTypeIdentifier")
153
- .bases("Node")
154
- .build("qualification", "id")
155
- .field("qualification",
156
- or(def("Identifier"),
157
- def("QualifiedTypeIdentifier")))
158
- .field("id", def("Identifier"));
159
-
160
- def("GenericTypeAnnotation")
161
- .bases("Type")
162
- .build("id", "typeParameters")
163
- .field("id", or(def("Identifier"), def("QualifiedTypeIdentifier")))
164
- .field("typeParameters", or(def("TypeParameterInstantiation"), null));
165
-
166
- def("MemberTypeAnnotation")
167
- .bases("Type")
168
- .build("object", "property")
169
- .field("object", def("Identifier"))
170
- .field("property",
171
- or(def("MemberTypeAnnotation"),
172
- def("GenericTypeAnnotation")));
173
-
174
- def("UnionTypeAnnotation")
175
- .bases("Type")
176
- .build("types")
177
- .field("types", [def("Type")]);
178
-
179
- def("IntersectionTypeAnnotation")
180
- .bases("Type")
181
- .build("types")
182
- .field("types", [def("Type")]);
183
-
184
- def("TypeofTypeAnnotation")
185
- .bases("Type")
186
- .build("argument")
187
- .field("argument", def("Type"));
188
-
189
- def("ObjectTypeSpreadProperty")
190
- .bases("Node")
191
- .build("argument")
192
- .field("argument", def("Type"));
193
-
194
- def("Identifier")
195
- .field("typeAnnotation", or(def("TypeAnnotation"), null), defaults["null"]);
196
-
197
- def("ObjectPattern")
198
- .field("typeAnnotation", or(def("TypeAnnotation"), null), defaults["null"]);
199
-
200
- def("TypeParameterDeclaration")
201
- .bases("Node")
202
- .build("params")
203
- .field("params", [def("TypeParameter")]);
204
-
205
- def("TypeParameterInstantiation")
206
- .bases("Node")
207
- .build("params")
208
- .field("params", [def("Type")]);
209
-
210
- def("TypeParameter")
211
- .bases("Type")
212
- .build("name", "variance", "bound")
213
- .field("name", String)
214
- .field("variance",
215
- or("plus", "minus", null),
216
- defaults["null"])
217
- .field("bound",
218
- or(def("TypeAnnotation"), null),
219
- defaults["null"]);
220
-
221
- def("Function")
222
- .field("returnType",
223
- or(def("TypeAnnotation"), null),
224
- defaults["null"])
225
- .field("typeParameters",
226
- or(def("TypeParameterDeclaration"), null),
227
- defaults["null"]);
228
-
229
- def("ClassProperty")
230
- .build("key", "value", "typeAnnotation", "static")
231
- .field("value", or(def("Expression"), null))
232
- .field("typeAnnotation", or(def("TypeAnnotation"), null))
233
- .field("static", Boolean, defaults["false"])
234
- .field("variance",
235
- or("plus", "minus", null),
236
- defaults["null"]);
237
-
238
- def("ClassImplements")
239
- .field("typeParameters",
240
- or(def("TypeParameterInstantiation"), null),
241
- defaults["null"]);
242
-
243
- def("InterfaceDeclaration")
244
- .bases("Declaration")
245
- .build("id", "body", "extends")
246
- .field("id", def("Identifier"))
247
- .field("typeParameters",
248
- or(def("TypeParameterDeclaration"), null),
249
- defaults["null"])
250
- .field("body", def("ObjectTypeAnnotation"))
251
- .field("extends", [def("InterfaceExtends")]);
252
-
253
- def("DeclareInterface")
254
- .bases("InterfaceDeclaration")
255
- .build("id", "body", "extends");
256
-
257
- def("InterfaceExtends")
258
- .bases("Node")
259
- .build("id")
260
- .field("id", def("Identifier"))
261
- .field("typeParameters", or(def("TypeParameterInstantiation"), null));
262
-
263
- def("TypeAlias")
264
- .bases("Declaration")
265
- .build("id", "typeParameters", "right")
266
- .field("id", def("Identifier"))
267
- .field("typeParameters", or(def("TypeParameterDeclaration"), null))
268
- .field("right", def("Type"));
269
-
270
- def("OpaqueType")
271
- .bases("Declaration")
272
- .build("id", "typeParameters", "impltype", "supertype")
273
- .field("id", def("Identifier"))
274
- .field("typeParameters", or(def("TypeParameterDeclaration"), null))
275
- .field("implType", def("Type"))
276
- .field("superType", def("Type"));
277
-
278
- def("DeclareTypeAlias")
279
- .bases("TypeAlias")
280
- .build("id", "typeParameters", "right");
281
-
282
- def("DeclareOpaqueType")
283
- .bases("TypeAlias")
284
- .build("id", "typeParameters", "supertype");
285
-
286
- def("TypeCastExpression")
287
- .bases("Expression")
288
- .build("expression", "typeAnnotation")
289
- .field("expression", def("Expression"))
290
- .field("typeAnnotation", def("TypeAnnotation"));
291
-
292
- def("TupleTypeAnnotation")
293
- .bases("Type")
294
- .build("types")
295
- .field("types", [def("Type")]);
296
-
297
- def("DeclareVariable")
298
- .bases("Statement")
299
- .build("id")
300
- .field("id", def("Identifier"));
301
-
302
- def("DeclareFunction")
303
- .bases("Statement")
304
- .build("id")
305
- .field("id", def("Identifier"));
306
-
307
- def("DeclareClass")
308
- .bases("InterfaceDeclaration")
309
- .build("id");
310
-
311
- def("DeclareModule")
312
- .bases("Statement")
313
- .build("id", "body")
314
- .field("id", or(def("Identifier"), def("Literal")))
315
- .field("body", def("BlockStatement"));
316
-
317
- def("DeclareModuleExports")
318
- .bases("Statement")
319
- .build("typeAnnotation")
320
- .field("typeAnnotation", def("Type"));
321
-
322
- def("DeclareExportDeclaration")
323
- .bases("Declaration")
324
- .build("default", "declaration", "specifiers", "source")
325
- .field("default", Boolean)
326
- .field("declaration", or(
327
- def("DeclareVariable"),
328
- def("DeclareFunction"),
329
- def("DeclareClass"),
330
- def("Type"), // Implies default.
331
- null
332
- ))
333
- .field("specifiers", [or(
334
- def("ExportSpecifier"),
335
- def("ExportBatchSpecifier")
336
- )], defaults.emptyArray)
337
- .field("source", or(
338
- def("Literal"),
339
- null
340
- ), defaults["null"]);
341
-
342
- def("DeclareExportAllDeclaration")
343
- .bases("Declaration")
344
- .build("source")
345
- .field("source", or(
346
- def("Literal"),
347
- null
348
- ), defaults["null"]);
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
+ // Type Annotations
10
+ def("Type").bases("Node");
11
+
12
+ def("AnyTypeAnnotation")
13
+ .bases("Type")
14
+ .build();
15
+
16
+ def("EmptyTypeAnnotation")
17
+ .bases("Type")
18
+ .build();
19
+
20
+ def("MixedTypeAnnotation")
21
+ .bases("Type")
22
+ .build();
23
+
24
+ def("VoidTypeAnnotation")
25
+ .bases("Type")
26
+ .build();
27
+
28
+ def("NumberTypeAnnotation")
29
+ .bases("Type")
30
+ .build();
31
+
32
+ def("NumberLiteralTypeAnnotation")
33
+ .bases("Type")
34
+ .build("value", "raw")
35
+ .field("value", Number)
36
+ .field("raw", String);
37
+
38
+ // Babylon 6 differs in AST from Flow
39
+ // same as NumberLiteralTypeAnnotation
40
+ def("NumericLiteralTypeAnnotation")
41
+ .bases("Type")
42
+ .build("value", "raw")
43
+ .field("value", Number)
44
+ .field("raw", String);
45
+
46
+ def("StringTypeAnnotation")
47
+ .bases("Type")
48
+ .build();
49
+
50
+ def("StringLiteralTypeAnnotation")
51
+ .bases("Type")
52
+ .build("value", "raw")
53
+ .field("value", String)
54
+ .field("raw", String);
55
+
56
+ def("BooleanTypeAnnotation")
57
+ .bases("Type")
58
+ .build();
59
+
60
+ def("BooleanLiteralTypeAnnotation")
61
+ .bases("Type")
62
+ .build("value", "raw")
63
+ .field("value", Boolean)
64
+ .field("raw", String);
65
+
66
+ def("TypeAnnotation")
67
+ .bases("Node")
68
+ .build("typeAnnotation")
69
+ .field("typeAnnotation", def("Type"));
70
+
71
+ def("NullableTypeAnnotation")
72
+ .bases("Type")
73
+ .build("typeAnnotation")
74
+ .field("typeAnnotation", def("Type"));
75
+
76
+ def("NullLiteralTypeAnnotation")
77
+ .bases("Type")
78
+ .build();
79
+
80
+ def("NullTypeAnnotation")
81
+ .bases("Type")
82
+ .build();
83
+
84
+ def("ThisTypeAnnotation")
85
+ .bases("Type")
86
+ .build();
87
+
88
+ def("ExistsTypeAnnotation")
89
+ .bases("Type")
90
+ .build();
91
+
92
+ def("ExistentialTypeParam")
93
+ .bases("Type")
94
+ .build();
95
+
96
+ def("FunctionTypeAnnotation")
97
+ .bases("Type")
98
+ .build("params", "returnType", "rest", "typeParameters")
99
+ .field("params", [def("FunctionTypeParam")])
100
+ .field("returnType", def("Type"))
101
+ .field("rest", or(def("FunctionTypeParam"), null))
102
+ .field("typeParameters", or(def("TypeParameterDeclaration"), null));
103
+
104
+ def("FunctionTypeParam")
105
+ .bases("Node")
106
+ .build("name", "typeAnnotation", "optional")
107
+ .field("name", def("Identifier"))
108
+ .field("typeAnnotation", def("Type"))
109
+ .field("optional", Boolean);
110
+
111
+ def("ArrayTypeAnnotation")
112
+ .bases("Type")
113
+ .build("elementType")
114
+ .field("elementType", def("Type"));
115
+
116
+ def("ObjectTypeAnnotation")
117
+ .bases("Type")
118
+ .build("properties", "indexers", "callProperties")
119
+ .field("properties", [
120
+ or(def("ObjectTypeProperty"),
121
+ def("ObjectTypeSpreadProperty"))
122
+ ])
123
+ .field("indexers", [def("ObjectTypeIndexer")], defaults.emptyArray)
124
+ .field("callProperties",
125
+ [def("ObjectTypeCallProperty")],
126
+ defaults.emptyArray)
127
+ .field("exact", Boolean, defaults["false"]);
128
+
129
+ def("Variance")
130
+ .bases("Node")
131
+ .build("kind")
132
+ .field("kind", or("plus", "minus"));
133
+
134
+ var LegacyVariance = or(
135
+ def("Variance"),
136
+ "plus",
137
+ "minus",
138
+ null
139
+ );
140
+
141
+ def("ObjectTypeProperty")
142
+ .bases("Node")
143
+ .build("key", "value", "optional")
144
+ .field("key", or(def("Literal"), def("Identifier")))
145
+ .field("value", def("Type"))
146
+ .field("optional", Boolean)
147
+ .field("variance", LegacyVariance, defaults["null"]);
148
+
149
+ def("ObjectTypeIndexer")
150
+ .bases("Node")
151
+ .build("id", "key", "value")
152
+ .field("id", def("Identifier"))
153
+ .field("key", def("Type"))
154
+ .field("value", def("Type"))
155
+ .field("variance", LegacyVariance, defaults["null"]);
156
+
157
+ def("ObjectTypeCallProperty")
158
+ .bases("Node")
159
+ .build("value")
160
+ .field("value", def("FunctionTypeAnnotation"))
161
+ .field("static", Boolean, defaults["false"]);
162
+
163
+ def("QualifiedTypeIdentifier")
164
+ .bases("Node")
165
+ .build("qualification", "id")
166
+ .field("qualification",
167
+ or(def("Identifier"),
168
+ def("QualifiedTypeIdentifier")))
169
+ .field("id", def("Identifier"));
170
+
171
+ def("GenericTypeAnnotation")
172
+ .bases("Type")
173
+ .build("id", "typeParameters")
174
+ .field("id", or(def("Identifier"), def("QualifiedTypeIdentifier")))
175
+ .field("typeParameters", or(def("TypeParameterInstantiation"), null));
176
+
177
+ def("MemberTypeAnnotation")
178
+ .bases("Type")
179
+ .build("object", "property")
180
+ .field("object", def("Identifier"))
181
+ .field("property",
182
+ or(def("MemberTypeAnnotation"),
183
+ def("GenericTypeAnnotation")));
184
+
185
+ def("UnionTypeAnnotation")
186
+ .bases("Type")
187
+ .build("types")
188
+ .field("types", [def("Type")]);
189
+
190
+ def("IntersectionTypeAnnotation")
191
+ .bases("Type")
192
+ .build("types")
193
+ .field("types", [def("Type")]);
194
+
195
+ def("TypeofTypeAnnotation")
196
+ .bases("Type")
197
+ .build("argument")
198
+ .field("argument", def("Type"));
199
+
200
+ def("ObjectTypeSpreadProperty")
201
+ .bases("Node")
202
+ .build("argument")
203
+ .field("argument", def("Type"));
204
+
205
+ def("Identifier")
206
+ .field("typeAnnotation", or(def("TypeAnnotation"), null), defaults["null"]);
207
+
208
+ def("ObjectPattern")
209
+ .field("typeAnnotation", or(def("TypeAnnotation"), null), defaults["null"]);
210
+
211
+ def("TypeParameterDeclaration")
212
+ .bases("Node")
213
+ .build("params")
214
+ .field("params", [def("TypeParameter")]);
215
+
216
+ def("TypeParameterInstantiation")
217
+ .bases("Node")
218
+ .build("params")
219
+ .field("params", [def("Type")]);
220
+
221
+ def("TypeParameter")
222
+ .bases("Type")
223
+ .build("name", "variance", "bound")
224
+ .field("name", String)
225
+ .field("variance", LegacyVariance, defaults["null"])
226
+ .field("bound",
227
+ or(def("TypeAnnotation"), null),
228
+ defaults["null"]);
229
+
230
+ def("Function")
231
+ .field("returnType",
232
+ or(def("TypeAnnotation"), null),
233
+ defaults["null"])
234
+ .field("typeParameters",
235
+ or(def("TypeParameterDeclaration"), null),
236
+ defaults["null"]);
237
+
238
+ def("ClassProperty")
239
+ .build("key", "value", "typeAnnotation", "static")
240
+ .field("value", or(def("Expression"), null))
241
+ .field("typeAnnotation", or(def("TypeAnnotation"), null))
242
+ .field("static", Boolean, defaults["false"])
243
+ .field("variance", LegacyVariance, defaults["null"]);
244
+
245
+ def("ClassImplements")
246
+ .field("typeParameters",
247
+ or(def("TypeParameterInstantiation"), null),
248
+ defaults["null"]);
249
+
250
+ def("InterfaceDeclaration")
251
+ .bases("Declaration")
252
+ .build("id", "body", "extends")
253
+ .field("id", def("Identifier"))
254
+ .field("typeParameters",
255
+ or(def("TypeParameterDeclaration"), null),
256
+ defaults["null"])
257
+ .field("body", def("ObjectTypeAnnotation"))
258
+ .field("extends", [def("InterfaceExtends")]);
259
+
260
+ def("DeclareInterface")
261
+ .bases("InterfaceDeclaration")
262
+ .build("id", "body", "extends");
263
+
264
+ def("InterfaceExtends")
265
+ .bases("Node")
266
+ .build("id")
267
+ .field("id", def("Identifier"))
268
+ .field("typeParameters", or(def("TypeParameterInstantiation"), null));
269
+
270
+ def("TypeAlias")
271
+ .bases("Declaration")
272
+ .build("id", "typeParameters", "right")
273
+ .field("id", def("Identifier"))
274
+ .field("typeParameters", or(def("TypeParameterDeclaration"), null))
275
+ .field("right", def("Type"));
276
+
277
+ def("OpaqueType")
278
+ .bases("Declaration")
279
+ .build("id", "typeParameters", "impltype", "supertype")
280
+ .field("id", def("Identifier"))
281
+ .field("typeParameters", or(def("TypeParameterDeclaration"), null))
282
+ .field("implType", def("Type"))
283
+ .field("superType", def("Type"));
284
+
285
+ def("DeclareTypeAlias")
286
+ .bases("TypeAlias")
287
+ .build("id", "typeParameters", "right");
288
+
289
+ def("DeclareOpaqueType")
290
+ .bases("TypeAlias")
291
+ .build("id", "typeParameters", "supertype");
292
+
293
+ def("TypeCastExpression")
294
+ .bases("Expression")
295
+ .build("expression", "typeAnnotation")
296
+ .field("expression", def("Expression"))
297
+ .field("typeAnnotation", def("TypeAnnotation"));
298
+
299
+ def("TupleTypeAnnotation")
300
+ .bases("Type")
301
+ .build("types")
302
+ .field("types", [def("Type")]);
303
+
304
+ def("DeclareVariable")
305
+ .bases("Statement")
306
+ .build("id")
307
+ .field("id", def("Identifier"));
308
+
309
+ def("DeclareFunction")
310
+ .bases("Statement")
311
+ .build("id")
312
+ .field("id", def("Identifier"));
313
+
314
+ def("DeclareClass")
315
+ .bases("InterfaceDeclaration")
316
+ .build("id");
317
+
318
+ def("DeclareModule")
319
+ .bases("Statement")
320
+ .build("id", "body")
321
+ .field("id", or(def("Identifier"), def("Literal")))
322
+ .field("body", def("BlockStatement"));
323
+
324
+ def("DeclareModuleExports")
325
+ .bases("Statement")
326
+ .build("typeAnnotation")
327
+ .field("typeAnnotation", def("Type"));
328
+
329
+ def("DeclareExportDeclaration")
330
+ .bases("Declaration")
331
+ .build("default", "declaration", "specifiers", "source")
332
+ .field("default", Boolean)
333
+ .field("declaration", or(
334
+ def("DeclareVariable"),
335
+ def("DeclareFunction"),
336
+ def("DeclareClass"),
337
+ def("Type"), // Implies default.
338
+ null
339
+ ))
340
+ .field("specifiers", [or(
341
+ def("ExportSpecifier"),
342
+ def("ExportBatchSpecifier")
343
+ )], defaults.emptyArray)
344
+ .field("source", or(
345
+ def("Literal"),
346
+ null
347
+ ), defaults["null"]);
348
+
349
+ def("DeclareExportAllDeclaration")
350
+ .bases("Declaration")
351
+ .build("source")
352
+ .field("source", or(
353
+ def("Literal"),
354
+ null
355
+ ), defaults["null"]);
349
356
  };
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  "transformation",
19
19
  "syntax"
20
20
  ],
21
- "version": "0.10.0",
21
+ "version": "0.10.1",
22
22
  "homepage": "http://github.com/benjamn/ast-types",
23
23
  "repository": {
24
24
  "type": "git",