250 lines
5.6 KiB
JavaScript
250 lines
5.6 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
Object.defineProperty(exports, '__esModule', {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
|
||
|
function _micromatch() {
|
||
|
const data = _interopRequireDefault(require('micromatch'));
|
||
|
|
||
|
_micromatch = function _micromatch() {
|
||
|
return data;
|
||
|
};
|
||
|
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
function _jestUtil() {
|
||
|
const data = require('jest-util');
|
||
|
|
||
|
_jestUtil = function _jestUtil() {
|
||
|
return data;
|
||
|
};
|
||
|
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
var fastPath = _interopRequireWildcard(require('./lib/fast_path'));
|
||
|
|
||
|
var _constants = _interopRequireDefault(require('./constants'));
|
||
|
|
||
|
function _interopRequireWildcard(obj) {
|
||
|
if (obj && obj.__esModule) {
|
||
|
return obj;
|
||
|
} else {
|
||
|
var newObj = {};
|
||
|
if (obj != null) {
|
||
|
for (var key in obj) {
|
||
|
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
||
|
var desc =
|
||
|
Object.defineProperty && Object.getOwnPropertyDescriptor
|
||
|
? Object.getOwnPropertyDescriptor(obj, key)
|
||
|
: {};
|
||
|
if (desc.get || desc.set) {
|
||
|
Object.defineProperty(newObj, key, desc);
|
||
|
} else {
|
||
|
newObj[key] = obj[key];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
newObj.default = obj;
|
||
|
return newObj;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule ? obj : {default: obj};
|
||
|
}
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
class HasteFS {
|
||
|
constructor({rootDir, files}) {
|
||
|
_defineProperty(this, '_rootDir', void 0);
|
||
|
|
||
|
_defineProperty(this, '_files', void 0);
|
||
|
|
||
|
this._rootDir = rootDir;
|
||
|
this._files = files;
|
||
|
}
|
||
|
|
||
|
getModuleName(file) {
|
||
|
const fileMetadata = this._getFileData(file);
|
||
|
|
||
|
return (fileMetadata && fileMetadata[_constants.default.ID]) || null;
|
||
|
}
|
||
|
|
||
|
getSize(file) {
|
||
|
const fileMetadata = this._getFileData(file);
|
||
|
|
||
|
return (fileMetadata && fileMetadata[_constants.default.SIZE]) || null;
|
||
|
}
|
||
|
|
||
|
getDependencies(file) {
|
||
|
const fileMetadata = this._getFileData(file);
|
||
|
|
||
|
if (fileMetadata) {
|
||
|
return fileMetadata[_constants.default.DEPENDENCIES]
|
||
|
? fileMetadata[_constants.default.DEPENDENCIES].split(
|
||
|
_constants.default.DEPENDENCY_DELIM
|
||
|
)
|
||
|
: [];
|
||
|
} else {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
getSha1(file) {
|
||
|
const fileMetadata = this._getFileData(file);
|
||
|
|
||
|
return (fileMetadata && fileMetadata[_constants.default.SHA1]) || null;
|
||
|
}
|
||
|
|
||
|
exists(file) {
|
||
|
return this._getFileData(file) != null;
|
||
|
}
|
||
|
|
||
|
getAllFiles() {
|
||
|
return Array.from(this.getAbsoluteFileIterator());
|
||
|
}
|
||
|
|
||
|
getFileIterator() {
|
||
|
return this._files.keys();
|
||
|
}
|
||
|
|
||
|
*getAbsoluteFileIterator() {
|
||
|
var _iteratorNormalCompletion = true;
|
||
|
var _didIteratorError = false;
|
||
|
var _iteratorError = undefined;
|
||
|
|
||
|
try {
|
||
|
for (
|
||
|
var _iterator = this.getFileIterator()[Symbol.iterator](), _step;
|
||
|
!(_iteratorNormalCompletion = (_step = _iterator.next()).done);
|
||
|
_iteratorNormalCompletion = true
|
||
|
) {
|
||
|
const file = _step.value;
|
||
|
yield fastPath.resolve(this._rootDir, file);
|
||
|
}
|
||
|
} catch (err) {
|
||
|
_didIteratorError = true;
|
||
|
_iteratorError = err;
|
||
|
} finally {
|
||
|
try {
|
||
|
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
||
|
_iterator.return();
|
||
|
}
|
||
|
} finally {
|
||
|
if (_didIteratorError) {
|
||
|
throw _iteratorError;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
matchFiles(pattern) {
|
||
|
if (!(pattern instanceof RegExp)) {
|
||
|
pattern = new RegExp(pattern);
|
||
|
}
|
||
|
|
||
|
const files = [];
|
||
|
var _iteratorNormalCompletion2 = true;
|
||
|
var _didIteratorError2 = false;
|
||
|
var _iteratorError2 = undefined;
|
||
|
|
||
|
try {
|
||
|
for (
|
||
|
var _iterator2 = this.getAbsoluteFileIterator()[Symbol.iterator](),
|
||
|
_step2;
|
||
|
!(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done);
|
||
|
_iteratorNormalCompletion2 = true
|
||
|
) {
|
||
|
const file = _step2.value;
|
||
|
|
||
|
if (pattern.test(file)) {
|
||
|
files.push(file);
|
||
|
}
|
||
|
}
|
||
|
} catch (err) {
|
||
|
_didIteratorError2 = true;
|
||
|
_iteratorError2 = err;
|
||
|
} finally {
|
||
|
try {
|
||
|
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
||
|
_iterator2.return();
|
||
|
}
|
||
|
} finally {
|
||
|
if (_didIteratorError2) {
|
||
|
throw _iteratorError2;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return files;
|
||
|
}
|
||
|
|
||
|
matchFilesWithGlob(globs, root) {
|
||
|
const files = new Set();
|
||
|
var _iteratorNormalCompletion3 = true;
|
||
|
var _didIteratorError3 = false;
|
||
|
var _iteratorError3 = undefined;
|
||
|
|
||
|
try {
|
||
|
for (
|
||
|
var _iterator3 = this.getAbsoluteFileIterator()[Symbol.iterator](),
|
||
|
_step3;
|
||
|
!(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done);
|
||
|
_iteratorNormalCompletion3 = true
|
||
|
) {
|
||
|
const file = _step3.value;
|
||
|
const filePath = root ? fastPath.relative(root, file) : file;
|
||
|
|
||
|
if (
|
||
|
_micromatch().default.some(
|
||
|
(0, _jestUtil().replacePathSepForGlob)(filePath),
|
||
|
globs
|
||
|
)
|
||
|
) {
|
||
|
files.add(file);
|
||
|
}
|
||
|
}
|
||
|
} catch (err) {
|
||
|
_didIteratorError3 = true;
|
||
|
_iteratorError3 = err;
|
||
|
} finally {
|
||
|
try {
|
||
|
if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
|
||
|
_iterator3.return();
|
||
|
}
|
||
|
} finally {
|
||
|
if (_didIteratorError3) {
|
||
|
throw _iteratorError3;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return files;
|
||
|
}
|
||
|
|
||
|
_getFileData(file) {
|
||
|
const relativePath = fastPath.relative(this._rootDir, file);
|
||
|
return this._files.get(relativePath);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
exports.default = HasteFS;
|