public static Run()

in src/jsonValidator.ts [9:56]


    public static Run() {
        let jsonPaths: string[] = [];

        console.log("All jsons paths building started.")

        for (let visualName in visualNames) {            
            if (visualNames[visualName]) { 
                console.log(visualName + ": getting all directories.");

                console.log("dirname: " + __dirname + ";.." + "; visualName: " + visualName);

                let visualResourcesPath: string = path.join(__dirname, "..", visualName);

                let localeFolders: string[] = fs.readdirSync(visualResourcesPath)
                                          .map(name => path.join(visualResourcesPath, name))
                                          .filter(directory => fs.lstatSync(directory).isDirectory());

                console.log(visualName + ": all directories recieved.");

                for (let i in localeFolders) {
                    let localeFolder: string = localeFolders[i];
                    
                    jsonPaths.push(path.join(localeFolders[i], JsonValidator.resjsonFileName));
                    console.log(visualName + "/" + localeFolder + ": path has been built.");
                }                
            }
        }

        let brokenFilesCount: number = 0;

        console.log("Validation process started");
        for (let i in jsonPaths) {
            let jsonPath: string = jsonPaths[i]
            let fileString: string = fs.readFileSync(jsonPath, "utf8");

            try {
                let obj: {} = JSON.parse(fileString);
                console.log("\x1b[32m%s\x1b[0m", jsonPath + " is valid");
            } catch (err){
                ++ brokenFilesCount;
                console.log("\x1b[31m%s\x1b[0m", jsonPath + " error occured: " + err.message);
            }    
        }

        if (brokenFilesCount) {
            throw "Error has been occured: " + brokenFilesCount + (brokenFilesCount > 1 ? " files are" : " file is" ) + " not valid";
        }
    }