| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });var patternUtils = require("../utils/pattern");/** * Generate tasks based on parent directory of each pattern. */function generate(patterns, options) {    var unixPatterns = patterns.map(patternUtils.unixifyPattern);    var unixIgnore = options.ignore.map(patternUtils.unixifyPattern);    var positivePatterns = getPositivePatterns(unixPatterns);    var negativePatterns = getNegativePatternsAsPositive(unixPatterns, unixIgnore);    /**     * When the `case` option is disabled, all patterns must be marked as dynamic, because we cannot check filepath     * directly (without read directory).     */    var staticPatterns = !options.case ? [] : positivePatterns.filter(patternUtils.isStaticPattern);    var dynamicPatterns = !options.case ? positivePatterns : positivePatterns.filter(patternUtils.isDynamicPattern);    var staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);    var dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);    return staticTasks.concat(dynamicTasks);}exports.generate = generate;/** * Convert patterns to tasks based on parent directory of each pattern. */function convertPatternsToTasks(positive, negative, dynamic) {    var positivePatternsGroup = groupPatternsByBaseDirectory(positive);    // When we have a global group – there is no reason to divide the patterns into independent tasks.    // In this case, the global task covers the rest.    if ('.' in positivePatternsGroup) {        var task = convertPatternGroupToTask('.', positive, negative, dynamic);        return [task];    }    return convertPatternGroupsToTasks(positivePatternsGroup, negative, dynamic);}exports.convertPatternsToTasks = convertPatternsToTasks;/** * Return only positive patterns. */function getPositivePatterns(patterns) {    return patternUtils.getPositivePatterns(patterns);}exports.getPositivePatterns = getPositivePatterns;/** * Return only negative patterns. */function getNegativePatternsAsPositive(patterns, ignore) {    var negative = patternUtils.getNegativePatterns(patterns).concat(ignore);    var positive = negative.map(patternUtils.convertToPositivePattern);    return positive;}exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;/** * Group patterns by base directory of each pattern. */function groupPatternsByBaseDirectory(patterns) {    return patterns.reduce(function (collection, pattern) {        var base = patternUtils.getBaseDirectory(pattern);        if (base in collection) {            collection[base].push(pattern);        }        else {            collection[base] = [pattern];        }        return collection;    }, {});}exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;/** * Convert group of patterns to tasks. */function convertPatternGroupsToTasks(positive, negative, dynamic) {    return Object.keys(positive).map(function (base) {        return convertPatternGroupToTask(base, positive[base], negative, dynamic);    });}exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;/** * Create a task for positive and negative patterns. */function convertPatternGroupToTask(base, positive, negative, dynamic) {    return {        base: base,        dynamic: dynamic,        positive: positive,        negative: negative,        patterns: [].concat(positive, negative.map(patternUtils.convertToNegativePattern))    };}exports.convertPatternGroupToTask = convertPatternGroupToTask;
 |