.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / fast-glob / out / utils / pattern.js
1 "use strict";\r
2 Object.defineProperty(exports, "__esModule", { value: true });\r
3 var path = require("path");\r
4 var globParent = require("glob-parent");\r
5 var isGlob = require("is-glob");\r
6 var micromatch = require("micromatch");\r
7 var GLOBSTAR = '**';\r
8 /**\r
9  * Return true for static pattern.\r
10  */\r
11 function isStaticPattern(pattern) {\r
12     return !isDynamicPattern(pattern);\r
13 }\r
14 exports.isStaticPattern = isStaticPattern;\r
15 /**\r
16  * Return true for pattern that looks like glob.\r
17  */\r
18 function isDynamicPattern(pattern) {\r
19     return isGlob(pattern, { strict: false });\r
20 }\r
21 exports.isDynamicPattern = isDynamicPattern;\r
22 /**\r
23  * Convert a windows «path» to a unix-style «path».\r
24  */\r
25 function unixifyPattern(pattern) {\r
26     return pattern.replace(/\\/g, '/');\r
27 }\r
28 exports.unixifyPattern = unixifyPattern;\r
29 /**\r
30  * Returns negative pattern as positive pattern.\r
31  */\r
32 function convertToPositivePattern(pattern) {\r
33     return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\r
34 }\r
35 exports.convertToPositivePattern = convertToPositivePattern;\r
36 /**\r
37  * Returns positive pattern as negative pattern.\r
38  */\r
39 function convertToNegativePattern(pattern) {\r
40     return '!' + pattern;\r
41 }\r
42 exports.convertToNegativePattern = convertToNegativePattern;\r
43 /**\r
44  * Return true if provided pattern is negative pattern.\r
45  */\r
46 function isNegativePattern(pattern) {\r
47     return pattern.startsWith('!') && pattern[1] !== '(';\r
48 }\r
49 exports.isNegativePattern = isNegativePattern;\r
50 /**\r
51  * Return true if provided pattern is positive pattern.\r
52  */\r
53 function isPositivePattern(pattern) {\r
54     return !isNegativePattern(pattern);\r
55 }\r
56 exports.isPositivePattern = isPositivePattern;\r
57 /**\r
58  * Extracts negative patterns from array of patterns.\r
59  */\r
60 function getNegativePatterns(patterns) {\r
61     return patterns.filter(isNegativePattern);\r
62 }\r
63 exports.getNegativePatterns = getNegativePatterns;\r
64 /**\r
65  * Extracts positive patterns from array of patterns.\r
66  */\r
67 function getPositivePatterns(patterns) {\r
68     return patterns.filter(isPositivePattern);\r
69 }\r
70 exports.getPositivePatterns = getPositivePatterns;\r
71 /**\r
72  * Extract base directory from provided pattern.\r
73  */\r
74 function getBaseDirectory(pattern) {\r
75     return globParent(pattern);\r
76 }\r
77 exports.getBaseDirectory = getBaseDirectory;\r
78 /**\r
79  * Return true if provided pattern has globstar.\r
80  */\r
81 function hasGlobStar(pattern) {\r
82     return pattern.indexOf(GLOBSTAR) !== -1;\r
83 }\r
84 exports.hasGlobStar = hasGlobStar;\r
85 /**\r
86  * Return true if provided pattern ends with slash and globstar.\r
87  */\r
88 function endsWithSlashGlobStar(pattern) {\r
89     return pattern.endsWith('/' + GLOBSTAR);\r
90 }\r
91 exports.endsWithSlashGlobStar = endsWithSlashGlobStar;\r
92 /**\r
93  * Returns «true» when pattern ends with a slash and globstar or the last partial of the pattern is static pattern.\r
94  */\r
95 function isAffectDepthOfReadingPattern(pattern) {\r
96     var basename = path.basename(pattern);\r
97     return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\r
98 }\r
99 exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\r
100 /**\r
101  * Return naive depth of provided pattern without depth of the base directory.\r
102  */\r
103 function getNaiveDepth(pattern) {\r
104     var base = getBaseDirectory(pattern);\r
105     var patternDepth = pattern.split('/').length;\r
106     var patternBaseDepth = base.split('/').length;\r
107     /**\r
108      * This is a hack for pattern that has no base directory.\r
109      *\r
110      * This is related to the `*\something\*` pattern.\r
111      */\r
112     if (base === '.') {\r
113         return patternDepth - patternBaseDepth;\r
114     }\r
115     return patternDepth - patternBaseDepth - 1;\r
116 }\r
117 exports.getNaiveDepth = getNaiveDepth;\r
118 /**\r
119  * Return max naive depth of provided patterns without depth of the base directory.\r
120  */\r
121 function getMaxNaivePatternsDepth(patterns) {\r
122     return patterns.reduce(function (max, pattern) {\r
123         var depth = getNaiveDepth(pattern);\r
124         return depth > max ? depth : max;\r
125     }, 0);\r
126 }\r
127 exports.getMaxNaivePatternsDepth = getMaxNaivePatternsDepth;\r
128 /**\r
129  * Make RegExp for provided pattern.\r
130  */\r
131 function makeRe(pattern, options) {\r
132     return micromatch.makeRe(pattern, options);\r
133 }\r
134 exports.makeRe = makeRe;\r
135 /**\r
136  * Convert patterns to regexps.\r
137  */\r
138 function convertPatternsToRe(patterns, options) {\r
139     return patterns.map(function (pattern) { return makeRe(pattern, options); });\r
140 }\r
141 exports.convertPatternsToRe = convertPatternsToRe;\r
142 /**\r
143  * Returns true if the entry match any of the given RegExp's.\r
144  */\r
145 function matchAny(entry, patternsRe) {\r
146     return patternsRe.some(function (patternRe) { return patternRe.test(entry); });\r
147 }\r
148 exports.matchAny = matchAny;\r