lib/file-filter.js
function fileCategoryMap() {

        // Go over every file lookup function we export.
        var exports = module.exports(grunt);
        // This list of categories must contain all non-overlapping file categories.
        var categories = ['extLibFiles', 'extLibMapFiles', 'extCssFiles', 'extFontFiles', 'fontFiles',
            'appIndexFiles', 'testIndexFiles', 'configFiles', 'libFiles', 'modelFiles', 'srcDataFiles',
            'codeFiles', 'otherJsFiles', 'otherNonJsFiles', 'taskFiles', 'cssFiles', 'picFiles', 'soundFiles', 'unitTestFiles',
            'commonJsFiles', 'commonOtherFiles', 'ignoredFiles', 'distUncompressedFiles',
            'distLibFiles', 'distIndexFiles', 'distJsFiles', 'distCssFiles',
            'toolsShellFiles', 'unitTestDataFiles', 'picSrcFiles', 'soundSrcFiles',
            'htmlTemplateFiles', 'generatedJsFiles', 'otherMediaFiles', 'unitTestHelperFiles',
            'pythonFiles', 'compiledPythonFiles', 'localizationDataFiles', 'developmentOtherDataFiles', 'developmentTextDataFiles'];

        // Construct the map by calling each function defined above.
        var map = {};
        for (var i = 0; i < categories.length; i++) {
            var files = flatten(exports[categories[i]]());
            for (var j = 0; j < files.length; j++) {
                if (map[files[j]]) {
                    grunt.fail.warn("A file '" + files[j] + "' maps to category '" + categories[i] + "' in addition to '" + map[files[j]] + "' category.");
                } else {
                    map[files[j]] = categories[i];
                }
            }
        }
        return map;
    }
function fileCategoryMap() {

        // Go over every file lookup function we export.
        var exports = module.exports(grunt);
        // This list of categories must contain all non-overlapping file categories.
        var categories = ['extLibFiles', 'extLibMapFiles', 'extCssFiles', 'extFontFiles', 'fontFiles',
            'appIndexFiles', 'testIndexFiles', 'configFiles', 'libFiles', 'modelFiles', 'srcDataFiles',
            'codeFiles', 'otherJsFiles', 'otherNonJsFiles', 'taskFiles', 'cssFiles', 'picFiles', 'soundFiles', 'unitTestFiles',
            'commonJsFiles', 'commonOtherFiles', 'ignoredFiles', 'distUncompressedFiles',
            'distLibFiles', 'distIndexFiles', 'distJsFiles', 'distCssFiles',
            'toolsShellFiles', 'unitTestDataFiles', 'picSrcFiles', 'soundSrcFiles',
            'htmlTemplateFiles', 'generatedJsFiles', 'otherMediaFiles', 'unitTestHelperFiles',
            'pythonFiles', 'compiledPythonFiles', 'localizationDataFiles', 'developmentOtherDataFiles', 'developmentTextDataFiles'];

        // Construct the map by calling each function defined above.
        var map = {};
        for (var i = 0; i < categories.length; i++) {
            var files = flatten(exports[categories[i]]());
            for (var j = 0; j < files.length; j++) {
                if (map[files[j]]) {
                    grunt.fail.warn("A file '" + files[j] + "' maps to category '" + categories[i] + "' in addition to '" + map[files[j]] + "' category.");
                } else {
                    map[files[j]] = categories[i];
                }
            }
        }
        return map;
    }
function fileCategoryMap ( ) { // Go over every file lookup function we export. var exports = module . exports ( grunt ) ; // This list of categories must contain all non-overlapping file categories. var categories = [ 'extLibFiles' , 'extLibMapFiles' , 'extCssFiles' , 'extFontFiles' , 'fontFiles' , 'appIndexFiles' , 'testIndexFiles' , 'configFiles' , 'libFiles' , 'modelFiles' , 'srcDataFiles' , 'codeFiles' , 'otherJsFiles' , 'otherNonJsFiles' , 'taskFiles' , 'cssFiles' , 'picFiles' , 'soundFiles' , 'unitTestFiles' , 'commonJsFiles' , 'commonOtherFiles' , 'ignoredFiles' , 'distUncompressedFiles' , 'distLibFiles' , 'distIndexFiles' , 'distJsFiles' , 'distCssFiles' , 'toolsShellFiles' , 'unitTestDataFiles' , 'picSrcFiles' , 'soundSrcFiles' , 'htmlTemplateFiles' , 'generatedJsFiles' , 'otherMediaFiles' , 'unitTestHelperFiles' , 'pythonFiles' , 'compiledPythonFiles' , 'localizationDataFiles' , 'developmentOtherDataFiles' , 'developmentTextDataFiles' ] ; // Construct the map by calling each function defined above. var map = { } ; for ( var i = 0 ; i < categories . length ; i ++ ) { var files = flatten ( exports [ categories [ i ] ] ( ) ) ; for ( var j = 0 ; j < files . length ; j ++ ) { if ( map [ files [ j ] ] ) { grunt . fail . warn ( "A file '" + files [ j ] + "' maps to category '" + categories [ i ] + "' in addition to '" + map [ files [ j ] ] + "' category." ) ; } else { map [ files [ j ] ] = categories [ i ] ; } } } return map ; }
Build complete map of known files.

Note that when adding new file categories, this function must be updated and all
new non-overlapping (i.e. atomic) categories needs to be added here.
Build complete map of known files .