hermes-transform 0.5.0 → 0.8.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 (76) hide show
  1. package/LICENSE +1 -1
  2. package/dist/detachedNode.js +25 -49
  3. package/dist/detachedNode.js.flow +3 -3
  4. package/dist/generated/TransformCloneSignatures.js.flow +1728 -9
  5. package/dist/generated/TransformReplaceSignatures.js.flow +921 -780
  6. package/dist/generated/node-types.js +1099 -1156
  7. package/dist/generated/node-types.js.flow +77 -125
  8. package/dist/generated/special-case-node-types.js +106 -85
  9. package/dist/generated/special-case-node-types.js.flow +28 -2
  10. package/dist/getVisitorKeys.js +4 -6
  11. package/dist/getVisitorKeys.js.flow +1 -1
  12. package/dist/index.js +13 -18
  13. package/dist/index.js.flow +8 -2
  14. package/dist/transform/Errors.js +8 -116
  15. package/dist/transform/Errors.js.flow +1 -1
  16. package/dist/transform/MutationContext.js +54 -67
  17. package/dist/transform/MutationContext.js.flow +4 -3
  18. package/dist/transform/TransformContext.js +100 -58
  19. package/dist/transform/TransformContext.js.flow +277 -141
  20. package/dist/transform/comments/comments.js +127 -40
  21. package/dist/transform/comments/comments.js.flow +106 -29
  22. package/dist/transform/comments/prettier/common/util.js +46 -47
  23. package/dist/transform/comments/prettier/common/util.js.flow +1 -1
  24. package/dist/transform/comments/prettier/language-js/comments.js +199 -216
  25. package/dist/transform/comments/prettier/language-js/comments.js.flow +1 -1
  26. package/dist/transform/comments/prettier/language-js/loc.js +10 -9
  27. package/dist/transform/comments/prettier/language-js/loc.js.flow +1 -1
  28. package/dist/transform/comments/prettier/language-js/printer-estree.js +7 -6
  29. package/dist/transform/comments/prettier/language-js/printer-estree.js.flow +1 -1
  30. package/dist/transform/comments/prettier/language-js/utils.js +18 -30
  31. package/dist/transform/comments/prettier/language-js/utils.js.flow +1 -1
  32. package/dist/transform/comments/prettier/main/comments.js +225 -298
  33. package/dist/transform/comments/prettier/main/comments.js.flow +1 -1
  34. package/dist/transform/comments/prettier/utils/get-last.js +2 -4
  35. package/dist/transform/comments/prettier/utils/get-last.js.flow +1 -1
  36. package/dist/transform/getTransformedAST.js +81 -104
  37. package/dist/transform/getTransformedAST.js.flow +18 -13
  38. package/dist/transform/mutations/AddComments.js +43 -0
  39. package/dist/transform/mutations/AddComments.js.flow +50 -0
  40. package/dist/transform/mutations/CloneCommentsTo.js +16 -24
  41. package/dist/transform/mutations/CloneCommentsTo.js.flow +2 -3
  42. package/dist/transform/mutations/InsertStatement.js +28 -30
  43. package/dist/transform/mutations/InsertStatement.js.flow +7 -2
  44. package/dist/transform/mutations/RemoveComment.js +25 -43
  45. package/dist/transform/mutations/RemoveComment.js.flow +1 -1
  46. package/dist/transform/mutations/RemoveNode.js +192 -0
  47. package/dist/transform/mutations/RemoveNode.js.flow +290 -0
  48. package/dist/transform/mutations/RemoveStatement.js +7 -9
  49. package/dist/transform/mutations/RemoveStatement.js.flow +1 -1
  50. package/dist/transform/mutations/ReplaceNode.js +36 -44
  51. package/dist/transform/mutations/ReplaceNode.js.flow +1 -1
  52. package/dist/transform/mutations/ReplaceStatementWithMany.js +11 -13
  53. package/dist/transform/mutations/ReplaceStatementWithMany.js.flow +1 -1
  54. package/dist/transform/mutations/utils/arrayUtils.js +16 -14
  55. package/dist/transform/mutations/utils/arrayUtils.js.flow +16 -1
  56. package/dist/transform/mutations/utils/getStatementParent.js +23 -28
  57. package/dist/transform/mutations/utils/getStatementParent.js.flow +2 -2
  58. package/dist/transform/mutations/utils/isValidModuleDeclarationParent.js +7 -24
  59. package/dist/transform/mutations/utils/isValidModuleDeclarationParent.js.flow +1 -1
  60. package/dist/transform/transform.js +58 -30
  61. package/dist/transform/transform.js.flow +51 -13
  62. package/dist/traverse/NodeEventGenerator.js +91 -165
  63. package/dist/traverse/NodeEventGenerator.js.flow +1 -1
  64. package/dist/traverse/SafeEmitter.js +20 -38
  65. package/dist/traverse/SafeEmitter.js.flow +1 -1
  66. package/dist/traverse/SimpleTraverser.js +67 -98
  67. package/dist/traverse/SimpleTraverser.js.flow +4 -1
  68. package/dist/traverse/esquery.js +6 -6
  69. package/dist/traverse/esquery.js.flow +1 -1
  70. package/dist/traverse/traverse.js +64 -52
  71. package/dist/traverse/traverse.js.flow +63 -10
  72. package/package.json +5 -3
  73. package/dist/transform/mutations/AddLeadingComments.js +0 -47
  74. package/dist/transform/mutations/AddLeadingComments.js.flow +0 -49
  75. package/dist/transform/mutations/AddTrailingComments.js +0 -47
  76. package/dist/transform/mutations/AddTrailingComments.js.flow +0 -49
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) Facebook, Inc. and its affiliates.
3
+ Copyright (c) Meta Platforms, Inc. and affiliates.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -13,22 +13,19 @@ var _getVisitorKeys = require("./getVisitorKeys");
13
13
 
