1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.inspect = exports.inherits = undefined;
|
5 |
|
6 | var _getIterator2 = require("babel-runtime/core-js/get-iterator");
|
7 |
|
8 | var _getIterator3 = _interopRequireDefault(_getIterator2);
|
9 |
|
10 | var _util = require("util");
|
11 |
|
12 | Object.defineProperty(exports, "inherits", {
|
13 | enumerable: true,
|
14 | get: function get() {
|
15 | return _util.inherits;
|
16 | }
|
17 | });
|
18 | Object.defineProperty(exports, "inspect", {
|
19 | enumerable: true,
|
20 | get: function get() {
|
21 | return _util.inspect;
|
22 | }
|
23 | });
|
24 | exports.canCompile = canCompile;
|
25 | exports.list = list;
|
26 | exports.regexify = regexify;
|
27 | exports.arrayify = arrayify;
|
28 | exports.booleanify = booleanify;
|
29 | exports.shouldIgnore = shouldIgnore;
|
30 |
|
31 | var _escapeRegExp = require("lodash/escapeRegExp");
|
32 |
|
33 | var _escapeRegExp2 = _interopRequireDefault(_escapeRegExp);
|
34 |
|
35 | var _startsWith = require("lodash/startsWith");
|
36 |
|
37 | var _startsWith2 = _interopRequireDefault(_startsWith);
|
38 |
|
39 | var _isBoolean = require("lodash/isBoolean");
|
40 |
|
41 | var _isBoolean2 = _interopRequireDefault(_isBoolean);
|
42 |
|
43 | var _minimatch = require("minimatch");
|
44 |
|
45 | var _minimatch2 = _interopRequireDefault(_minimatch);
|
46 |
|
47 | var _includes = require("lodash/includes");
|
48 |
|
49 | var _includes2 = _interopRequireDefault(_includes);
|
50 |
|
51 | var _isString = require("lodash/isString");
|
52 |
|
53 | var _isString2 = _interopRequireDefault(_isString);
|
54 |
|
55 | var _isRegExp = require("lodash/isRegExp");
|
56 |
|
57 | var _isRegExp2 = _interopRequireDefault(_isRegExp);
|
58 |
|
59 | var _path = require("path");
|
60 |
|
61 | var _path2 = _interopRequireDefault(_path);
|
62 |
|
63 | var _slash = require("slash");
|
64 |
|
65 | var _slash2 = _interopRequireDefault(_slash);
|
66 |
|
67 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
68 |
|
69 | function 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 |
|
75 | canCompile.EXTENSIONS = [".js", ".jsx", ".es6", ".es"];
|
76 |
|
77 | function 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 |
|
89 | function 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 |
|
115 | function 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 |
|
128 | function 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 |
|
140 | function 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 |
|
186 | function _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 |