1 | 'use strict'
|
2 |
|
3 | var assign = require('lodash.assign')
|
4 | var cssRE = /\.css$/i
|
5 | var RegExpRE = /^\/(.*)\/(.*)$/
|
6 |
|
7 | function normalize (opts) {
|
8 | opts = assign({}, opts)
|
9 |
|
10 | if (typeof opts['auto-inject'] === 'undefined') {
|
11 | opts['auto-inject'] = true
|
12 | }
|
13 |
|
14 | if (opts['no-auto-inject']) {
|
15 | opts['auto-inject'] = false
|
16 | delete opts['no-auto-inject']
|
17 | }
|
18 |
|
19 | if (opts.test) {
|
20 | if (typeof opts.test === 'string') {
|
21 | opts.test = stringToRegExp(opts.test)
|
22 | }
|
23 | } else {
|
24 | opts.test = cssRE
|
25 | }
|
26 |
|
27 | return opts
|
28 | }
|
29 |
|
30 | function skipIt (fileName, opts) {
|
31 | if (typeof opts.test === 'function') {
|
32 | if (!opts.test(fileName)) {
|
33 | return true
|
34 | }
|
35 | } else if (opts.test instanceof RegExp) {
|
36 | if (!opts.test.test(fileName)) {
|
37 | return true
|
38 | }
|
39 | }
|
40 |
|
41 | return false
|
42 | }
|
43 |
|
44 | function stringToRegExp (str) {
|
45 | var match = RegExpRE.exec(str)
|
46 | if (!match) return
|
47 |
|
48 | var re = match[1]
|
49 | var flags = match[2]
|
50 | return new RegExp(re, flags)
|
51 | }
|
52 |
|
53 | exports.normalize = normalize
|
54 | exports.skipIt = skipIt
|
55 | exports.stringToRegExp = stringToRegExp
|