mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-17 11:24:29 -05:00
Merge branch 'master' into bom
Conflicts: src/compiler/commandLineParser.ts src/compiler/emitter.ts
This commit is contained in:
@@ -4,45 +4,132 @@
|
||||
/// <reference path="scanner.ts"/>
|
||||
|
||||
module ts {
|
||||
var shortOptionNames: Map<string> = {
|
||||
"d": "declaration",
|
||||
"h": "help",
|
||||
"m": "module",
|
||||
"o": "out",
|
||||
"t": "target",
|
||||
"v": "version",
|
||||
"w": "watch",
|
||||
};
|
||||
|
||||
var optionDeclarations: CommandLineOption[] = [
|
||||
{ name: "charset", type: "string" },
|
||||
{ name: "codepage", type: "number" },
|
||||
{ name: "declaration", type: "boolean" },
|
||||
{ name: "diagnostics", type: "boolean" },
|
||||
{ name: "generateBOM", type: "boolean" },
|
||||
{ name: "help", type: "boolean" },
|
||||
{ name: "locale", type: "string" },
|
||||
{ name: "mapRoot", type: "string" },
|
||||
{ name: "module", type: { "commonjs": ModuleKind.CommonJS, "amd": ModuleKind.AMD }, error: Diagnostics.Argument_for_module_option_must_be_commonjs_or_amd },
|
||||
{ name: "noImplicitAny", type: "boolean" },
|
||||
{ name: "noLib", type: "boolean" },
|
||||
{ name: "noLibCheck", type: "boolean" },
|
||||
{ name: "noResolve", type: "boolean" },
|
||||
{ name: "out", type: "string" },
|
||||
{ name: "outDir", type: "string" },
|
||||
{ name: "removeComments", type: "boolean" },
|
||||
{ name: "sourceMap", type: "boolean" },
|
||||
{ name: "sourceRoot", type: "string" },
|
||||
{ name: "target", type: { "es3": ScriptTarget.ES3, "es5": ScriptTarget.ES5 }, error: Diagnostics.Argument_for_target_option_must_be_es3_or_es5 },
|
||||
{ name: "version", type: "boolean" },
|
||||
{ name: "watch", type: "boolean" }
|
||||
export var optionDeclarations: CommandLineOption[] = [
|
||||
{
|
||||
name: "charset",
|
||||
type: "string",
|
||||
},
|
||||
{
|
||||
name: "codepage",
|
||||
type: "number",
|
||||
},
|
||||
{
|
||||
name: "declaration",
|
||||
shortName: "d",
|
||||
type: "boolean",
|
||||
description: Diagnostics.Generates_corresponding_d_ts_file,
|
||||
},
|
||||
{
|
||||
name: "diagnostics",
|
||||
type: "boolean",
|
||||
},
|
||||
{
|
||||
name: "generateBOM",
|
||||
type: "boolean"
|
||||
},
|
||||
{
|
||||
name: "help",
|
||||
shortName: "h",
|
||||
type: "boolean",
|
||||
description: Diagnostics.Print_this_message,
|
||||
},
|
||||
{
|
||||
name: "locale",
|
||||
type: "string",
|
||||
},
|
||||
{
|
||||
name: "mapRoot",
|
||||
type: "string",
|
||||
description: Diagnostics.Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations,
|
||||
paramType: Diagnostics.LOCATION,
|
||||
},
|
||||
{
|
||||
name: "module",
|
||||
shortName: "m",
|
||||
type: {
|
||||
"commonjs": ModuleKind.CommonJS,
|
||||
"amd": ModuleKind.AMD
|
||||
},
|
||||
description: Diagnostics.Specify_module_code_generation_Colon_commonjs_or_amd,
|
||||
paramType: Diagnostics.KIND,
|
||||
error: Diagnostics.Argument_for_module_option_must_be_commonjs_or_amd
|
||||
},
|
||||
{
|
||||
name: "noImplicitAny",
|
||||
type: "boolean",
|
||||
description: Diagnostics.Warn_on_expressions_and_declarations_with_an_implied_any_type,
|
||||
},
|
||||
{
|
||||
name: "noLib",
|
||||
type: "boolean",
|
||||
},
|
||||
{
|
||||
name: "noLibCheck",
|
||||
type: "boolean",
|
||||
},
|
||||
{
|
||||
name: "noResolve",
|
||||
type: "boolean",
|
||||
},
|
||||
{
|
||||
name: "out",
|
||||
type: "string",
|
||||
description: Diagnostics.Concatenate_and_emit_output_to_single_file,
|
||||
paramType: Diagnostics.FILE,
|
||||
},
|
||||
{
|
||||
name: "outDir",
|
||||
type: "string",
|
||||
description: Diagnostics.Redirect_output_structure_to_the_directory,
|
||||
paramType: Diagnostics.DIRECTORY,
|
||||
},
|
||||
{
|
||||
name: "removeComments",
|
||||
type: "boolean",
|
||||
description: Diagnostics.Do_not_emit_comments_to_output,
|
||||
},
|
||||
{
|
||||
name: "sourcemap",
|
||||
type: "boolean",
|
||||
description: Diagnostics.Generates_corresponding_map_file,
|
||||
},
|
||||
{
|
||||
name: "sourceRoot",
|
||||
type: "string",
|
||||
description: Diagnostics.Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations,
|
||||
paramType: Diagnostics.LOCATION,
|
||||
},
|
||||
{
|
||||
name: "target",
|
||||
shortName: "t",
|
||||
type: { "es3": ScriptTarget.ES3, "es5": ScriptTarget.ES5 },
|
||||
description: Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_or_ES5,
|
||||
paramType: Diagnostics.VERSION,
|
||||
error: Diagnostics.Argument_for_target_option_must_be_es3_or_es5
|
||||
},
|
||||
{
|
||||
name: "version",
|
||||
shortName: "v",
|
||||
type: "boolean",
|
||||
description: Diagnostics.Print_the_compiler_s_version,
|
||||
},
|
||||
{
|
||||
name: "watch",
|
||||
shortName: "w",
|
||||
type: "boolean",
|
||||
description: Diagnostics.Watch_input_files,
|
||||
}
|
||||
];
|
||||
|
||||
// Map command line switches to compiler options' property descriptors. Keys must be lower case spellings of command line switches.
|
||||
// The 'name' property specifies the property name in the CompilerOptions type. The 'type' property specifies the type of the option.
|
||||
var optionMap: Map<CommandLineOption> = {};
|
||||
var shortOptionNames: Map<string> = {};
|
||||
var optionNameMap: Map<CommandLineOption> = {};
|
||||
|
||||
forEach(optionDeclarations, option => {
|
||||
optionMap[option.name.toLowerCase()] = option;
|
||||
optionNameMap[option.name.toLowerCase()] = option;
|
||||
|
||||
if (option.shortName) {
|
||||
shortOptionNames[option.shortName] = option.name;
|
||||
}
|
||||
});
|
||||
|
||||
export function parseCommandLine(commandLine: string[]): ParsedCommandLine {
|
||||
@@ -76,8 +163,8 @@ module ts {
|
||||
s = shortOptionNames[s];
|
||||
}
|
||||
|
||||
if (hasProperty(optionMap, s)) {
|
||||
var opt = optionMap[s];
|
||||
if (hasProperty(optionNameMap, s)) {
|
||||
var opt = optionNameMap[s];
|
||||
|
||||
// Check to see if no argument was provided (e.g. "--locale" is the last command-line argument).
|
||||
if (!args[i] && opt.type !== "boolean") {
|
||||
|
||||
Reference in New Issue
Block a user