14
14
  var _SimpleTraverser = require("./traverse/SimpleTraverser");
15
15
 
16
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
17
-
18
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
-
20
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
-
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
23
-
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
-
26
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
-
16
+ /**
17
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
18
+ *
19
+ * This source code is licensed under the MIT license found in the
20
+ * LICENSE file in the root directory of this source tree.
21
+ *
22
+ *
23
+ * @format
24
+ */
28
25
  // used by the node type function codegen
29
26
  function detachedProps(parent, props) {
30
27
  // $FlowExpectedError[incompatible-return]
31
- return _objectSpread(_objectSpread({}, props), {}, {
28
+ return { ...props,
32
29
  // if not provided, then we purposely don't set this here
33
30
  // and will rely on the tooling to update it as appropriate.
34
31
  // nothing should be reading from this before it's set anyway.
@@ -44,15 +41,14 @@ function detachedProps(parent, props) {
44
41
  column: 0
45
42
  }
46
43
  }
47
- });
44
+ };
48
45
  }
49
46
  /**
50
47
  * Shallowly clones the node, but not its children.
51
48
  */
52
49
 
53
50
 
54
- function shallowCloneNode(node) {
55
- var newProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
51
+ function shallowCloneNode(node, newProps = {}) {
56
52
  return detachedProps(null, Object.assign({}, node, newProps));
57
53
  }
58
54
  /**
@@ -60,9 +56,8 @@ function shallowCloneNode(node) {
60
56
  */
61
57
 
62
58
 
63
- function deepCloneNode(node) {
64
- var newProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
65
- var clone = Object.assign(JSON.parse(JSON.stringify(node, function (key, value) {
59
+ function deepCloneNode(node, newProps = {}) {
60
+ const clone = Object.assign(JSON.parse(JSON.stringify(node, (key, value) => {
66
61
  // null out parent pointers
67
62
  if (key === 'parent') {
68
63
  return undefined;
@@ -80,36 +75,15 @@ function deepCloneNode(node) {
80
75
 
81
76
 
82
77
  function setParentPointersInDirectChildren(node) {
83
- var _iterator = _createForOfIteratorHelper((0, _getVisitorKeys.getVisitorKeys)(node)),
84
- _step;
85
-
86
- try {
87
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
88
- var key = _step.value;
89
-
90
- if ((0, _getVisitorKeys.isNode)( // $FlowExpectedError[prop-missing]
91
- node[key])) {
92
- node[key].parent = node;
93
- } else if (Array.isArray(node[key])) {
94
- var _iterator2 = _createForOfIteratorHelper(node[key]),
95
- _step2;
96
-
97
- try {
98
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
99
- var child = _step2.value;
100
- child.parent = node;
101
- }
102
- } catch (err) {
103
- _iterator2.e(err);
104
- } finally {
105
- _iterator2.f();
106
- }
78
+ for (const key of (0, _getVisitorKeys.getVisitorKeys)(node)) {
79
+ if ((0, _getVisitorKeys.isNode)( // $FlowExpectedError[prop-missing]
80
+ node[key])) {
81
+ node[key].parent = node;
82
+ } else if (Array.isArray(node[key])) {
83
+ for (const child of node[key]) {
84
+ child.parent = node;
107
85
  }
108
86
  }
109
- } catch (err) {
110
- _iterator.e(err);
111
- } finally {
112
- _iterator.f();
113
87
  }
114
88
  }
115
89
  /**
@@ -119,10 +93,12 @@ function setParentPointersInDirectChildren(node) {
119
93
 
120
94
  function updateAllParentPointers(node) {
121
95
  _SimpleTraverser.SimpleTraverser.traverse(node, {
122
- enter: function enter(node, parent) {
96
+ enter(node, parent) {
123
97
  // $FlowExpectedError[cannot-write]
124
98
  node.parent = parent;
125
99
  },
126
- leave: function leave() {}
100
+
101
+ leave() {}
102
+
127
103
  });
128
104
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -46,7 +46,7 @@ export function detachedProps<T: BaseNode>(
46
46
  */
47
47
  export function shallowCloneNode<T: ESNode>(
48
48
  node: T,
49
- newProps: $Shape<{...}> = {},
49
+ newProps: $Partial<{...}> = {},
50
50
  ): DetachedNode<T> {
51
51
  return detachedProps(null, (Object.assign({}, node, newProps): $FlowFixMe));
52
52
  }
@@ -56,7 +56,7 @@ export function shallowCloneNode<T: ESNode>(
56
56
  */
57
57
  export function deepCloneNode<T: ESNode>(
58
58
  node: T,
59
- newProps: $Shape<{...}> = {},
59
+ newProps: $Partial<{...}> = {},
60
60
  ): DetachedNode<T> {
61
61
  const clone: DetachedNode<T> = Object.assign(
62
62
  JSON.parse(