UNPKG

4.62 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.inspect = exports.inherits = undefined;
5
6var _getIterator2 = require("babel-runtime/core-js/get-iterator");
7
8var _getIterator3 = _interopRequireDefault(_getIterator2);
9
10var _util = require("util");
11
12Object.defineProperty(exports, "inherits", {
13 enumerable: true,
14 get: function get() {
15 return _util.inherits;
16 }
17});
18Object.defineProperty(exports, "inspect", {
19 enumerable: true,
20 get: function get() {
21 return _util.inspect;
22 }
23});
24exports.canCompile = canCompile;
25exports.list = list;
26exports.regexify = regexify;
27exports.arrayify = arrayify;
28exports.booleanify = booleanify;
29exports.shouldIgnore = shouldIgnore;
30
31var _escapeRegExp = require("lodash/escapeRegExp");
32
33var _escapeRegExp2 = _interopRequireDefault(_escapeRegExp);
34
35var _startsWith = require("lodash/startsWith");
36
37var _startsWith2 = _interopRequireDefault(_startsWith);
38
39var _isBoolean = require("lodash/isBoolean");
40
41var _isBoolean2 = _interopRequireDefault(_isBoolean);
42
43var _minimatch = require("minimatch");
44
45var _minimatch2 = _interopRequireDefault(_minimatch);
46
47var _includes = require("lodash/includes");
48
49var _includes2 = _interopRequireDefault(_includes);
50
51var _isString = require("lodash/isString");
52
53var _isString2 = _interopRequireDefault(_isString);
54
55var _isRegExp = require("lodash/isRegExp");
56
57var _isRegExp2 = _interopRequireDefault(_isRegExp);
58
59var _path = require("path");
60
61var _path2 = _interopRequireDefault(_path);
62
63var _slash = require("slash");
64
65var _slash2 = _interopRequireDefault(_slash);
66
67function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
68
69function canCompile(filename, altExts) {
70 var exts = altExts || canCompile.EXTENSIONS;
71 var ext = _path2.default.extname(filename);
72 return (0, _includes2.default)(exts, ext);
73}
74
75canCompile.EXTENSIONS = [".js", ".jsx", ".es6", ".es"];
76
77function list(val) {
78 if (!val) {
79 return [];
80 } else if (Array.isArray(val)) {
81 return val;
82 } else if (typeof val === "string") {
83 return val.split(",");
84 } else {
85 return [val];
86 }
87}
88
89function regexify(val) {
90 if (!val) {
91 return new RegExp(/.^/);
92 }
93
94 if (Array.isArray(val)) {
95 val = new RegExp(val.map(_escapeRegExp2.default).join("|"), "i");
96 }
97
98 if (typeof val === "string") {
99 val = (0, _slash2.default)(val);
100
101 if ((0, _startsWith2.default)(val, "./") || (0, _startsWith2.default)(val, "*/")) val = val.slice(2);
102 if ((0, _startsWith2.default)(val, "**/")) val = val.slice(3);
103
104 var regex = _minimatch2.default.makeRe(val, { nocase: true });
105 return new RegExp(regex.source.slice(1, -1), "i");
106 }
107
108 if ((0, _isRegExp2.default)(val)) {
109 return val;
110 }
111
112 throw new TypeError("illegal type for regexify");
113}
114
115function arrayify(val, mapFn) {
116 if (!val) return [];
117 if ((0, _isBoolean2.default)(val)) return arrayify([val], mapFn);
118 if ((0, _isString2.default)(val)) return arrayify(list(val), mapFn);
119
120 if (Array.isArray(val)) {
121 if (mapFn) val = val.map(mapFn);
122 return val;
123 }
124
125 return [val];
126}
127
128function booleanify(val) {
129 if (val === "true" || val == 1) {
130 return true;
131 }
132
133 if (val === "false" || val == 0 || !val) {
134 return false;
135 }
136
137 return val;
138}
139
140function shouldIgnore(filename) {
141 var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
142 var only = arguments[2];
143
144 filename = filename.replace(/\\/g, "/");
145
146 if (only) {
147 for (var _iterator = only, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
148 var _ref;
149
150 if (_isArray) {
151 if (_i >= _iterator.length) break;
152 _ref = _iterator[_i++];
153 } else {
154 _i = _iterator.next();
155 if (_i.done) break;
156 _ref = _i.value;
157 }
158
159 var pattern = _ref;
160
161 if (_shouldIgnore(pattern, filename)) return false;
162 }
163 return true;
164 } else if (ignore.length) {
165 for (var _iterator2 = ignore, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) {
166 var _ref2;
167
168 if (_isArray2) {
169 if (_i2 >= _iterator2.length) break;
170 _ref2 = _iterator2[_i2++];
171 } else {
172 _i2 = _iterator2.next();
173 if (_i2.done) break;
174 _ref2 = _i2.value;
175 }
176
177 var _pattern = _ref2;
178
179 if (_shouldIgnore(_pattern, filename)) return true;
180 }
181 }
182
183 return false;
184}
185
186function _shouldIgnore(pattern, filename) {
187 if (typeof pattern === "function") {
188 return pattern(filename);
189 } else {
190 return pattern.test(filename);
191 }
192}
\No newline at end of file