123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- "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.markDirectories && entry.isDirectory()) {
- entry.path += '/';
- }
- if (this.options.absolute && !path.isAbsolute(entry.path)) {
- entry.path = pathUtil.resolve(this.options.cwd, entry.path);
- entry.path = pathUtil.normalize(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;
|