49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"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;
 |