/
index.js
46 lines (36 loc) · 1.08 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'use strict';
var gs = require('glob-stream');
var pipeline = require('streamx').pipeline;
var toThrough = require('to-through');
var isValidGlob = require('is-valid-glob');
var normalizePath = require('normalize-path');
var createResolver = require('resolve-options');
var config = require('./options');
var prepare = require('./prepare');
var wrapVinyl = require('./wrap-vinyl');
var sourcemap = require('./sourcemap');
var readContents = require('./read-contents');
var resolveSymlinks = require('./resolve-symlinks');
function normalize(glob) {
return normalizePath(glob, false);
}
function src(glob, opt) {
var optResolver = createResolver(config, opt);
if (!isValidGlob(glob)) {
throw new Error('Invalid glob argument: ' + glob);
}
if (!Array.isArray(glob)) {
glob = [glob];
}
glob = glob.map(normalize);
var outputStream = pipeline(
gs(glob, opt),
wrapVinyl(optResolver),
resolveSymlinks(optResolver),
prepare(optResolver),
readContents(optResolver),
sourcemap(optResolver)
);
return toThrough(outputStream);
}
module.exports = src;