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