Spaces:
Running
Running
; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
const path = require("path"); | |
const deep_1 = require("./filters/deep"); | |
const entry_1 = require("./filters/entry"); | |
const error_1 = require("./filters/error"); | |
const entry_2 = require("./transformers/entry"); | |
class Provider { | |
constructor(_settings) { | |
this._settings = _settings; | |
this.errorFilter = new error_1.default(this._settings); | |
this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); | |
this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); | |
this.entryTransformer = new entry_2.default(this._settings); | |
} | |
_getRootDirectory(task) { | |
return path.resolve(this._settings.cwd, task.base); | |
} | |
_getReaderOptions(task) { | |
const basePath = task.base === '.' ? '' : task.base; | |
return { | |
basePath, | |
pathSegmentSeparator: '/', | |
concurrency: this._settings.concurrency, | |
deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), | |
entryFilter: this.entryFilter.getFilter(task.positive, task.negative), | |
errorFilter: this.errorFilter.getFilter(), | |
followSymbolicLinks: this._settings.followSymbolicLinks, | |
fs: this._settings.fs, | |
stats: this._settings.stats, | |
throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, | |
transform: this.entryTransformer.getTransformer() | |
}; | |
} | |
_getMicromatchOptions() { | |
return { | |
dot: this._settings.dot, | |
matchBase: this._settings.baseNameMatch, | |
nobrace: !this._settings.braceExpansion, | |
nocase: !this._settings.caseSensitiveMatch, | |
noext: !this._settings.extglob, | |
noglobstar: !this._settings.globstar, | |
posix: true, | |
strictSlashes: false | |
}; | |
} | |
} | |
exports.default = Provider; | |