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.
Files changed (105) hide show
  1. package/README.md +14 -26
  2. package/{oxidized → dist}/FlowParserNodeDeserializers.js +26 -12
  3. package/dist/FlowParserWASM.js +1 -0
  4. package/{oxidized → dist}/babel/TransformESTreeToBabel.js +11 -3
  5. package/{oxidized → dist}/babel/TransformESTreeToBabel.js.flow +12 -4
  6. package/{oxidized/oxidized-src → dist}/estree/StripFlowTypesForBabel.js +33 -18
  7. package/{oxidized → dist}/estree/StripFlowTypesForBabel.js.flow +40 -18
  8. package/{oxidized/oxidized-src → dist}/estree/TransformComponentSyntax.js +25 -12
  9. package/{oxidized → dist}/estree/TransformComponentSyntax.js.flow +29 -11
  10. package/{oxidized → dist}/generated/ESTreeVisitorKeys.js +1 -1
  11. package/package.json +6 -7
  12. package/flow_parser.js +0 -14575
  13. package/oxidized/FlowParserWASM.js +0 -1
  14. package/oxidized/estree/StripFlowTypesForBabel.js +0 -176
  15. package/oxidized/estree/TransformComponentSyntax.js +0 -751
  16. package/oxidized/oxidized-src/FlowParser.js +0 -249
  17. package/oxidized/oxidized-src/FlowParserDeserializer.js +0 -209
  18. package/oxidized/oxidized-src/FlowParserNodeDeserializers.js +0 -1767
  19. package/oxidized/oxidized-src/HermesParserDecodeUTF8String.js +0 -45
  20. package/oxidized/oxidized-src/ParserOptions.js +0 -8
  21. package/oxidized/oxidized-src/babel/TransformESTreeToBabel.js +0 -1055
  22. package/oxidized/oxidized-src/estree/StripFlowTypes.js +0 -158
  23. package/oxidized/oxidized-src/estree/TransformEnumSyntax.js +0 -92
  24. package/oxidized/oxidized-src/estree/TransformMatchSyntax.js +0 -990
  25. package/oxidized/oxidized-src/estree/TransformRecordSyntax.js +0 -283
  26. package/oxidized/oxidized-src/generated/ESTreeVisitorKeys.js +0 -234
  27. package/oxidized/oxidized-src/getModuleDocblock.js +0 -87
  28. package/oxidized/oxidized-src/index.js +0 -220
  29. package/oxidized/transform/SimpleTransform.js +0 -95
  30. package/oxidized/transform/astArrayMutationHelpers.js +0 -52
  31. package/oxidized/transform/astNodeMutationHelpers.js +0 -142
  32. package/oxidized/transform/print/comments/comments.js +0 -245
  33. package/oxidized/transform/print/comments/prettier/common/util.js +0 -235
  34. package/oxidized/transform/print/comments/prettier/language-js/comments.js +0 -663
  35. package/oxidized/transform/print/comments/prettier/language-js/loc.js +0 -30
  36. package/oxidized/transform/print/comments/prettier/language-js/printer-estree.js +0 -23
  37. package/oxidized/transform/print/comments/prettier/language-js/utils.js +0 -89
  38. package/oxidized/transform/print/comments/prettier/main/comments.js +0 -374
  39. package/oxidized/transform/print/comments/prettier/utils/get-last.js +0 -5
  40. package/oxidized/transform/print/detachedNodeTypes.js +0 -1
  41. package/oxidized/transform/print/print.js +0 -68
  42. package/oxidized/traverse/SimpleTraverser.js +0 -90
  43. package/oxidized/traverse/getVisitorKeys.js +0 -29
  44. package/oxidized/utils/Builders.js +0 -181
  45. package/oxidized/utils/GenID.js +0 -37
  46. package/oxidized/utils/createSyntaxError.js +0 -15
  47. package/oxidized/utils/isReservedWord.js +0 -53
  48. package/oxidized/utils/mutateESTreeASTForPrettier.js +0 -85
  49. /package/{oxidized → dist}/FlowParser.js +0 -0
  50. /package/{oxidized → dist}/FlowParser.js.flow +0 -0
  51. /package/{oxidized → dist}/FlowParserDeserializer.js +0 -0
  52. /package/{oxidized → dist}/FlowParserDeserializer.js.flow +0 -0
  53. /package/{oxidized → dist}/FlowParserNodeDeserializers.js.flow +0 -0
  54. /package/{oxidized → dist}/FlowParserWASM.js.flow +0 -0
  55. /package/{oxidized → dist}/HermesAST.js.flow +0 -0
  56. /package/{oxidized → dist}/HermesParserDecodeUTF8String.js +0 -0
  57. /package/{oxidized → dist}/HermesParserDecodeUTF8String.js.flow +0 -0
  58. /package/{oxidized → dist}/ParserOptions.js +0 -0
  59. /package/{oxidized → dist}/ParserOptions.js.flow +0 -0
  60. /package/{oxidized → dist}/estree/StripFlowTypes.js +0 -0
  61. /package/{oxidized → dist}/estree/StripFlowTypes.js.flow +0 -0
  62. /package/{oxidized → dist}/estree/TransformEnumSyntax.js +0 -0
  63. /package/{oxidized → dist}/estree/TransformEnumSyntax.js.flow +0 -0
  64. /package/{oxidized → dist}/estree/TransformMatchSyntax.js +0 -0
  65. /package/{oxidized → dist}/estree/TransformMatchSyntax.js.flow +0 -0
  66. /package/{oxidized → dist}/estree/TransformRecordSyntax.js +0 -0
  67. /package/{oxidized → dist}/estree/TransformRecordSyntax.js.flow +0 -0
  68. /package/{oxidized → dist}/generated/ESTreeVisitorKeys.js.flow +0 -0
  69. /package/{oxidized → dist}/getModuleDocblock.js +0 -0
  70. /package/{oxidized → dist}/getModuleDocblock.js.flow +0 -0
  71. /package/{oxidized → dist}/index.js +0 -0
  72. /package/{oxidized → dist}/index.js.flow +0 -0
  73. /package/{oxidized/oxidized-src → dist}/transform/SimpleTransform.js +0 -0
  74. /package/{oxidized → dist}/transform/SimpleTransform.js.flow +0 -0
  75. /package/{oxidized/oxidized-src → dist}/transform/astArrayMutationHelpers.js +0 -0
  76. /package/{oxidized → dist}/transform/astArrayMutationHelpers.js.flow +0 -0
  77. /package/{oxidized/oxidized-src → dist}/transform/astNodeMutationHelpers.js +0 -0
  78. /package/{oxidized → dist}/transform/astNodeMutationHelpers.js.flow +0 -0
  79. /package/{oxidized/oxidized-src → dist}/transform/print/comments/comments.js +0 -0
  80. /package/{oxidized → dist}/transform/print/comments/comments.js.flow +0 -0
  81. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/common/util.js +0 -0
  82. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/comments.js +0 -0
  83. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/loc.js +0 -0
  84. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/printer-estree.js +0 -0
  85. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/language-js/utils.js +0 -0
  86. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/main/comments.js +0 -0
  87. /package/{oxidized/oxidized-src → dist}/transform/print/comments/prettier/utils/get-last.js +0 -0
  88. /package/{oxidized/oxidized-src → dist}/transform/print/detachedNodeTypes.js +0 -0
  89. /package/{oxidized → dist}/transform/print/detachedNodeTypes.js.flow +0 -0
  90. /package/{oxidized/oxidized-src → dist}/transform/print/print.js +0 -0
  91. /package/{oxidized → dist}/transform/print/print.js.flow +0 -0
  92. /package/{oxidized/oxidized-src → dist}/traverse/SimpleTraverser.js +0 -0
  93. /package/{oxidized → dist}/traverse/SimpleTraverser.js.flow +0 -0
  94. /package/{oxidized/oxidized-src → dist}/traverse/getVisitorKeys.js +0 -0
  95. /package/{oxidized → dist}/traverse/getVisitorKeys.js.flow +0 -0
  96. /package/{oxidized/oxidized-src → dist}/utils/Builders.js +0 -0
  97. /package/{oxidized → dist}/utils/Builders.js.flow +0 -0
  98. /package/{oxidized/oxidized-src → dist}/utils/GenID.js +0 -0
  99. /package/{oxidized → dist}/utils/GenID.js.flow +0 -0
  100. /package/{oxidized/oxidized-src → dist}/utils/createSyntaxError.js +0 -0
  101. /package/{oxidized → dist}/utils/createSyntaxError.js.flow +0 -0
  102. /package/{oxidized/oxidized-src → dist}/utils/isReservedWord.js +0 -0
  103. /package/{oxidized → dist}/utils/isReservedWord.js.flow +0 -0
  104. /package/{oxidized/oxidized-src → dist}/utils/mutateESTreeASTForPrettier.js +0 -0
  105. /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 compiled-to-JavaScript form.
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 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.
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 your browser or in node. To use in node you can just do
15
+ You can use the Flow parser in node:
16
16
 
17
17
  ```JavaScript
18
- require('flow-parser').parse('1+1', {});
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 `flow.parse` is the options object. Currently supported options:
24
+ The second argument to `parse` is the options object. Common options:
36
25
 
37
26
  ### Basic options
38
- * `types` (boolean, default `true`) - enable parsing of Flow types
39
- * `use_strict` (boolean, default `false`) - treat the file as strict, without needing a "use strict" directive
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
- * `enums` (boolean, default `false`) - enable parsing of [enums](https://flow.org/en/docs/enums/)
46
- * `match` (boolean, default `false`) - enable parsing of [match expressions and match statements](https://flow.org/en/docs/match/)
47
- * `components` (boolean, default `false`) - enable parsing of [component syntax](https://flow.org/en/docs/react/component-syntax/)
48
- * `assert_operator` (boolean, default `false`) - enable parsing of the assert operator
49
- * `esproposal_decorators` (boolean, default `false`) - enable parsing of decorators
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
- id: this.deserializeNode(),
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 {