{"action":"created","issue":{"url":"https://api.github.com/repos/Polymer/polymer/issues/3954","repository_url":"https://api.github.com/repos/Polymer/polymer","labels_url":"https://api.github.com/repos/Polymer/polymer/issues/3954/labels{/name}","comments_url":"https://api.github.com/repos/Polymer/polymer/issues/3954/comments","events_url":"https://api.github.com/repos/Polymer/polymer/issues/3954/events","html_url":"https://github.com/Polymer/polymer/pull/3954","id":176821540,"number":3954,"title":"TypeScript decorators for defining Polymer elements","user":{"login":"justinfagnani","id":522948,"avatar_url":"https://avatars.githubusercontent.com/u/522948?v=3","gravatar_id":"","url":"https://api.github.com/users/justinfagnani","html_url":"https://github.com/justinfagnani","followers_url":"https://api.github.com/users/justinfagnani/followers","following_url":"https://api.github.com/users/justinfagnani/following{/other_user}","gists_url":"https://api.github.com/users/justinfagnani/gists{/gist_id}","starred_url":"https://api.github.com/users/justinfagnani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinfagnani/subscriptions","organizations_url":"https://api.github.com/users/justinfagnani/orgs","repos_url":"https://api.github.com/users/justinfagnani/repos","events_url":"https://api.github.com/users/justinfagnani/events{/privacy}","received_events_url":"https://api.github.com/users/justinfagnani/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Polymer/polymer/labels/cla:%20yes","name":"cla: yes","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"rictic","id":1659,"avatar_url":"https://avatars.githubusercontent.com/u/1659?v=3","gravatar_id":"","url":"https://api.github.com/users/rictic","html_url":"https://github.com/rictic","followers_url":"https://api.github.com/users/rictic/followers","following_url":"https://api.github.com/users/rictic/following{/other_user}","gists_url":"https://api.github.com/users/rictic/gists{/gist_id}","starred_url":"https://api.github.com/users/rictic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rictic/subscriptions","organizations_url":"https://api.github.com/users/rictic/orgs","repos_url":"https://api.github.com/users/rictic/repos","events_url":"https://api.github.com/users/rictic/events{/privacy}","received_events_url":"https://api.github.com/users/rictic/received_events","type":"User","site_admin":false},"assignees":[{"login":"rictic","id":1659,"avatar_url":"https://avatars.githubusercontent.com/u/1659?v=3","gravatar_id":"","url":"https://api.github.com/users/rictic","html_url":"https://github.com/rictic","followers_url":"https://api.github.com/users/rictic/followers","following_url":"https://api.github.com/users/rictic/following{/other_user}","gists_url":"https://api.github.com/users/rictic/gists{/gist_id}","starred_url":"https://api.github.com/users/rictic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rictic/subscriptions","organizations_url":"https://api.github.com/users/rictic/orgs","repos_url":"https://api.github.com/users/rictic/repos","events_url":"https://api.github.com/users/rictic/events{/privacy}","received_events_url":"https://api.github.com/users/rictic/received_events","type":"User","site_admin":false},{"login":"sorvell","id":78891,"avatar_url":"https://avatars.githubusercontent.com/u/78891?v=3","gravatar_id":"","url":"https://api.github.com/users/sorvell","html_url":"https://github.com/sorvell","followers_url":"https://api.github.com/users/sorvell/followers","following_url":"https://api.github.com/users/sorvell/following{/other_user}","gists_url":"https://api.github.com/users/sorvell/gists{/gist_id}","starred_url":"https://api.github.com/users/sorvell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sorvell/subscriptions","organizations_url":"https://api.github.com/users/sorvell/orgs","repos_url":"https://api.github.com/users/sorvell/repos","events_url":"https://api.github.com/users/sorvell/events{/privacy}","received_events_url":"https://api.github.com/users/sorvell/received_events","type":"User","site_admin":false}],"milestone":null,"comments":13,"created_at":"2016-09-14T05:55:32Z","updated_at":"2016-09-15T20:42:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Polymer/polymer/pulls/3954","html_url":"https://github.com/Polymer/polymer/pull/3954","diff_url":"https://github.com/Polymer/polymer/pull/3954.diff","patch_url":"https://github.com/Polymer/polymer/pull/3954.patch"},"body":"This adds `@customElement()`, `@property()`, `@observe()`, `@query()`, and `@queryAll()` decorator factories which let authors define elements with TypeScript classes using class properties.\r\n\r\n`@property` and `@observe` work by writing to a private configuration property and defining a static 'config' getter that returns that property for Polymer.\r\n\r\n`@query` and `@queryAll` are intended to replace `$` and `$$` in a way that's somewhat type-safe: by defining a field decorated with @query and with the right type annotation, TypeScript will know the return type of the query, eliminating the need for casts.\r\n\r\n`@customElement` simply defines the class, but it also sets `is` for use by Polymer.\r\n\r\nI added a test of a compiled TypeScript element. The dependency loading of the test isn't great, but brings relatively little tooling dependencies, it uses <script> tags to load and IMD for a module registry."},"comment":{"url":"https://api.github.com/repos/Polymer/polymer/issues/comments/247449705","html_url":"https://github.com/Polymer/polymer/pull/3954#issuecomment-247449705","issue_url":"https://api.github.com/repos/Polymer/polymer/issues/3954","id":247449705,"user":{"login":"justinfagnani","id":522948,"avatar_url":"https://avatars.githubusercontent.com/u/522948?v=3","gravatar_id":"","url":"https://api.github.com/users/justinfagnani","html_url":"https://github.com/justinfagnani","followers_url":"https://api.github.com/users/justinfagnani/followers","following_url":"https://api.github.com/users/justinfagnani/following{/other_user}","gists_url":"https://api.github.com/users/justinfagnani/gists{/gist_id}","starred_url":"https://api.github.com/users/justinfagnani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinfagnani/subscriptions","organizations_url":"https://api.github.com/users/justinfagnani/orgs","repos_url":"https://api.github.com/users/justinfagnani/repos","events_url":"https://api.github.com/users/justinfagnani/events{/privacy}","received_events_url":"https://api.github.com/users/justinfagnani/received_events","type":"User","site_admin":false},"created_at":"2016-09-15T20:42:51Z","updated_at":"2016-09-15T20:42:51Z","body":"@jfrazzano your discussion seems to be more about Polymer and HTML elements in general, rather than about this PR. Maybe the polymer-dev@googlegroups.com list would be a better venue for this, and you might find some people interested in picking up the thread with you. Let's try to keep the comments here on-topic. Thanks!"}}
{"actor":{"display_login":"justinfagnani"}}