47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
'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;
|