docs: function parseJsonConfigFileContent(json, host, basePath, existingOptions, configFileName) {
          if (existingOptions === void 0) { existingOptions = {}; }
          var errors = [];
          var compilerOptions = convertCompilerOptionsFromJsonWorker(json["compilerOptions"], basePath, errors, configFileName);
          var options = ts.extend(existingOptions, compilerOptions);
          var typingOptions = convertTypingOptionsFromJsonWorker(json["typingOptions"], basePath, errors, configFileName);
          options.configFilePath = configFileName;
          var _a = getFileNames(errors), fileNames = _a.fileNames, wildcardDirectories = _a.wildcardDirectories;
          var compileOnSave = convertCompileOnSaveOptionFromJson(json, basePath, errors);
          return {
              options: options,
              fileNames: fileNames,
              typingOptions: typingOptions,
              raw: json,
              errors: errors,
              wildcardDirectories: wildcardDirectories,
              compileOnSave: compileOnSave
          };
          function getFileNames(errors) {
              var fileNames;
              if (ts.hasProperty(json, "files")) {
                  if (ts.isArray(json["files"])) {
                      fileNames = json["files"];
                  }
                  else {
                      errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "files", "Array"));
                  }
              }
              var includeSpecs;
              if (ts.hasProperty(json, "include")) {
                  if (ts.isArray(json["include"])) {
                      includeSpecs = json["include"];
                  }
                  else {
                      errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "include", "Array"));
                  }
              }
              var excludeSpecs;
              if (ts.hasProperty(json, "exclude")) {
                  if (ts.isArray(json["exclude"])) {
                      excludeSpecs = json["exclude"];
                  }
                  else {
                      errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array"));
                  }
              }
              else if (ts.hasProperty(json, "excludes")) {
                  errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));
              }
              else {
                  // By default, exclude common package folders
                  excludeSpecs = ["node_modules", "bower_components", "jspm_packages"];
              }
              // Always exclude the output directory unless explicitly included
              var outDir = json["compilerOptions"] && json["compilerOptions"]["outDir"];
              if (outDir) {
                  excludeSpecs.push(outDir);
              }
              if (fileNames === undefined && includeSpecs === undefined) {
                  includeSpecs = ["**/*"];
              }
              return matchFileNames(fileNames, includeSpecs, excludeSpecs, basePath, options, host, errors);
          }
      }