{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/TypeScript/pulls/comments/23258564","id":23258564,"diff_hunk":"@@ -146,131 +173,176 @@ module ts {\n             return sys.exit(EmitReturnStatus.CompilerOptionsErrors);\r\n         }\r\n \r\n-        if (compilerOptions.version) {\r\n+        if (commandLine.options.version) {\r\n             reportDiagnostic(createCompilerDiagnostic(Diagnostics.Version_0, version));\r\n             return sys.exit(EmitReturnStatus.Succeeded);\r\n         }\r\n \r\n-        if (compilerOptions.help) {\r\n+        if (commandLine.options.help) {\r\n             printVersion();\r\n             printHelp();\r\n             return sys.exit(EmitReturnStatus.Succeeded);\r\n         }\r\n \r\n-        if (commandLine.filenames.length === 0) {\r\n+        if (commandLine.options.project) {\r\n+            configFilename = normalizePath(combinePaths(commandLine.options.project, \"tsconfig.json\"));\r\n+            if (commandLine.filenames.length !== 0) {\r\n+                reportDiagnostic(createCompilerDiagnostic(Diagnostics.Option_project_cannot_be_mixed_with_source_files_on_a_command_line));\r\n+                return sys.exit(EmitReturnStatus.CompilerOptionsErrors);\r\n+            }\r\n+        }\r\n+        else if (commandLine.filenames.length === 0) {\r\n+            configFilename = findConfigFile();\r\n+        }\r\n+\r\n+        if (commandLine.filenames.length === 0 && !configFilename) {\r\n             printVersion();\r\n             printHelp();\r\n             return sys.exit(EmitReturnStatus.CompilerOptionsErrors);\r\n         }\r\n \r\n-        var defaultCompilerHost = createCompilerHost(compilerOptions);\r\n-        \r\n-        if (compilerOptions.watch) {\r\n+        if (commandLine.options.watch) {\r\n             if (!sys.watchFile) {\r\n                 reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_current_host_does_not_support_the_0_option, \"--watch\"));\r\n                 return sys.exit(EmitReturnStatus.CompilerOptionsErrors);\r\n             }\r\n-\r\n-            watchProgram(commandLine, defaultCompilerHost);\r\n-        }\r\n-        else {\r\n-            var result = compile(commandLine, defaultCompilerHost).exitStatus\r\n-            return sys.exit(result);\r\n-        }\r\n-    }\r\n-\r\n-    /**\r\n-     * Compiles the program once, and then watches all given and referenced files for changes.\r\n-     * Upon detecting a file change, watchProgram will queue up file modification events for the next\r\n-     * 250ms and then perform a recompilation. The reasoning is that in some cases, an editor can\r\n-     * save all files at once, and we'd like to just perform a single recompilation.\r\n-     */\r\n-    function watchProgram(commandLine: ParsedCommandLine, compilerHost: CompilerHost): void {\r\n-        var watchers: Map<FileWatcher> = {};\r\n-        var updatedFiles: Map<boolean> = {};\r\n-\r\n-        // Compile the program the first time and watch all given/referenced files.\r\n-        var program = compile(commandLine, compilerHost).program;\r\n-        reportDiagnostic(createCompilerDiagnostic(Diagnostics.Compilation_complete_Watching_for_file_changes));\r\n-        addWatchers(program);\r\n-        return;\r\n-\r\n-        function addWatchers(program: Program) {\r\n-            forEach(program.getSourceFiles(), f => {\r\n-                var filename = getCanonicalName(f.filename);\r\n-                watchers[filename] = sys.watchFile(filename, fileUpdated);\r\n-            });\r\n+            if (configFilename) {\r\n+                configFileWatcher = sys.watchFile(configFilename, configFileChanged);\r\n+            }\r\n         }\r\n \r\n-        function removeWatchers(program: Program) {\r\n-            forEach(program.getSourceFiles(), f => {\r\n-                var filename = getCanonicalName(f.filename);\r\n-                if (hasProperty(watchers, filename)) {\r\n-                    watchers[filename].close();\r\n+        performCompilation();\r\n+\r\n+        // Invoked to perform initial compilation or re-compilation in watch mode\r\n+        function performCompilation() {\r\n+\r\n+            if (!cachedSourceFiles) {\r\n+                if (configFilename) {\r\n+                    var configObject = readConfigFile(configFilename);\r\n+                    if (!configObject) {\r\n+                        reportDiagnostic(createCompilerDiagnostic(Diagnostics.Unable_to_open_file_0, configFilename));\r\n+                        return sys.exit(EmitReturnStatus.CompilerOptionsErrors);\r\n+                    }\r\n+                    var configParseResult = parseConfigFile(configObject, getDirectoryPath(configFilename));\r\n+                    if (configParseResult.errors.length > 0) {\r\n+                        reportDiagnostics(configParseResult.errors);\r\n+                        return sys.exit(EmitReturnStatus.CompilerOptionsErrors);\r\n+                    }\r\n+                    rootFilenames = configParseResult.filenames;\r\n+                    compilerOptions = extend(commandLine.options, configParseResult.options);\r\n                 }\r\n-            });\r\n+                else {\r\n+                    rootFilenames = commandLine.filenames;\r\n+                    compilerOptions = commandLine.options;\r\n+                }\r\n+                compilerHost = createCompilerHost(compilerOptions);\r\n+                hostGetSourceFile = compilerHost.getSourceFile;\r\n+                compilerHost.getSourceFile = getSourceFile;\r\n+            }\r\n \r\n-            watchers = {};\r\n-        }\r\n+            var compileResult = compile(rootFilenames, compilerOptions, compilerHost);\r\n \r\n-        // Fired off whenever a file is changed.\r\n-        function fileUpdated(filename: string) {\r\n-            var firstNotification = isEmpty(updatedFiles);\r\n-            updatedFiles[getCanonicalName(filename)] = true;\r\n+            if (!commandLine.options.watch) {\r\n+                return sys.exit(compileResult.exitStatus);\r\n+            }\r\n \r\n-            // Only start this off when the first file change comes in,\r\n-            // so that we can batch up all further changes.\r\n-            if (firstNotification) {\r\n-                setTimeout(() => {\r\n-                    var changedFiles = updatedFiles;\r\n-                    updatedFiles = {};\r\n+            updateSourceFileCache(compileResult.program.getSourceFiles());\r\n+            reportDiagnostic(createCompilerDiagnostic(Diagnostics.Compilation_complete_Watching_for_file_changes));\r\n+        }\r\n \r\n-                    recompile(changedFiles);\r\n-                }, 250);\r\n+        function getSourceFile(filename: string, languageVersion: ScriptTarget, onError ?: (message: string) => void) {\r\n+            // Return existing SourceFile object if one is available\r\n+            if (cachedSourceFiles) {\r","path":"src/compiler/tsc.ts","position":194,"original_position":194,"commit_id":"25e52a3975bfb7774323931bc1b5b7b438622dfa","original_commit_id":"25e52a3975bfb7774323931bc1b5b7b438622dfa","user":{"login":"JsonFreeman","id":8052525,"avatar_url":"https://avatars.githubusercontent.com/u/8052525?v=3","gravatar_id":"","url":"https://api.github.com/users/JsonFreeman","html_url":"https://github.com/JsonFreeman","followers_url":"https://api.github.com/users/JsonFreeman/followers","following_url":"https://api.github.com/users/JsonFreeman/following{/other_user}","gists_url":"https://api.github.com/users/JsonFreeman/gists{/gist_id}","starred_url":"https://api.github.com/users/JsonFreeman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JsonFreeman/subscriptions","organizations_url":"https://api.github.com/users/JsonFreeman/orgs","repos_url":"https://api.github.com/users/JsonFreeman/repos","events_url":"https://api.github.com/users/JsonFreeman/events{/privacy}","received_events_url":"https://api.github.com/users/JsonFreeman/received_events","type":"User","site_admin":false},"body":"And then cacheSourceFile becomes watchSourceFile","created_at":"2015-01-20T21:42:19Z","updated_at":"2015-01-20T21:42:19Z","html_url":"https://github.com/Microsoft/TypeScript/pull/1692#discussion_r23258564","pull_request_url":"https://api.github.com/repos/Microsoft/TypeScript/pulls/1692","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/TypeScript/pulls/comments/23258564"},"html":{"href":"https://github.com/Microsoft/TypeScript/pull/1692#discussion_r23258564"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/TypeScript/pulls/1692"}}},"pull_request":{"url":"https://api.github.com/repos/Microsoft/TypeScript/pulls/1692","id":27479753,"html_url":"https://github.com/Microsoft/TypeScript/pull/1692","diff_url":"https://github.com/Microsoft/TypeScript/pull/1692.diff","patch_url":"https://github.com/Microsoft/TypeScript/pull/1692.patch","issue_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/1692","number":1692,"state":"open","locked":false,"title":"Support for tsconfig.json files","user":{"login":"ahejlsberg","id":4226954,"avatar_url":"https://avatars.githubusercontent.com/u/4226954?v=3","gravatar_id":"","url":"https://api.github.com/users/ahejlsberg","html_url":"https://github.com/ahejlsberg","followers_url":"https://api.github.com/users/ahejlsberg/followers","following_url":"https://api.github.com/users/ahejlsberg/following{/other_user}","gists_url":"https://api.github.com/users/ahejlsberg/gists{/gist_id}","starred_url":"https://api.github.com/users/ahejlsberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahejlsberg/subscriptions","organizations_url":"https://api.github.com/users/ahejlsberg/orgs","repos_url":"https://api.github.com/users/ahejlsberg/repos","events_url":"https://api.github.com/users/ahejlsberg/events{/privacy}","received_events_url":"https://api.github.com/users/ahejlsberg/received_events","type":"User","site_admin":false},"body":"This PR implements #1667 with some modifications.\r\n\r\nThe presence of a tsconfig.json file in a directory indicates that the directory is the root of a TypeScript project. The tsconfig.json file specifies the root files and the compiler options required to compile the project. A project is compiled in one of the following ways:\r\n\r\n* By invoking tsc with no input files, in which case the compiler searches for the tsconfig.json file starting in the current directory and continuing up the parent directory chain.\r\n* By invoking tsc with no input files and a `-project` (or just `-p`) command line option that specifies the path of a directory containing a tsconfig.json file.\r\n\r\nWhen input files are specified on the command line, tsconfig.json files are ignored.\r\n\r\nAn example tsconfig.json file:\r\n```json\r\n{\r\n    \"compilerOptions\": {\r\n        \"module\": \"commonjs\",\r\n        \"noImplicitAny\": true,\r\n        \"removeComments\": true,\r\n        \"preserveConstEnums\": true,\r\n        \"out\": \"../../built/local/tsc.js\",\r\n        \"sourceMap\": true,\r\n    },\r\n    \"files\": [\r\n        \"core.ts\",\r\n        \"sys.ts\",\r\n        \"types.ts\",\r\n        \"scanner.ts\",\r\n        \"parser.ts\",\r\n        \"utilities.ts\",\r\n        \"binder.ts\",\r\n        \"checker.ts\",\r\n        \"emitter.ts\",\r\n        \"program.ts\",\r\n        \"commandLineParser.ts\",\r\n        \"tsc.ts\",\r\n        \"diagnosticInformationMap.generated.ts\"\r\n    ]\r\n}\r\n```\r\nThe `\"compilerOptions\"` property can be omitted, in which case the compiler's defaults are used.\r\n\r\nIf no `\"files\"` property is present in a tsconfig.json, the compiler defaults to including all files the containing directory and subdirectories. When a `\"files\"` property is specified, only those files are included.\r\n\r\nA tsconfig.json file is permitted to be completely empty, which compiles all files in the containing directory and subdirectories with the default compiler options.\r\n\r\nCompiler options specified on the command line override those specified in the tsconfig.json file.","created_at":"2015-01-16T02:13:38Z","updated_at":"2015-01-20T21:42:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c2a9902a90fbdb82b01b8e6efd692a16b2f6f15f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Microsoft/TypeScript/pulls/1692/commits","review_comments_url":"https://api.github.com/repos/Microsoft/TypeScript/pulls/1692/comments","review_comment_url":"https://api.github.com/repos/Microsoft/TypeScript/pulls/comments/{number}","comments_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/1692/comments","statuses_url":"https://api.github.com/repos/Microsoft/TypeScript/statuses/25e52a3975bfb7774323931bc1b5b7b438622dfa","head":{"label":"Microsoft:tsconfig","ref":"tsconfig","sha":"25e52a3975bfb7774323931bc1b5b7b438622dfa","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":20929025,"name":"TypeScript","full_name":"Microsoft/TypeScript","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/TypeScript","description":"TypeScript is a superset of JavaScript that compiles to clean JavaScript output.","fork":false,"url":"https://api.github.com/repos/Microsoft/TypeScript","forks_url":"https://api.github.com/repos/Microsoft/TypeScript/forks","keys_url":"https://api.github.com/repos/Microsoft/TypeScript/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/TypeScript/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/TypeScript/teams","hooks_url":"https://api.github.com/repos/Microsoft/TypeScript/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/TypeScript/events","assignees_url":"https://api.github.com/repos/Microsoft/TypeScript/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/TypeScript/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/TypeScript/tags","blobs_url":"https://api.github.com/repos/Microsoft/TypeScript/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/TypeScript/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/TypeScript/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/TypeScript/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/TypeScript/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/TypeScript/languages","stargazers_url":"https://api.github.com/repos/Microsoft/TypeScript/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/TypeScript/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/TypeScript/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/TypeScript/subscription","commits_url":"https://api.github.com/repos/Microsoft/TypeScript/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/TypeScript/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/TypeScript/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/comments/{number}","contents_url":"https://api.github.com/repos/Microsoft/TypeScript/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/TypeScript/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/TypeScript/merges","archive_url":"https://api.github.com/repos/Microsoft/TypeScript/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/TypeScript/downloads","issues_url":"https://api.github.com/repos/Microsoft/TypeScript/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/TypeScript/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/TypeScript/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/TypeScript/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/TypeScript/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/TypeScript/releases{/id}","created_at":"2014-06-17T15:28:39Z","updated_at":"2015-01-20T17:23:06Z","pushed_at":"2015-01-20T21:15:26Z","git_url":"git://github.com/Microsoft/TypeScript.git","ssh_url":"git@github.com:Microsoft/TypeScript.git","clone_url":"https://github.com/Microsoft/TypeScript.git","svn_url":"https://github.com/Microsoft/TypeScript","homepage":"http://www.typescriptlang.org","size":455227,"stargazers_count":3292,"watchers_count":3292,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":286,"mirror_url":null,"open_issues_count":429,"forks":286,"open_issues":429,"watchers":3292,"default_branch":"master"}},"base":{"label":"Microsoft:master","ref":"master","sha":"1e8e65c8396c29403023ad52bf3501f13b08f3f4","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":20929025,"name":"TypeScript","full_name":"Microsoft/TypeScript","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/TypeScript","description":"TypeScript is a superset of JavaScript that compiles to clean JavaScript output.","fork":false,"url":"https://api.github.com/repos/Microsoft/TypeScript","forks_url":"https://api.github.com/repos/Microsoft/TypeScript/forks","keys_url":"https://api.github.com/repos/Microsoft/TypeScript/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/TypeScript/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/TypeScript/teams","hooks_url":"https://api.github.com/repos/Microsoft/TypeScript/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/TypeScript/events","assignees_url":"https://api.github.com/repos/Microsoft/TypeScript/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/TypeScript/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/TypeScript/tags","blobs_url":"https://api.github.com/repos/Microsoft/TypeScript/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/TypeScript/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/TypeScript/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/TypeScript/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/TypeScript/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/TypeScript/languages","stargazers_url":"https://api.github.com/repos/Microsoft/TypeScript/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/TypeScript/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/TypeScript/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/TypeScript/subscription","commits_url":"https://api.github.com/repos/Microsoft/TypeScript/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/TypeScript/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/TypeScript/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/comments/{number}","contents_url":"https://api.github.com/repos/Microsoft/TypeScript/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/TypeScript/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/TypeScript/merges","archive_url":"https://api.github.com/repos/Microsoft/TypeScript/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/TypeScript/downloads","issues_url":"https://api.github.com/repos/Microsoft/TypeScript/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/TypeScript/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/TypeScript/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/TypeScript/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/TypeScript/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/TypeScript/releases{/id}","created_at":"2014-06-17T15:28:39Z","updated_at":"2015-01-20T17:23:06Z","pushed_at":"2015-01-20T21:15:26Z","git_url":"git://github.com/Microsoft/TypeScript.git","ssh_url":"git@github.com:Microsoft/TypeScript.git","clone_url":"https://github.com/Microsoft/TypeScript.git","svn_url":"https://github.com/Microsoft/TypeScript","homepage":"http://www.typescriptlang.org","size":455227,"stargazers_count":3292,"watchers_count":3292,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":286,"mirror_url":null,"open_issues_count":429,"forks":286,"open_issues":429,"watchers":3292,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/TypeScript/pulls/1692"},"html":{"href":"https://github.com/Microsoft/TypeScript/pull/1692"},"issue":{"href":"https://api.github.com/repos/Microsoft/TypeScript/issues/1692"},"comments":{"href":"https://api.github.com/repos/Microsoft/TypeScript/issues/1692/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/TypeScript/pulls/1692/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/TypeScript/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/TypeScript/pulls/1692/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/TypeScript/statuses/25e52a3975bfb7774323931bc1b5b7b438622dfa"}}}}