"use strict"; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
var path = require("path"); | |
var deep_1 = require("./filters/deep"); | |
var entry_1 = require("./filters/entry"); | |
var pathUtil = require("../utils/path"); | |
var Reader = /** @class */ (function () { | |
function Reader(options) { | |
this.options = options; | |
this.micromatchOptions = this.getMicromatchOptions(); | |
this.entryFilter = new entry_1.default(options, this.micromatchOptions); | |
this.deepFilter = new deep_1.default(options, this.micromatchOptions); | |
} | |
/** | |
* Returns root path to scanner. | |
*/ | |
Reader.prototype.getRootDirectory = function (task) { | |
return path.resolve(this.options.cwd, task.base); | |
}; | |
/** | |
* Returns options for reader. | |
*/ | |
Reader.prototype.getReaderOptions = function (task) { | |
return { | |
basePath: task.base === '.' ? '' : task.base, | |
filter: this.entryFilter.getFilter(task.positive, task.negative), | |
deep: this.deepFilter.getFilter(task.positive, task.negative), | |
sep: '/' | |
}; | |
}; | |
/** | |
* Returns options for micromatch. | |
*/ | |
Reader.prototype.getMicromatchOptions = function () { | |
return { | |
dot: this.options.dot, | |
nobrace: !this.options.brace, | |
noglobstar: !this.options.globstar, | |
noext: !this.options.extension, | |
nocase: !this.options.case, | |
matchBase: this.options.matchBase | |
}; | |
}; | |
/** | |
* Returns transformed entry. | |
*/ | |
Reader.prototype.transform = function (entry) { | |
if (this.options.absolute) { | |
entry.path = pathUtil.makeAbsolute(this.options.cwd, entry.path); | |
} | |
if (this.options.markDirectories && entry.isDirectory()) { | |
entry.path += '/'; | |
} | |
var item = this.options.stats ? entry : entry.path; | |
if (this.options.transform === null) { | |
return item; | |
} | |
return this.options.transform(item); | |
}; | |
/** | |
* Returns true if error has ENOENT code. | |
*/ | |
Reader.prototype.isEnoentCodeError = function (err) { | |
return err.code === 'ENOENT'; | |
}; | |
return Reader; | |
}()); | |
exports.default = Reader; |