1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', {
|
4 | value: true
|
5 | });
|
6 | exports.hasMagic = hasMagic;
|
7 | exports.getSource = getSource;
|
8 | exports.interpolateString = interpolateString;
|
9 | exports.isAbsoluteURL = isAbsoluteURL;
|
10 | exports.functionToString = functionToString;
|
11 | exports.arrowFnToNormalFn = arrowFnToNormalFn;
|
12 |
|
13 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
14 |
|
15 | var _minimatch = require('minimatch');
|
16 |
|
17 | var _path = require('path');
|
18 |
|
19 | var _path2 = _interopRequireDefault(_path);
|
20 |
|
21 | var isAbsolutePath = _path2['default'].isAbsolute;
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | function hasMagic(pattern, options) {
|
27 |
|
28 | if (pattern instanceof RegExp) {
|
29 | return {
|
30 | match: function match(str) {
|
31 | return pattern.test(str);
|
32 | }
|
33 | };
|
34 | }
|
35 |
|
36 | var minimatch = new _minimatch.Minimatch(pattern, options);
|
37 | var set = minimatch.set;
|
38 |
|
39 | if (set.length > 1) {
|
40 | return minimatch;
|
41 | }
|
42 |
|
43 | for (var j = 0; j < set[0].length; j++) {
|
44 | if (typeof set[0][j] !== 'string') {
|
45 | return minimatch;
|
46 | }
|
47 | }
|
48 |
|
49 | return false;
|
50 | }
|
51 |
|
52 | function getSource(_source) {
|
53 | return {
|
54 | source: function source() {
|
55 | return _source;
|
56 | },
|
57 | size: function size() {
|
58 | return Buffer.byteLength(_source, 'utf8');
|
59 | }
|
60 | };
|
61 | }
|
62 |
|
63 | function interpolateString(string, data) {
|
64 | var hasOwnProperty = ({}).hasOwnProperty;
|
65 |
|
66 | return (string + '').replace(/\[(\w+?)\]/g, function (match, key) {
|
67 | if (hasOwnProperty.call(data, key)) {
|
68 | return data[key];
|
69 | }
|
70 |
|
71 | return '';
|
72 | });
|
73 | }
|
74 |
|
75 | function isAbsoluteURL(url) {
|
76 | return (/^(?:\w+:)?\/\//.test(url)
|
77 | );
|
78 | }
|
79 |
|
80 | function functionToString(fn) {
|
81 | if (typeof fn !== 'function') {
|
82 | return '(void 0)';
|
83 | }
|
84 |
|
85 | var string = fn + '';
|
86 |
|
87 | return arrowFnToNormalFn(string);
|
88 | }
|
89 |
|
90 |
|
91 |
|
92 | function arrowFnToNormalFn(string) {
|
93 | var match = string.match(/^([\s\S]+?)=\>(\s*{)?([\s\S]*?)(}\s*)?$/);
|
94 |
|
95 | if (!match) {
|
96 | return string;
|
97 | }
|
98 |
|
99 | var args = match[1];
|
100 | var body = match[3];
|
101 |
|
102 | var needsReturn = !(match[2] && match[4]);
|
103 |
|
104 | args = args.replace(/^(\s*\(\s*)([\s\S]*?)(\s*\)\s*)$/, '$2');
|
105 |
|
106 | if (needsReturn) {
|
107 | body = 'return ' + body;
|
108 | }
|
109 |
|
110 | return 'function(' + args + ') {' + body + '}';
|
111 | }
|
112 |
|
113 | exports.isAbsolutePath = isAbsolutePath; |
\ | No newline at end of file |