All files sync.js

100% Statements 94/94
100% Branches 11/11
100% Functions 1/1
100% Lines 94/94

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 957x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 26x 26x 26x 26x 26x 26x 26x 26x 20x 20x 26x 4x 26x 2x 2x 6x 6x 6x 6x 26x 7x 7x 7x 3x 3x 3x 4x 4x 4x 4x 4x 4x 3x 3x 26x 7x 7x 7x 7x 7x  
/**
* @license Apache-2.0
*
* Copyright (c) 2018 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
 
'use strict';
 
// MODULES //
 
var logger = require( 'debug' );
var readFile = require( '@stdlib/fs/read-file' ).sync;
var isStringArray = require( '@stdlib/assert/is-string-array' ).primitives;
var format = require( '@stdlib/string/format' );
 
 
// VARIABLES //
 
var debug = logger( 'read-file-list:sync' );
 
 
// MAIN //
 
/**
* Synchronously reads the entire contents of each file in a file list.
*
* @param {StringArray} list - list of file paths
* @param {(Object|string)} [options] - options
* @param {(string|null)} [options.encoding] - file encoding
* @param {string} [options.flag] - file status flag
* @throws {TypeError} must provide an array of strings
* @returns {ObjectArray} file contents
*
* @example
* var list = [ __filename ];
* var files = readFileListSync( list );
*
* if ( files instanceof Error ) {
*     throw files;
* }
* console.dir( files );
*/
function readFileListSync( list, options ) {
	var results;
	var opts;
	var file;
	var len;
	var i;
 
	if ( !isStringArray( list ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be an array of strings. Value: `%s`.', list ) );
	}
	if ( arguments.length > 1 ) {
		opts = options;
	} else {
		opts = {};
	}
	len = list.length;
	results = new Array( len );
 
	debug( 'Reading %d files...', len );
	for ( i = 0; i < len; i++ ) {
		debug( 'Reading file: %s (%d of %d).', list[ i ], i+1, len );
		file = readFile( list[ i ], opts );
		if ( file instanceof Error ) {
			debug( 'Encountered an error when reading file: %s (%d of %d). Error: %s', list[ i ], i, len, file.message );
			return file;
		}
		debug( 'Successfully read file: %s (%d of %d).', list[ i ], i, len );
		results[ i ] = {
			'file': list[ i ],
			'data': file
		};
	}
	debug( 'Finished reading files.' );
	return results;
}
 
 
// EXPORTS //
 
module.exports = readFileListSync;