flow-parser 0.319.0 → 0.321.0
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.
- package/README.md +14 -26
- package/{oxidized → dist}/FlowParserNodeDeserializers.js +26 -12
- package/dist/FlowParserWASM.js +1 -0
- package/{oxidized → dist}/babel/TransformESTreeToBabel.js +11 -3
- package/{oxidized → dist}/babel/TransformESTreeToBabel.js.flow +12 -4
- package/{oxidized/oxidized-src → dist}/estree/StripFlowTypesForBabel.js +33 -18
- package/{oxidized → dist}/estree/StripFlowTypesForBabel.js.flow +40 -18
- package/{oxidized/oxidized-src → dist}/estree/TransformComponentSyntax.js +25 -12
- package/{oxidized → dist}/estree/TransformComponentSyntax.js.flow +29 -11
- package/{oxidized → dist}/generated/ESTreeVisitorKeys.js +1 -1
- package/package.json +6 -7
- package/flow_parser.js +0 -14575
- package/oxidized/FlowParserWASM.js +0 -1
- package/oxidized/estree/StripFlowTypesForBabel.js +0 -176
- package/oxidized/estree/TransformComponentSyntax.js +0 -751
- package/oxidized/oxidized-src/FlowParser.js +0 -249
- package/oxidized/oxidized-src/FlowParserDeserializer.js +0 -209
- package/oxidized/oxidized-src/FlowParserNodeDeserializers.js +0 -1767
- package/oxidized/oxidized-src/HermesParserDecodeUTF8String.js +0 -45
- package/oxidized/oxidized-src/ParserOptions.js +0 -8
- package/oxidized/oxidized-src/babel/TransformESTreeToBabel.js +0 -1055
- package/oxidized/oxidized-src/estree/StripFlowTypes.js +0 -158
- package/oxidized/oxidized-src/estree/TransformEnumSyntax.js +0 -92
- package/oxidized/oxidized-src/estree/TransformMatchSyntax.js +0 -990
- package/oxidized/oxidized-src/estree/TransformRecordSyntax.js +0 -283
- package/oxidized/oxidized-src/generated/ESTreeVisitorKeys.js +0 -234
- package/oxidized/oxidized-src/getModuleDocblock.js +0 -87
- package/oxidized/oxidized-src/index.js +0 -220
- package/oxidized/transform/SimpleTransform.js +0 -95
- package/oxidized/transform/astArrayMutationHelpers.js +0 -52
- package/oxidized/transform/astNodeMutationHelpers.js +0 -142
- package/oxidized/transform/print/comments/comments.js +0 -245
- package/oxidized/transform/print/comments/prettier/common/util.js +0 -235
- package/oxidized/transform/print/comments/prettier/language-js/comments.js +0 -663
- package/oxidized/transform/print/comments/prettier/language-js/loc.js +0 -30
- package/oxidized/transform/print/comments/prettier/language-js/printer-estree.js +0 -23
- package/oxidized/transform/print/comments/prettier/language-js/utils.js +0 -89
- package/oxidized/transform/print/comments/prettier/main/comments.js +0 -374
- package/oxidized/transform/print/comments/prettier/utils/get-last.js +0 -5
- package/oxidized/transform/print/detachedNodeTypes.js +0 -1
- package/oxidized/transform/print/print.js +0 -68
- package/oxidized/traverse/SimpleTraverser.js +0 -90
- package/oxidized/traverse/getVisitorKeys.js +0 -29
- package/oxidized/utils/Builders.js +0 -181
- package/oxidized/utils/GenID.js +0 -37
- package/oxidized/utils/createSyntaxError.js +0 -15
- package/oxidized/utils/isReservedWord.js +0 -53
- package/oxidized/utils/mutateESTreeASTForPrettier.js +0 -85
- /package/{oxidized → dist}/FlowParser.js +0 -0
- /package/{oxidized → dist}/FlowParser.js.flow +0 -0
- /package/{oxidized → dist}/FlowParserDeserializer.js +0 -0
- /package/{oxidized → dist}/FlowParserDeserializer.js.flow +0 -0
- /package/{oxidized → dist}/FlowParserNodeDeserializers.js.flow +0 -0
- /package/{oxidized → dist}/FlowParserWASM.js.flow +0 -0
- /package/{oxidized → dist}/HermesAST.js.flow +0 -0
- /package/{oxidized → dist}/HermesParserDecodeUTF8String.js +0 -0
- /package/{oxidized → dist}/HermesParserDecodeUTF8String.js.flow +0 -0
- /package/{oxidized → dist}/ParserOptions.js +0 -0
- /package/{oxidized → dist}/ParserOptions.js.flow +0 -0
- /package/{oxidized → dist}/estree/StripFlowTypes.js +0 -0
- /package/{oxidized → dist}/estree/StripFlowTypes.js.flow +0 -0
- /package/{oxidized → dist}/estree/TransformEnumSyntax.js +0 -0
- /package/{oxidized → dist}/estree/TransformEnumSyntax.js.flow +0 -0
- /package/{oxidized → dist}/estree/TransformMatchSyntax.js +0 -0
- /package/{oxidized → dist}/estree/TransformMatchSyntax.js.flow +0 -0
- /package/{oxidized → dist}/estree/TransformRecordSyntax.js +0 -0
- /package/{oxidized → dist}/estree/TransformRecordSyntax.js.flow +0 -0
- /package/{oxidized → dist}/generated/ESTreeVisitorKeys.js.flow +0 -0
- /package/{oxidized → dist}/getModuleDocblock.js +0 -0
- /package/{oxidized → dist}/getModuleDocblock.js.flow +0 -0
- /package/{oxidized → dist}/index.js +0 -0
- /package/{oxidized → dist}/index.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/SimpleTransform.js +0 -0
- /package/{oxidized → dist}/transform/SimpleTransform.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/astArrayMutationHelpers.js +0 -0
- /package/{oxidized → dist}/transform/astArrayMutationHelpers.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/astNodeMutationHelpers.js +0 -0
- /package/{oxidized → dist}/transform/astNodeMutationHelpers.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/comments.js +0 -0
- /package/{oxidized → dist}/transform/print/comments/comments.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/common/util.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/comments.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/loc.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/printer-estree.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/utils.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/main/comments.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/utils/get-last.js +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/detachedNodeTypes.js +0 -0
- /package/{oxidized → dist}/transform/print/detachedNodeTypes.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/transform/print/print.js +0 -0
- /package/{oxidized → dist}/transform/print/print.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/traverse/SimpleTraverser.js +0 -0
- /package/{oxidized → dist}/traverse/SimpleTraverser.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/traverse/getVisitorKeys.js +0 -0
- /package/{oxidized → dist}/traverse/getVisitorKeys.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/Builders.js +0 -0
- /package/{oxidized → dist}/utils/Builders.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/GenID.js +0 -0
- /package/{oxidized → dist}/utils/GenID.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/createSyntaxError.js +0 -0
- /package/{oxidized → dist}/utils/createSyntaxError.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/isReservedWord.js +0 -0
- /package/{oxidized → dist}/utils/isReservedWord.js.flow +0 -0
- /package/{oxidized/oxidized-src → dist}/utils/mutateESTreeASTForPrettier.js +0 -0
- /package/{oxidized → dist}/utils/mutateESTreeASTForPrettier.js.flow +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# The flow-parser package
|
|
2
2
|
|
|
3
|
-
This package contains the Flow parser in its
|
|
3
|
+
This package contains the Flow parser in its JavaScript package form.
|
|
4
4
|
|
|
5
5
|
# What is Flow
|
|
6
6
|
|
|
@@ -8,42 +8,30 @@ See [flow.org](https://flow.org/). The code for the Flow parser [lives on GitHub
|
|
|
8
8
|
|
|
9
9
|
# What is the Flow Parser
|
|
10
10
|
|
|
11
|
-
The Flow Parser is a JavaScript parser
|
|
11
|
+
The Flow Parser is a JavaScript parser for Flow syntax. It produces an AST that conforms to the [ESTree spec](https://github.com/estree/estree). This npm package contains the Flow Rust parser compiled to WASM with JavaScript bindings.
|
|
12
12
|
|
|
13
13
|
# Usage
|
|
14
14
|
|
|
15
|
-
You can use the Flow parser in
|
|
15
|
+
You can use the Flow parser in node:
|
|
16
16
|
|
|
17
17
|
```JavaScript
|
|
18
|
-
require('flow-parser')
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
To use in the browser, you can add
|
|
22
|
-
|
|
23
|
-
```HTML
|
|
24
|
-
<script src="flow_parser.js"></script>
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
which will make the `flow` object available to use like so:
|
|
28
|
-
|
|
29
|
-
```JavaScript
|
|
30
|
-
flow.parse('1+1', {});
|
|
18
|
+
const {parse} = require('flow-parser');
|
|
19
|
+
parse('1+1', {});
|
|
31
20
|
```
|
|
32
21
|
|
|
33
22
|
## Options
|
|
34
23
|
|
|
35
|
-
The second argument to `
|
|
24
|
+
The second argument to `parse` is the options object. Common options:
|
|
36
25
|
|
|
37
26
|
### Basic options
|
|
38
|
-
* `
|
|
39
|
-
* `
|
|
40
|
-
* `comments` (boolean, default `true`) - attach comments to AST nodes (`leadingComments` and `trailingComments`)
|
|
41
|
-
* `all_comments` (boolean, default `true`) - include a list of all comments from the whole program
|
|
27
|
+
* `flow` (`'detect'` or `'all'`, default `'detect'`) - parse Flow syntax only with an `@flow` pragma, or always parse Flow syntax
|
|
28
|
+
* `sourceType` (`'module'`, `'script'`, or `'unambiguous'`) - parse the file as a module, script, or infer it from the contents
|
|
42
29
|
* `tokens` (boolean, default `false`) - include a list of all parsed tokens in a top-level `tokens` property
|
|
30
|
+
* `babel` (boolean, default `false`) - return a Babel-shaped AST
|
|
43
31
|
|
|
44
32
|
### Language features
|
|
45
|
-
* `
|
|
46
|
-
* `
|
|
47
|
-
* `
|
|
48
|
-
* `
|
|
49
|
-
* `
|
|
33
|
+
* `enableEnums` (boolean, default `true`) - enable parsing of [enums](https://flow.org/en/docs/enums/)
|
|
34
|
+
* `enableExperimentalFlowMatchSyntax` (boolean, default `true`) - enable parsing of [match expressions and match statements](https://flow.org/en/docs/match/)
|
|
35
|
+
* `enableExperimentalComponentSyntax` (boolean, default `true`) - enable parsing of [component syntax](https://flow.org/en/docs/react/component-syntax/)
|
|
36
|
+
* `assertOperator` (boolean, default `false`) - enable parsing of the assert operator
|
|
37
|
+
* `enableExperimentalDecorators` (boolean, default `true`) - enable parsing of decorators
|
|
@@ -816,14 +816,16 @@ module.exports = [function () {
|
|
|
816
816
|
return {
|
|
817
817
|
type: 'DeclareVariable',
|
|
818
818
|
loc: this.addEmptyLoc(),
|
|
819
|
-
|
|
820
|
-
kind: this.deserializeString()
|
|
819
|
+
declarations: this.deserializeNodeList(),
|
|
820
|
+
kind: this.deserializeString(),
|
|
821
|
+
implicitDeclare: this.deserializeBoolean()
|
|
821
822
|
};
|
|
822
823
|
}, function () {
|
|
823
824
|
return {
|
|
824
825
|
type: 'DeclareFunction',
|
|
825
826
|
loc: this.addEmptyLoc(),
|
|
826
827
|
id: this.deserializeNode(),
|
|
828
|
+
implicitDeclare: this.deserializeBoolean(),
|
|
827
829
|
predicate: this.deserializeNode()
|
|
828
830
|
};
|
|
829
831
|
}, function () {
|
|
@@ -835,7 +837,8 @@ module.exports = [function () {
|
|
|
835
837
|
extends: this.deserializeNodeList(),
|
|
836
838
|
implements: this.deserializeNodeList(),
|
|
837
839
|
mixins: this.deserializeNodeList(),
|
|
838
|
-
body: this.deserializeNode()
|
|
840
|
+
body: this.deserializeNode(),
|
|
841
|
+
implicitDeclare: this.deserializeBoolean()
|
|
839
842
|
};
|
|
840
843
|
}, function () {
|
|
841
844
|
return {
|
|
@@ -845,13 +848,15 @@ module.exports = [function () {
|
|
|
845
848
|
params: this.deserializeNodeList(),
|
|
846
849
|
rest: this.deserializeNode(),
|
|
847
850
|
rendersType: this.deserializeNode(),
|
|
848
|
-
typeParameters: this.deserializeNode()
|
|
851
|
+
typeParameters: this.deserializeNode(),
|
|
852
|
+
implicitDeclare: this.deserializeBoolean()
|
|
849
853
|
};
|
|
850
854
|
}, function () {
|
|
851
855
|
return {
|
|
852
856
|
type: 'DeclareHook',
|
|
853
857
|
loc: this.addEmptyLoc(),
|
|
854
|
-
id: this.deserializeNode()
|
|
858
|
+
id: this.deserializeNode(),
|
|
859
|
+
implicitDeclare: this.deserializeBoolean()
|
|
855
860
|
};
|
|
856
861
|
}, function () {
|
|
857
862
|
return {
|
|
@@ -873,20 +878,25 @@ module.exports = [function () {
|
|
|
873
878
|
default: this.deserializeBoolean(),
|
|
874
879
|
declaration: this.deserializeNode(),
|
|
875
880
|
specifiers: this.deserializeNodeList(),
|
|
876
|
-
source: this.deserializeNode()
|
|
881
|
+
source: this.deserializeNode(),
|
|
882
|
+
implicitDeclare: this.deserializeBoolean()
|
|
877
883
|
};
|
|
878
884
|
}, function () {
|
|
879
885
|
return {
|
|
880
886
|
type: 'DeclareExportAllDeclaration',
|
|
881
887
|
loc: this.addEmptyLoc(),
|
|
882
|
-
source: this.deserializeNode()
|
|
888
|
+
source: this.deserializeNode(),
|
|
889
|
+
implicitDeclare: this.deserializeBoolean()
|
|
883
890
|
};
|
|
884
891
|
}, function () {
|
|
885
892
|
return {
|
|
886
893
|
type: 'DeclareNamespace',
|
|
887
894
|
loc: this.addEmptyLoc(),
|
|
895
|
+
global: this.deserializeBoolean(),
|
|
888
896
|
id: this.deserializeNode(),
|
|
889
|
-
body: this.deserializeNode()
|
|
897
|
+
body: this.deserializeNode(),
|
|
898
|
+
implicitDeclare: this.deserializeBoolean(),
|
|
899
|
+
keyword: this.deserializeString()
|
|
890
900
|
};
|
|
891
901
|
}, function () {
|
|
892
902
|
return {
|
|
@@ -895,7 +905,8 @@ module.exports = [function () {
|
|
|
895
905
|
id: this.deserializeNode(),
|
|
896
906
|
typeParameters: this.deserializeNode(),
|
|
897
907
|
body: this.deserializeNode(),
|
|
898
|
-
extends: this.deserializeNodeList()
|
|
908
|
+
extends: this.deserializeNodeList(),
|
|
909
|
+
implicitDeclare: this.deserializeBoolean()
|
|
899
910
|
};
|
|
900
911
|
}, function () {
|
|
901
912
|
return {
|
|
@@ -903,14 +914,16 @@ module.exports = [function () {
|
|
|
903
914
|
loc: this.addEmptyLoc(),
|
|
904
915
|
id: this.deserializeNode(),
|
|
905
916
|
typeParameters: this.deserializeNode(),
|
|
906
|
-
right: this.deserializeNode()
|
|
917
|
+
right: this.deserializeNode(),
|
|
918
|
+
implicitDeclare: this.deserializeBoolean()
|
|
907
919
|
};
|
|
908
920
|
}, function () {
|
|
909
921
|
return {
|
|
910
922
|
type: 'DeclareEnum',
|
|
911
923
|
loc: this.addEmptyLoc(),
|
|
912
924
|
id: this.deserializeNode(),
|
|
913
|
-
body: this.deserializeNode()
|
|
925
|
+
body: this.deserializeNode(),
|
|
926
|
+
implicitDeclare: this.deserializeBoolean()
|
|
914
927
|
};
|
|
915
928
|
}, function () {
|
|
916
929
|
return {
|
|
@@ -1698,7 +1711,8 @@ module.exports = [function () {
|
|
|
1698
1711
|
impltype: this.deserializeNode(),
|
|
1699
1712
|
lowerBound: this.deserializeNode(),
|
|
1700
1713
|
upperBound: this.deserializeNode(),
|
|
1701
|
-
supertype: this.deserializeNode()
|
|
1714
|
+
supertype: this.deserializeNode(),
|
|
1715
|
+
implicitDeclare: this.deserializeBoolean()
|
|
1702
1716
|
};
|
|
1703
1717
|
}, function () {
|
|
1704
1718
|
return {
|