1241 lines
51 KiB
Go
1241 lines
51 KiB
Go
package tsoptions
|
|
|
|
import (
|
|
"reflect"
|
|
"slices"
|
|
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/core"
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/diagnostics"
|
|
)
|
|
|
|
var OptionsDeclarations = slices.Concat(commonOptionsWithBuild, optionsForCompiler)
|
|
|
|
var commonOptionsWithBuild = []*CommandLineOption{
|
|
//******* commonOptionsWithBuild *******
|
|
{
|
|
Name: "help",
|
|
ShortName: "h",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: true,
|
|
IsCommandLineOnly: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Print_this_message,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "help",
|
|
ShortName: "?",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
IsCommandLineOnly: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "watch",
|
|
ShortName: "w",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: true,
|
|
IsCommandLineOnly: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Watch_input_files,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "preserveWatchOutput",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: false,
|
|
Category: diagnostics.Output_Formatting,
|
|
Description: diagnostics.Disable_wiping_the_console_in_watch_mode,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "listFiles",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Print_all_of_the_files_read_during_the_compilation,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "explainFiles",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "listEmittedFiles",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Print_the_names_of_emitted_files_after_a_compilation,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "pretty",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Output_Formatting,
|
|
Description: diagnostics.Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read,
|
|
DefaultValueDescription: true,
|
|
},
|
|
{
|
|
Name: "traceResolution",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Log_paths_used_during_the_moduleResolution_process,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "diagnostics",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Output_compiler_performance_information_after_building,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "extendedDiagnostics",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Output_more_detailed_compiler_performance_information_after_building,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "generateCpuProfile",
|
|
Kind: CommandLineOptionTypeString,
|
|
IsFilePath: true,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging,
|
|
DefaultValueDescription: "profile.cpuprofile",
|
|
},
|
|
|
|
{
|
|
Name: "generateTrace",
|
|
Kind: CommandLineOptionTypeString,
|
|
IsFilePath: true,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Generates_an_event_trace_and_a_list_of_types,
|
|
},
|
|
{
|
|
Name: "incremental",
|
|
ShortName: "i",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Projects,
|
|
Description: diagnostics.Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects,
|
|
transpileOptionValue: core.TSUnknown,
|
|
DefaultValueDescription: diagnostics.X_false_unless_composite_is_set,
|
|
},
|
|
{
|
|
Name: "declaration",
|
|
ShortName: "d",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// Not setting affectsEmit because we calculate this flag might not affect full emit
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Emit,
|
|
transpileOptionValue: core.TSUnknown,
|
|
Description: diagnostics.Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project,
|
|
DefaultValueDescription: diagnostics.X_false_unless_composite_is_set,
|
|
},
|
|
{
|
|
Name: "declarationMap",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// Not setting affectsEmit because we calculate this flag might not affect full emit
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Emit,
|
|
DefaultValueDescription: false,
|
|
Description: diagnostics.Create_sourcemaps_for_d_ts_files,
|
|
},
|
|
{
|
|
Name: "emitDeclarationOnly",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// Not setting affectsEmit because we calculate this flag might not affect full emit
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Only_output_d_ts_files_and_not_JavaScript_files,
|
|
transpileOptionValue: core.TSUnknown,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "sourceMap",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// Not setting affectsEmit because we calculate this flag might not affect full emit
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Emit,
|
|
DefaultValueDescription: false,
|
|
Description: diagnostics.Create_source_map_files_for_emitted_JavaScript_files,
|
|
},
|
|
{
|
|
Name: "inlineSourceMap",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// Not setting affectsEmit because we calculate this flag might not affect full emit
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Include_sourcemap_files_inside_the_emitted_JavaScript,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noCheck",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: false,
|
|
Category: diagnostics.Compiler_Diagnostics,
|
|
Description: diagnostics.Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported,
|
|
transpileOptionValue: core.TSTrue,
|
|
DefaultValueDescription: false,
|
|
// Not setting affectsSemanticDiagnostics or affectsBuildInfo because we dont want all diagnostics to go away, its handled in builder
|
|
},
|
|
{
|
|
Name: "noEmit",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Disable_emitting_files_from_a_compilation,
|
|
transpileOptionValue: core.TSUnknown,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "assumeChangesOnlyAffectDirectDependencies",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Watch_and_Build_Modes,
|
|
Description: diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "locale",
|
|
Kind: CommandLineOptionTypeString,
|
|
Category: diagnostics.Command_line_Options,
|
|
IsCommandLineOnly: true,
|
|
Description: diagnostics.Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit,
|
|
DefaultValueDescription: diagnostics.Platform_specific,
|
|
},
|
|
|
|
{
|
|
Name: "quiet",
|
|
ShortName: "q",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Do_not_print_diagnostics,
|
|
},
|
|
{
|
|
Name: "singleThreaded",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Run_in_single_threaded_mode,
|
|
},
|
|
{
|
|
Name: "pprofDir",
|
|
Kind: CommandLineOptionTypeString,
|
|
IsFilePath: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Generate_pprof_CPU_Slashmemory_profiles_to_the_given_directory,
|
|
},
|
|
}
|
|
|
|
var optionsForCompiler = []*CommandLineOption{
|
|
//******* compilerOptions not common with --build *******
|
|
|
|
// CommandLine only options
|
|
{
|
|
Name: "all",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Show_all_compiler_options,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "version",
|
|
ShortName: "v",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Print_the_compiler_s_version,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "init",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "project",
|
|
ShortName: "p",
|
|
Kind: CommandLineOptionTypeString,
|
|
IsFilePath: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
Description: diagnostics.Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json,
|
|
},
|
|
{
|
|
Name: "showConfig",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Command_line_Options,
|
|
IsCommandLineOnly: true,
|
|
Description: diagnostics.Print_the_final_configuration_instead_of_building,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "listFilesOnly",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Command_line_Options,
|
|
IsCommandLineOnly: true,
|
|
Description: diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,
|
|
DefaultValueDescription: false,
|
|
},
|
|
|
|
// Basic
|
|
// targetOptionDeclaration,
|
|
{
|
|
Name: "target",
|
|
ShortName: "t",
|
|
Kind: CommandLineOptionTypeEnum, // targetOptionMap
|
|
AffectsSourceFile: true,
|
|
AffectsModuleResolution: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations,
|
|
DefaultValueDescription: core.ScriptTargetES5,
|
|
},
|
|
|
|
// moduleOptionDeclaration,
|
|
{
|
|
Name: "module",
|
|
ShortName: "m",
|
|
Kind: CommandLineOptionTypeEnum, // moduleOptionMap
|
|
AffectsModuleResolution: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Specify_what_module_code_is_generated,
|
|
DefaultValueDescription: core.TSUnknown,
|
|
},
|
|
{
|
|
Name: "lib",
|
|
Kind: CommandLineOptionTypeList,
|
|
// elements: &CommandLineOption{
|
|
// name: "lib",
|
|
// kind: CommandLineOptionTypeEnum, // libMap,
|
|
// defaultValueDescription: core.TSUnknown,
|
|
// },
|
|
AffectsProgramStructure: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment,
|
|
transpileOptionValue: core.TSUnknown,
|
|
},
|
|
{
|
|
Name: "allowJs",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
allowJsFlag: true,
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.JavaScript_Support,
|
|
Description: diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "checkJs",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsModuleResolution: true,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.JavaScript_Support,
|
|
Description: diagnostics.Enable_error_reporting_in_type_checked_JavaScript_files,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "jsx",
|
|
Kind: CommandLineOptionTypeEnum, // jsxOptionMap,
|
|
AffectsSourceFile: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
AffectsModuleResolution: true,
|
|
// The checker emits an error when it sees JSX but this option is not set in compilerOptions.
|
|
// This is effectively a semantic error, so mark this option as affecting semantic diagnostics
|
|
// so we know to refresh errors when this option is changed.
|
|
AffectsSemanticDiagnostics: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Specify_what_JSX_code_is_generated,
|
|
DefaultValueDescription: core.TSUnknown,
|
|
},
|
|
{
|
|
Name: "outFile",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
AffectsDeclarationPath: true,
|
|
IsFilePath: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output,
|
|
transpileOptionValue: core.TSUnknown,
|
|
},
|
|
{
|
|
Name: "outDir",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
AffectsDeclarationPath: true,
|
|
IsFilePath: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Specify_an_output_folder_for_all_emitted_files,
|
|
},
|
|
{
|
|
Name: "rootDir",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
AffectsDeclarationPath: true,
|
|
IsFilePath: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Specify_the_root_folder_within_your_source_files,
|
|
DefaultValueDescription: diagnostics.Computed_from_the_list_of_input_files,
|
|
},
|
|
{
|
|
Name: "composite",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// Not setting affectsEmit because we calculate this flag might not affect full emit
|
|
AffectsBuildInfo: true,
|
|
IsTSConfigOnly: true,
|
|
Category: diagnostics.Projects,
|
|
transpileOptionValue: core.TSUnknown,
|
|
DefaultValueDescription: false,
|
|
Description: diagnostics.Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references,
|
|
},
|
|
{
|
|
Name: "tsBuildInfoFile",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
IsFilePath: true,
|
|
Category: diagnostics.Projects,
|
|
transpileOptionValue: core.TSUnknown,
|
|
DefaultValueDescription: ".tsbuildinfo",
|
|
Description: diagnostics.Specify_the_path_to_tsbuildinfo_incremental_compilation_file,
|
|
},
|
|
{
|
|
Name: "removeComments",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Emit,
|
|
DefaultValueDescription: false,
|
|
Description: diagnostics.Disable_emitting_comments,
|
|
},
|
|
{
|
|
Name: "importHelpers",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
AffectsSourceFile: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "downlevelIteration",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "isolatedModules",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Interop_Constraints,
|
|
Description: diagnostics.Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports,
|
|
transpileOptionValue: core.TSTrue,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "verbatimModuleSyntax",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Interop_Constraints,
|
|
Description: diagnostics.Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "isolatedDeclarations",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Interop_Constraints,
|
|
Description: diagnostics.Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files,
|
|
DefaultValueDescription: false,
|
|
AffectsBuildInfo: true,
|
|
AffectsSemanticDiagnostics: true,
|
|
},
|
|
{
|
|
Name: "erasableSyntaxOnly",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Interop_Constraints,
|
|
Description: diagnostics.Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript,
|
|
DefaultValueDescription: false,
|
|
AffectsBuildInfo: true,
|
|
AffectsSemanticDiagnostics: true,
|
|
},
|
|
{
|
|
Name: "libReplacement",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsProgramStructure: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Enable_lib_replacement,
|
|
DefaultValueDescription: false,
|
|
},
|
|
|
|
// Strict Type Checks
|
|
{
|
|
Name: "strict",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// Though this affects semantic diagnostics, affectsSemanticDiagnostics is not set here
|
|
// The value of each strictFlag depends on own strictFlag value or this and never accessed directly.
|
|
// But we need to store `strict` in builf info, even though it won't be examined directly, so that the
|
|
// flags it controls (e.g. `strictNullChecks`) will be retrieved correctly
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Enable_all_strict_type_checking_options,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noImplicitAny",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
{
|
|
Name: "strictNullChecks",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.When_type_checking_take_into_account_null_and_undefined,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
{
|
|
Name: "strictFunctionTypes",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
{
|
|
Name: "strictBindCallApply",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
{
|
|
Name: "strictPropertyInitialization",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
{
|
|
Name: "strictBuiltinIteratorReturn",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
{
|
|
Name: "noImplicitThis",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Enable_error_reporting_when_this_is_given_the_type_any,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
{
|
|
Name: "useUnknownInCatchVariables",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Default_catch_clause_variables_as_unknown_instead_of_any,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
{
|
|
Name: "alwaysStrict",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSourceFile: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
strictFlag: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Ensure_use_strict_is_always_emitted,
|
|
DefaultValueDescription: diagnostics.X_false_unless_strict_is_set,
|
|
},
|
|
|
|
// Additional Checks
|
|
{
|
|
Name: "noUnusedLocals",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Enable_error_reporting_when_local_variables_aren_t_read,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noUnusedParameters",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Raise_an_error_when_a_function_parameter_isn_t_read,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "exactOptionalPropertyTypes",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noImplicitReturns",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noFallthroughCasesInSwitch",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsBindDiagnostics: true,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noUncheckedIndexedAccess",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Add_undefined_to_a_type_when_accessed_using_an_index,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noImplicitOverride",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noPropertyAccessFromIndexSignature",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: false,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type,
|
|
DefaultValueDescription: false,
|
|
},
|
|
|
|
// Module Resolution
|
|
{
|
|
Name: "moduleResolution",
|
|
Kind: CommandLineOptionTypeEnum,
|
|
// new Map(Object.entries({
|
|
// // N.B. The first entry specifies the value shown in `tsc --init`
|
|
// node10: ModuleResolutionKind.Node10,
|
|
// node: ModuleResolutionKind.Node10,
|
|
// classic: ModuleResolutionKind.Classic,
|
|
// node16: ModuleResolutionKind.Node16,
|
|
// nodenext: ModuleResolutionKind.NodeNext,
|
|
// bundler: ModuleResolutionKind.Bundler,
|
|
// })),
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,
|
|
DefaultValueDescription: diagnostics.X_module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node,
|
|
},
|
|
{
|
|
Name: "baseUrl",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsModuleResolution: true,
|
|
IsFilePath: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Specify_the_base_directory_to_resolve_non_relative_module_names,
|
|
},
|
|
{
|
|
// this option can only be specified in tsconfig.json
|
|
// use type = object to copy the value as-is
|
|
Name: "paths",
|
|
Kind: CommandLineOptionTypeObject,
|
|
AffectsModuleResolution: true,
|
|
allowConfigDirTemplateSubstitution: true,
|
|
IsTSConfigOnly: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations,
|
|
transpileOptionValue: core.TSUnknown,
|
|
},
|
|
{
|
|
// this option can only be specified in tsconfig.json
|
|
// use type = object to copy the value as-is
|
|
Name: "rootDirs",
|
|
Kind: CommandLineOptionTypeList,
|
|
IsTSConfigOnly: true,
|
|
AffectsModuleResolution: true,
|
|
allowConfigDirTemplateSubstitution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules,
|
|
transpileOptionValue: core.TSUnknown,
|
|
DefaultValueDescription: diagnostics.Computed_from_the_list_of_input_files,
|
|
},
|
|
{
|
|
Name: "typeRoots",
|
|
Kind: CommandLineOptionTypeList,
|
|
AffectsModuleResolution: true,
|
|
allowConfigDirTemplateSubstitution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types,
|
|
},
|
|
{
|
|
Name: "types",
|
|
Kind: CommandLineOptionTypeList,
|
|
AffectsProgramStructure: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file,
|
|
transpileOptionValue: core.TSUnknown,
|
|
},
|
|
{
|
|
Name: "allowSyntheticDefaultImports",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Interop_Constraints,
|
|
Description: diagnostics.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export,
|
|
DefaultValueDescription: diagnostics.X_module_system_or_esModuleInterop,
|
|
},
|
|
{
|
|
Name: "esModuleInterop",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
ShowInSimplifiedHelpView: true,
|
|
Category: diagnostics.Interop_Constraints,
|
|
Description: diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "preserveSymlinks",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Interop_Constraints,
|
|
Description: diagnostics.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "allowUmdGlobalAccess",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Allow_accessing_UMD_globals_from_modules,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "moduleSuffixes",
|
|
Kind: CommandLineOptionTypeList,
|
|
listPreserveFalsyValues: true,
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.List_of_file_name_suffixes_to_search_when_resolving_a_module,
|
|
},
|
|
{
|
|
Name: "allowImportingTsExtensions",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set,
|
|
DefaultValueDescription: false,
|
|
transpileOptionValue: core.TSUnknown,
|
|
},
|
|
{
|
|
Name: "rewriteRelativeImportExtensions",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "resolvePackageJsonExports",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Use_the_package_json_exports_field_when_resolving_package_imports,
|
|
DefaultValueDescription: diagnostics.X_true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false,
|
|
},
|
|
{
|
|
Name: "resolvePackageJsonImports",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Use_the_package_json_imports_field_when_resolving_imports,
|
|
DefaultValueDescription: diagnostics.X_true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false,
|
|
},
|
|
{
|
|
Name: "customConditions",
|
|
Kind: CommandLineOptionTypeList,
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports,
|
|
},
|
|
{
|
|
Name: "noUncheckedSideEffectImports",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Check_side_effect_imports,
|
|
DefaultValueDescription: false,
|
|
},
|
|
|
|
// Source Maps
|
|
{
|
|
Name: "sourceRoot",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Specify_the_root_path_for_debuggers_to_find_the_reference_source_code,
|
|
},
|
|
{
|
|
Name: "mapRoot",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations,
|
|
},
|
|
{
|
|
Name: "inlineSources",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript,
|
|
DefaultValueDescription: false,
|
|
},
|
|
|
|
// Experimental
|
|
{
|
|
Name: "experimentalDecorators",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Enable_experimental_support_for_legacy_experimental_decorators,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "emitDecoratorMetadata",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files,
|
|
DefaultValueDescription: false,
|
|
},
|
|
|
|
// Advanced
|
|
{
|
|
Name: "jsxFactory",
|
|
Kind: CommandLineOptionTypeString,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h,
|
|
DefaultValueDescription: "`React.createElement`",
|
|
},
|
|
{
|
|
Name: "jsxFragmentFactory",
|
|
Kind: CommandLineOptionTypeString,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment,
|
|
DefaultValueDescription: "React.Fragment",
|
|
},
|
|
{
|
|
Name: "jsxImportSource",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
AffectsModuleResolution: true,
|
|
AffectsSourceFile: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk,
|
|
DefaultValueDescription: "react",
|
|
},
|
|
{
|
|
Name: "resolveJsonModule",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Enable_importing_json_files,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "allowArbitraryExtensions",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsProgramStructure: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,
|
|
DefaultValueDescription: false,
|
|
},
|
|
|
|
{
|
|
Name: "reactNamespace",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit,
|
|
DefaultValueDescription: "`React`",
|
|
},
|
|
{
|
|
Name: "skipDefaultLibCheck",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// We need to store these to determine whether `lib` files need to be rechecked
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Completeness,
|
|
Description: diagnostics.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "emitBOM",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "newLine",
|
|
Kind: CommandLineOptionTypeEnum, // newLineOptionMap,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Set_the_newline_character_for_emitting_files,
|
|
DefaultValueDescription: "lf",
|
|
},
|
|
{
|
|
Name: "noErrorTruncation",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Output_Formatting,
|
|
Description: diagnostics.Disable_truncating_types_in_error_messages,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noLib",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
Category: diagnostics.Language_and_Environment,
|
|
AffectsProgramStructure: true,
|
|
Description: diagnostics.Disable_including_any_library_files_including_the_default_lib_d_ts,
|
|
// We are not returning a sourceFile for lib file when asked by the program,
|
|
// so pass --noLib to avoid reporting a file not found error.
|
|
transpileOptionValue: core.TSTrue,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noResolve",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.Modules,
|
|
Description: diagnostics.Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project,
|
|
// We are not doing a full typecheck, we are not resolving the whole context,
|
|
// so pass --noResolve to avoid reporting missing file errors.
|
|
transpileOptionValue: core.TSTrue,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "stripInternal",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "disableSizeLimit",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsProgramStructure: true,
|
|
Category: diagnostics.Editor_Support,
|
|
Description: diagnostics.Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "disableSourceOfProjectReferenceRedirect",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
IsTSConfigOnly: true,
|
|
Category: diagnostics.Projects,
|
|
Description: diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "disableSolutionSearching",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
IsTSConfigOnly: true,
|
|
Category: diagnostics.Projects,
|
|
Description: diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "disableReferencedProjectLoad",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
IsTSConfigOnly: true,
|
|
Category: diagnostics.Projects,
|
|
Description: diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noEmitHelpers",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Disable_generating_custom_helper_functions_like_extends_in_compiled_output,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "noEmitOnError",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
transpileOptionValue: core.TSUnknown,
|
|
Description: diagnostics.Disable_emitting_files_if_any_type_checking_errors_are_reported,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "preserveConstEnums",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Emit,
|
|
Description: diagnostics.Disable_erasing_const_enum_declarations_in_generated_code,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "declarationDir",
|
|
Kind: CommandLineOptionTypeString,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
AffectsDeclarationPath: true,
|
|
IsFilePath: true,
|
|
Category: diagnostics.Emit,
|
|
transpileOptionValue: core.TSUnknown,
|
|
Description: diagnostics.Specify_the_output_directory_for_generated_declaration_files,
|
|
},
|
|
{
|
|
Name: "skipLibCheck",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
// We need to store these to determine whether `lib` files need to be rechecked
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Completeness,
|
|
Description: diagnostics.Skip_type_checking_all_d_ts_files,
|
|
DefaultValueDescription: false,
|
|
},
|
|
{
|
|
Name: "allowUnusedLabels",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsBindDiagnostics: true,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Disable_error_reporting_for_unused_labels,
|
|
DefaultValueDescription: core.TSUnknown,
|
|
},
|
|
{
|
|
Name: "allowUnreachableCode",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsBindDiagnostics: true,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Type_Checking,
|
|
Description: diagnostics.Disable_error_reporting_for_unreachable_code,
|
|
DefaultValueDescription: core.TSUnknown,
|
|
},
|
|
{
|
|
Name: "forceConsistentCasingInFileNames",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.Interop_Constraints,
|
|
Description: diagnostics.Ensure_that_casing_is_correct_in_imports,
|
|
DefaultValueDescription: true,
|
|
},
|
|
{
|
|
Name: "maxNodeModuleJsDepth",
|
|
Kind: CommandLineOptionTypeNumber,
|
|
AffectsModuleResolution: true,
|
|
Category: diagnostics.JavaScript_Support,
|
|
Description: diagnostics.Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs,
|
|
DefaultValueDescription: 0,
|
|
},
|
|
{
|
|
Name: "useDefineForClassFields",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsSemanticDiagnostics: true,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Language_and_Environment,
|
|
Description: diagnostics.Emit_ECMAScript_standard_compliant_class_fields,
|
|
DefaultValueDescription: diagnostics.X_true_for_ES2022_and_above_including_ESNext,
|
|
},
|
|
{
|
|
Name: "preserveValueImports",
|
|
Kind: CommandLineOptionTypeBoolean,
|
|
AffectsEmit: true,
|
|
AffectsBuildInfo: true,
|
|
Category: diagnostics.Backwards_Compatibility,
|
|
Description: diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,
|
|
DefaultValueDescription: false,
|
|
},
|
|
|
|
{
|
|
// A list of plugins to load in the language service
|
|
Name: "plugins",
|
|
Kind: CommandLineOptionTypeList,
|
|
IsTSConfigOnly: true,
|
|
Description: diagnostics.Specify_a_list_of_language_service_plugins_to_include,
|
|
Category: diagnostics.Editor_Support,
|
|
},
|
|
{
|
|
Name: "moduleDetection",
|
|
Kind: CommandLineOptionTypeEnum,
|
|
AffectsSourceFile: true,
|
|
AffectsModuleResolution: true,
|
|
Description: diagnostics.Control_what_method_is_used_to_detect_module_format_JS_files,
|
|
Category: diagnostics.Language_and_Environment,
|
|
DefaultValueDescription: diagnostics.X_auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules,
|
|
},
|
|
{
|
|
Name: "ignoreDeprecations",
|
|
Kind: CommandLineOptionTypeString,
|
|
DefaultValueDescription: core.TSUnknown,
|
|
},
|
|
}
|
|
|
|
var optionsType = reflect.TypeFor[core.CompilerOptions]()
|
|
|
|
func optionsHaveChanges(oldOptions *core.CompilerOptions, newOptions *core.CompilerOptions, declFilter func(*CommandLineOption) bool) bool {
|
|
if oldOptions == newOptions {
|
|
return false
|
|
}
|
|
if oldOptions == nil || newOptions == nil {
|
|
return true
|
|
}
|
|
oldOptionsValue := reflect.ValueOf(oldOptions).Elem()
|
|
return ForEachCompilerOptionValue(newOptions, declFilter, func(option *CommandLineOption, value reflect.Value, i int) bool {
|
|
newValue := value.Interface()
|
|
oldValue := oldOptionsValue.Field(i).Interface()
|
|
if option.strictFlag {
|
|
return oldOptions.GetStrictOptionValue(oldValue.(core.Tristate)) != newOptions.GetStrictOptionValue(newValue.(core.Tristate))
|
|
}
|
|
if option.allowJsFlag {
|
|
return oldOptions.GetAllowJS() != newOptions.GetAllowJS()
|
|
}
|
|
return !reflect.DeepEqual(newValue, oldValue)
|
|
})
|
|
}
|
|
|
|
func ForEachCompilerOptionValue(options *core.CompilerOptions, declFilter func(*CommandLineOption) bool, fn func(option *CommandLineOption, value reflect.Value, i int) bool) bool {
|
|
optionsValue := reflect.ValueOf(options).Elem()
|
|
for i := range optionsValue.NumField() {
|
|
field := optionsType.Field(i)
|
|
if !field.IsExported() {
|
|
continue
|
|
}
|
|
if optionDeclaration := CommandLineCompilerOptionsMap.Get(field.Name); optionDeclaration != nil && declFilter(optionDeclaration) {
|
|
if fn(optionDeclaration, optionsValue.Field(i), i) {
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func CompilerOptionsAffectSemanticDiagnostics(
|
|
oldOptions *core.CompilerOptions,
|
|
newOptions *core.CompilerOptions,
|
|
) bool {
|
|
return optionsHaveChanges(oldOptions, newOptions, func(option *CommandLineOption) bool {
|
|
return option.AffectsSemanticDiagnostics
|
|
})
|
|
}
|
|
|
|
func CompilerOptionsAffectDeclarationPath(
|
|
oldOptions *core.CompilerOptions,
|
|
newOptions *core.CompilerOptions,
|
|
) bool {
|
|
return optionsHaveChanges(oldOptions, newOptions, func(option *CommandLineOption) bool {
|
|
return option.AffectsDeclarationPath
|
|
})
|
|
}
|
|
|
|
func CompilerOptionsAffectEmit(oldOptions *core.CompilerOptions, newOptions *core.CompilerOptions) bool {
|
|
return optionsHaveChanges(oldOptions, newOptions, func(option *CommandLineOption) bool {
|
|
return option.AffectsEmit
|
|
})
|
|
}
|