{"action":"created","issue":{"url":"https://api.github.com/repos/TypeStrong/ts-node/issues/44","labels_url":"https://api.github.com/repos/TypeStrong/ts-node/issues/44/labels{/name}","comments_url":"https://api.github.com/repos/TypeStrong/ts-node/issues/44/comments","events_url":"https://api.github.com/repos/TypeStrong/ts-node/issues/44/events","html_url":"https://github.com/TypeStrong/ts-node/issues/44","id":120090433,"number":44,"title":"TypeScript Node 1.0","user":{"login":"blakeembrey","id":1088987,"avatar_url":"https://avatars.githubusercontent.com/u/1088987?v=3","gravatar_id":"","url":"https://api.github.com/users/blakeembrey","html_url":"https://github.com/blakeembrey","followers_url":"https://api.github.com/users/blakeembrey/followers","following_url":"https://api.github.com/users/blakeembrey/following{/other_user}","gists_url":"https://api.github.com/users/blakeembrey/gists{/gist_id}","starred_url":"https://api.github.com/users/blakeembrey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blakeembrey/subscriptions","organizations_url":"https://api.github.com/users/blakeembrey/orgs","repos_url":"https://api.github.com/users/blakeembrey/repos","events_url":"https://api.github.com/users/blakeembrey/events{/privacy}","received_events_url":"https://api.github.com/users/blakeembrey/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/TypeStrong/ts-node/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-12-03T04:06:07Z","updated_at":"2015-12-03T04:24:44Z","closed_at":null,"body":"From the issues I've seen logged thus far, I'm looking at rewriting `ts-node` into something that can suit more people. Here's some of the points that need covering for 1.0. Comments are appreciated.\r\n\r\n* The goal is to be fast and production-ready out of the box (breaking change)\r\n  * This means no type information, because that requires loading the entire project into memory\r\n  * All files will transpile directly, in-memory using TypeScript `transpileModule`\r\n  * Can enable a cache directory for a simple speed up\r\n* One level up, semi-production ready, is the `--typed` flag\r\n  * This transpiles the entire project and caches it **once** on startup\r\n  * This has type information, but only for things in the initial project/`require` - subsequent requires of TypeScript files would fall back to the first point\r\n* The next level, non production ready, is the `--fully-typed` flag\r\n  * This is basically the current version of `ts-node`, suitable for a test suite\r\n  * Everything needs to be in-memory because `require` can be \"out-of-band\". E.g. `.ts` -> `.js` -> `.ts`, not possible to handle by just the TypeScript compiler\r\n  * We can think about way to fix this \"out of band\" require issue, but I believe changed files should always be re-loaded correctly (E.g. watching a test suite should get new diagnostics without re-compiling everything) /cc @basarat Any thoughts on this point? Maybe a way to serialize the compiler state in some form?\r\n* The project flag is disabled by default (still considering this)\r\n  * Enable ability to specify directory or file\r\n* Compiler option flag - specify TypeScript compiler options via JSON\r\n* All flags should have an environment variable for environments that can't specific CLI flags - E.g. Gulp, Grunt, etc.\r\n"},"comment":{"url":"https://api.github.com/repos/TypeStrong/ts-node/issues/comments/161511079","html_url":"https://github.com/TypeStrong/ts-node/issues/44#issuecomment-161511079","issue_url":"https://api.github.com/repos/TypeStrong/ts-node/issues/44","id":161511079,"user":{"login":"basarat","id":874898,"avatar_url":"https://avatars.githubusercontent.com/u/874898?v=3","gravatar_id":"","url":"https://api.github.com/users/basarat","html_url":"https://github.com/basarat","followers_url":"https://api.github.com/users/basarat/followers","following_url":"https://api.github.com/users/basarat/following{/other_user}","gists_url":"https://api.github.com/users/basarat/gists{/gist_id}","starred_url":"https://api.github.com/users/basarat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basarat/subscriptions","organizations_url":"https://api.github.com/users/basarat/orgs","repos_url":"https://api.github.com/users/basarat/repos","events_url":"https://api.github.com/users/basarat/events{/privacy}","received_events_url":"https://api.github.com/users/basarat/received_events","type":"User","site_admin":false},"created_at":"2015-12-03T04:24:44Z","updated_at":"2015-12-03T04:24:44Z","body":"> The goal is to be fast and production-ready out of the box (breaking change)\r\n\r\n:100:  for this.  People can have their (IDE | `tsc -w`) provide errors :rose:"}}