eca6f04023079f7f7cede79e816b13390410960d.svn-base
1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# The flow-parser package
This package contains the Flow parser in its compiled-to-JavaScript form.
# What is Flow
See [flow.org](https://flow.org/). The code for the Flow parser [lives on GitHub](https://github.com/facebook/flow/tree/master/src/parser).
# What is the Flow Parser
The Flow Parser is a JavaScript parser written in OCaml. It produces an AST that conforms to the [ESTree spec](https://github.com/estree/estree) and that mostly matches what [esprima](http://esprima.org/) produces. The Flow Parser can be compiled to native code or can be compiled to JavaScript using [js_of_ocaml](http://ocsigen.org/js_of_ocaml/). This npm package contains the Flow parser compiled to JavaScript.
# Usage
You can use the Flow parser in your browser or in node. To use in node you can just do
```JavaScript
require('flow-parser').parse('1+1', {});
```
To use in the browser, you can add
```HTML
<script src="flow_parser.js"></script>
```
which will make the `flow` object available to use like so:
```JavaScript
flow.parse('1+1', {});
```
## Options
The second argument to `flow.parse` is the options object. Currently supported options:
* `enums` (boolean, default `false`) - enable parsing of Flow enums
* `esproposal_decorators` (boolean, default `false`) - enable parsing of decorators
* `esproposal_class_instance_fields` (boolean, default `false`) - enable parsing of class instance fields
* `esproposal_class_static_fields` (boolean, default `false`) - enable parsing of class static fields
* `esproposal_export_star_as` (boolean, default `false`) - enable parsing of `export * as` syntax
* `esproposal_optional_chaining` (boolean, default `false`) - enable parsing of optional chaining (`?.`)
* `esproposal_nullish_coalescing` (boolean, default `false`) - enable parsing of nullish coalescing (`??`)
* `types` (boolean, default `true`) - enable parsing of Flow types