function expand(patterns, suffixes) {
        var globs = [],
            nonGlobs = [];

        // distinguish non-glob, full file paths so that we can add them without
        // needing to check for a suffix-match.
        patterns.forEach(function (pattern) {
            if (glob.hasMagic(pattern)) {
                globs.push(pattern);
            } else if (grunt.file.isFile(pattern)) {
                nonGlobs.push(pattern);
            }
        });

        var suffixesDefined = Array.isArray(suffixes) && suffixes.length > 0;
        var expandOptions = {
            // matchBase: true,
            filter: function (filePath) {
                return grunt.file.isFile(filePath)
                    && (!suffixesDefined || hasSuffix(suffixes, filePath.toLowerCase()));
            }
        };

        // filter and expand globs
        var files = grunt.file.expand(expandOptions, globs);
        // concat non-glob file paths
        files = files.concat(nonGlobs);
        // resolve file paths
        return files.map(function (file) {
            return path.resolve(file);
        });
    }
function expand(patterns, suffixes) {
        var globs = [],
            nonGlobs = [];

        
        
        patterns.forEach(function (pattern) {
            if (glob.hasMagic(pattern)) {
                globs.push(pattern);
            } else if (grunt.file.isFile(pattern)) {
                nonGlobs.push(pattern);
            }
        });

        var suffixesDefined = Array.isArray(suffixes) && suffixes.length > 0;
        var expandOptions = {
            
            filter: function (filePath) {
                return grunt.file.isFile(filePath)
                    && (!suffixesDefined || hasSuffix(suffixes, filePath.toLowerCase()));
            }
        };

        
        var files = grunt.file.expand(expandOptions, globs);
        
        files = files.concat(nonGlobs);
        
        return files.map(function (file) {
            return path.resolve(file);
        });
    }
function expand ( patterns , suffixes ) { var globs = [ ] , nonGlobs = [ ] ; // distinguish non-glob, full file paths so that we can add them without // needing to check for a suffix-match. patterns . forEach ( function ( pattern ) { if ( glob . hasMagic ( pattern ) ) { globs . push ( pattern ) ; } else if ( grunt . file . isFile ( pattern ) ) { nonGlobs . push ( pattern ) ; } } ) ; var suffixesDefined = Array . isArray ( suffixes ) && suffixes . length > 0 ; var expandOptions = { // matchBase: true, filter : function ( filePath ) { return grunt . file . isFile ( filePath ) && ( ! suffixesDefined || hasSuffix ( suffixes , filePath . toLowerCase ( ) ) ) ; } } ; // filter and expand globs var files = grunt . file . expand ( expandOptions , globs ) ; // concat non-glob file paths files = files . concat ( nonGlobs ) ; // resolve file paths return files . map ( function ( file ) { return path . resolve ( file ) ; } ) ; }
TODO: suffixes are deprecated. We'll remove related stuff when we permanently drop suffixes.
TODO : suffixes are deprecated . We ll remove related stuff when we permanently drop suffixes .