function parseJsonConfigFileContent(json, host, basePath) {
        var _a = convertCompilerOptionsFromJson(json["compilerOptions"], basePath), options = _a.options, errors = _a.errors;
        return {
            options: options,
            fileNames: getFileNames(),
            errors: errors
        };
        function getFileNames() {
            var fileNames = [];
            if (ts.hasProperty(json, "files")) {
                if (json["files"] instanceof Array) {
                    fileNames = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); });
                }
                else {
                    errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "files", "Array"));
                }
            }
            else {
                var exclude = json["exclude"] instanceof Array ? ts.map(json["exclude"], ts.normalizeSlashes) : undefined;
                var sysFiles = host.readDirectory(basePath, ".ts", exclude).concat(host.readDirectory(basePath, ".tsx", exclude));
                for (var i = 0; i < sysFiles.length; i++) {
                    var name_31 = sysFiles[i];
                    if (ts.fileExtensionIs(name_31, ".d.ts")) {
                        var baseName = name_31.substr(0, name_31.length - ".d.ts".length);
                        if (!ts.contains(sysFiles, baseName + ".tsx") && !ts.contains(sysFiles, baseName + ".ts")) {
                            fileNames.push(name_31);
                        }
                    }
                    else if (ts.fileExtensionIs(name_31, ".ts")) {
                        if (!ts.contains(sysFiles, name_31 + "x")) {
                            fileNames.push(name_31);
                        }
                    }
                    else {
                        fileNames.push(name_31);
                    }
                }
            }
            return fileNames;
        }
    }
Parse the contents of a config file (tsconfig.json).
@param json The contents of the config file to parse
@param host Instance of ParseConfigHost used to enumerate files in folder.
@param basePath A root directory to resolve relative path entries in the config
   file to. e.g. outDir