You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
2.0 KiB
48 lines
2.0 KiB
"use strict"; |
|
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;
|
|
|