You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							71 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							71 lines
						
					
					
						
							2.1 KiB
						
					
					
				"use strict"; | 
						|
Object.defineProperty(exports, "__esModule", { value: true }); | 
						|
var optionsManager = require("./managers/options"); | 
						|
var taskManager = require("./managers/tasks"); | 
						|
var reader_async_1 = require("./providers/reader-async"); | 
						|
var reader_stream_1 = require("./providers/reader-stream"); | 
						|
var reader_sync_1 = require("./providers/reader-sync"); | 
						|
var arrayUtils = require("./utils/array"); | 
						|
var streamUtils = require("./utils/stream"); | 
						|
/** | 
						|
 * Synchronous API. | 
						|
 */ | 
						|
function sync(source, opts) { | 
						|
    assertPatternsInput(source); | 
						|
    var works = getWorks(source, reader_sync_1.default, opts); | 
						|
    return arrayUtils.flatten(works); | 
						|
} | 
						|
exports.sync = sync; | 
						|
/** | 
						|
 * Asynchronous API. | 
						|
 */ | 
						|
function async(source, opts) { | 
						|
    try { | 
						|
        assertPatternsInput(source); | 
						|
    } | 
						|
    catch (error) { | 
						|
        return Promise.reject(error); | 
						|
    } | 
						|
    var works = getWorks(source, reader_async_1.default, opts); | 
						|
    return Promise.all(works).then(arrayUtils.flatten); | 
						|
} | 
						|
exports.async = async; | 
						|
/** | 
						|
 * Stream API. | 
						|
 */ | 
						|
function stream(source, opts) { | 
						|
    assertPatternsInput(source); | 
						|
    var works = getWorks(source, reader_stream_1.default, opts); | 
						|
    return streamUtils.merge(works); | 
						|
} | 
						|
exports.stream = stream; | 
						|
/** | 
						|
 * Return a set of tasks based on provided patterns. | 
						|
 */ | 
						|
function generateTasks(source, opts) { | 
						|
    assertPatternsInput(source); | 
						|
    var patterns = [].concat(source); | 
						|
    var options = optionsManager.prepare(opts); | 
						|
    return taskManager.generate(patterns, options); | 
						|
} | 
						|
exports.generateTasks = generateTasks; | 
						|
/** | 
						|
 * Returns a set of works based on provided tasks and class of the reader. | 
						|
 */ | 
						|
function getWorks(source, _Reader, opts) { | 
						|
    var patterns = [].concat(source); | 
						|
    var options = optionsManager.prepare(opts); | 
						|
    var tasks = taskManager.generate(patterns, options); | 
						|
    var reader = new _Reader(options); | 
						|
    return tasks.map(reader.read, reader); | 
						|
} | 
						|
function assertPatternsInput(source) { | 
						|
    if ([].concat(source).every(isString)) { | 
						|
        return; | 
						|
    } | 
						|
    throw new TypeError('Patterns must be a string or an array of strings'); | 
						|
} | 
						|
function isString(source) { | 
						|
    /* tslint:disable-next-line strict-type-predicates */ | 
						|
    return typeof source === 'string'; | 
						|
}
 | 
						|
 |