UNPKG

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