HasteFS.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. function _micromatch() {
  7. const data = _interopRequireDefault(require('micromatch'));
  8. _micromatch = function _micromatch() {
  9. return data;
  10. };
  11. return data;
  12. }
  13. function _jestUtil() {
  14. const data = require('jest-util');
  15. _jestUtil = function _jestUtil() {
  16. return data;
  17. };
  18. return data;
  19. }
  20. var fastPath = _interopRequireWildcard(require('./lib/fast_path'));
  21. var _constants = _interopRequireDefault(require('./constants'));
  22. function _interopRequireWildcard(obj) {
  23. if (obj && obj.__esModule) {
  24. return obj;
  25. } else {
  26. var newObj = {};
  27. if (obj != null) {
  28. for (var key in obj) {
  29. if (Object.prototype.hasOwnProperty.call(obj, key)) {
  30. var desc =
  31. Object.defineProperty && Object.getOwnPropertyDescriptor
  32. ? Object.getOwnPropertyDescriptor(obj, key)
  33. : {};
  34. if (desc.get || desc.set) {
  35. Object.defineProperty(newObj, key, desc);
  36. } else {
  37. newObj[key] = obj[key];
  38. }
  39. }
  40. }
  41. }
  42. newObj.default = obj;
  43. return newObj;
  44. }
  45. }
  46. function _interopRequireDefault(obj) {
  47. return obj && obj.__esModule ? obj : {default: obj};
  48. }
  49. function _defineProperty(obj, key, value) {
  50. if (key in obj) {
  51. Object.defineProperty(obj, key, {
  52. value: value,
  53. enumerable: true,
  54. configurable: true,
  55. writable: true
  56. });
  57. } else {
  58. obj[key] = value;
  59. }
  60. return obj;
  61. }
  62. class HasteFS {
  63. constructor({rootDir, files}) {
  64. _defineProperty(this, '_rootDir', void 0);
  65. _defineProperty(this, '_files', void 0);
  66. this._rootDir = rootDir;
  67. this._files = files;
  68. }
  69. getModuleName(file) {
  70. const fileMetadata = this._getFileData(file);
  71. return (fileMetadata && fileMetadata[_constants.default.ID]) || null;
  72. }
  73. getSize(file) {
  74. const fileMetadata = this._getFileData(file);
  75. return (fileMetadata && fileMetadata[_constants.default.SIZE]) || null;
  76. }
  77. getDependencies(file) {
  78. const fileMetadata = this._getFileData(file);
  79. if (fileMetadata) {
  80. return fileMetadata[_constants.default.DEPENDENCIES]
  81. ? fileMetadata[_constants.default.DEPENDENCIES].split(
  82. _constants.default.DEPENDENCY_DELIM
  83. )
  84. : [];
  85. } else {
  86. return null;
  87. }
  88. }
  89. getSha1(file) {
  90. const fileMetadata = this._getFileData(file);
  91. return (fileMetadata && fileMetadata[_constants.default.SHA1]) || null;
  92. }
  93. exists(file) {
  94. return this._getFileData(file) != null;
  95. }
  96. getAllFiles() {
  97. return Array.from(this.getAbsoluteFileIterator());
  98. }
  99. getFileIterator() {
  100. return this._files.keys();
  101. }
  102. *getAbsoluteFileIterator() {
  103. var _iteratorNormalCompletion = true;
  104. var _didIteratorError = false;
  105. var _iteratorError = undefined;
  106. try {
  107. for (
  108. var _iterator = this.getFileIterator()[Symbol.iterator](), _step;
  109. !(_iteratorNormalCompletion = (_step = _iterator.next()).done);
  110. _iteratorNormalCompletion = true
  111. ) {
  112. const file = _step.value;
  113. yield fastPath.resolve(this._rootDir, file);
  114. }
  115. } catch (err) {
  116. _didIteratorError = true;
  117. _iteratorError = err;
  118. } finally {
  119. try {
  120. if (!_iteratorNormalCompletion && _iterator.return != null) {
  121. _iterator.return();
  122. }
  123. } finally {
  124. if (_didIteratorError) {
  125. throw _iteratorError;
  126. }
  127. }
  128. }
  129. }
  130. matchFiles(pattern) {
  131. if (!(pattern instanceof RegExp)) {
  132. pattern = new RegExp(pattern);
  133. }
  134. const files = [];
  135. var _iteratorNormalCompletion2 = true;
  136. var _didIteratorError2 = false;
  137. var _iteratorError2 = undefined;
  138. try {
  139. for (
  140. var _iterator2 = this.getAbsoluteFileIterator()[Symbol.iterator](),
  141. _step2;
  142. !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done);
  143. _iteratorNormalCompletion2 = true
  144. ) {
  145. const file = _step2.value;
  146. if (pattern.test(file)) {
  147. files.push(file);
  148. }
  149. }
  150. } catch (err) {
  151. _didIteratorError2 = true;
  152. _iteratorError2 = err;
  153. } finally {
  154. try {
  155. if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
  156. _iterator2.return();
  157. }
  158. } finally {
  159. if (_didIteratorError2) {
  160. throw _iteratorError2;
  161. }
  162. }
  163. }
  164. return files;
  165. }
  166. matchFilesWithGlob(globs, root) {
  167. const files = new Set();
  168. var _iteratorNormalCompletion3 = true;
  169. var _didIteratorError3 = false;
  170. var _iteratorError3 = undefined;
  171. try {
  172. for (
  173. var _iterator3 = this.getAbsoluteFileIterator()[Symbol.iterator](),
  174. _step3;
  175. !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done);
  176. _iteratorNormalCompletion3 = true
  177. ) {
  178. const file = _step3.value;
  179. const filePath = root ? fastPath.relative(root, file) : file;
  180. if (
  181. _micromatch().default.some(
  182. (0, _jestUtil().replacePathSepForGlob)(filePath),
  183. globs
  184. )
  185. ) {
  186. files.add(file);
  187. }
  188. }
  189. } catch (err) {
  190. _didIteratorError3 = true;
  191. _iteratorError3 = err;
  192. } finally {
  193. try {
  194. if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
  195. _iterator3.return();
  196. }
  197. } finally {
  198. if (_didIteratorError3) {
  199. throw _iteratorError3;
  200. }
  201. }
  202. }
  203. return files;
  204. }
  205. _getFileData(file) {
  206. const relativePath = fastPath.relative(this._rootDir, file);
  207. return this._files.get(relativePath);
  208. }
  209. }
  210. exports.default = HasteFS;