res/sources/main.js
function compare (checkDictionary, path, pathContent) {
        var subPromises = [];
        pathContent.forEach(function (name) {
            var JS_EXT = ".js",
                JS_EXT_LENGTH = JS_EXT.length,
                contentFullName = path + name,
                contentFullNameLength = contentFullName.length;
            if (contentFullNameLength > JS_EXT_LENGTH
                && contentFullName.indexOf(JS_EXT) === contentFullNameLength - JS_EXT_LENGTH) {
                contentFullName = contentFullName.substring(START, contentFullNameLength - JS_EXT_LENGTH);
                if (checkDictionary[contentFullName] === "obsolete") {
                    checkDictionary[contentFullName] = "exists";
                } else {
                    checkDictionary[contentFullName] = "new";
                }
            } else if (name.indexOf(".") === NOT_FOUND) {
                subPromises.push(gpf.http.get("/fs/src/" + contentFullName)
                    .then(function (response) {
                        return JSON.parse(response.responseText);
                    })
                    .then(function (subPathContent) {
                        return compare(checkDictionary, contentFullName + "/", subPathContent);
                    }));
            }
        });
        if (!subPromises.length) {
            return Promise.resolve();
        }
        return Promise.all(subPromises);
    }
function compare (checkDictionary, path, pathContent) {
        var subPromises = [];
        pathContent.forEach(function (name) {
            var JS_EXT = ".js",
                JS_EXT_LENGTH = JS_EXT.length,
                contentFullName = path + name,
                contentFullNameLength = contentFullName.length;
            if (contentFullNameLength > JS_EXT_LENGTH
                && contentFullName.indexOf(JS_EXT) === contentFullNameLength - JS_EXT_LENGTH) {
                contentFullName = contentFullName.substring(START, contentFullNameLength - JS_EXT_LENGTH);
                if (checkDictionary[contentFullName] === "obsolete") {
                    checkDictionary[contentFullName] = "exists";
                } else {
                    checkDictionary[contentFullName] = "new";
                }
            } else if (name.indexOf(".") === NOT_FOUND) {
                subPromises.push(gpf.http.get("/fs/src/" + contentFullName)
                    .then(function (response) {
                        return JSON.parse(response.responseText);
                    })
                    .then(function (subPathContent) {
                        return compare(checkDictionary, contentFullName + "/", subPathContent);
                    }));
            }
        });
        if (!subPromises.length) {
            return Promise.resolve();
        }
        return Promise.all(subPromises);
    }
function compare ( checkDictionary , path , pathContent ) { var subPromises = [ ] ; pathContent . forEach ( function ( name ) { var JS_EXT = ".js" , JS_EXT_LENGTH = JS_EXT . length , contentFullName = path + name , contentFullNameLength = contentFullName . length ; if ( contentFullNameLength > JS_EXT_LENGTH && contentFullName . indexOf ( JS_EXT ) === contentFullNameLength - JS_EXT_LENGTH ) { contentFullName = contentFullName . substring ( START , contentFullNameLength - JS_EXT_LENGTH ) ; if ( checkDictionary [ contentFullName ] === "obsolete" ) { checkDictionary [ contentFullName ] = "exists" ; } else { checkDictionary [ contentFullName ] = "new" ; } } else if ( name . indexOf ( "." ) === NOT_FOUND ) { subPromises . push ( gpf . http . get ( "/fs/src/" + contentFullName ) . then ( function ( response ) { return JSON . parse ( response . responseText ) ; } ) . then ( function ( subPathContent ) { return compare ( checkDictionary , contentFullName + "/" , subPathContent ) ; } ) ) ; } } ) ; if ( ! subPromises . length ) { return Promise . resolve ( ) ; } return Promise . all ( subPromises ) ; }
endregion region Compare sources.json with repository
endregion region Compare sources . json with repository