{"action":"opened","issue":{"url":"https://api.github.com/repos/inversify/InversifyJS/issues/210","repository_url":"https://api.github.com/repos/inversify/InversifyJS","labels_url":"https://api.github.com/repos/inversify/InversifyJS/issues/210/labels{/name}","comments_url":"https://api.github.com/repos/inversify/InversifyJS/issues/210/comments","events_url":"https://api.github.com/repos/inversify/InversifyJS/issues/210/events","html_url":"https://github.com/inversify/InversifyJS/issues/210","id":155481926,"number":210,"title":"Investigate optional @injectable() annotations","user":{"login":"remojansen","id":10656223,"avatar_url":"https://avatars.githubusercontent.com/u/10656223?v=3","gravatar_id":"","url":"https://api.github.com/users/remojansen","html_url":"https://github.com/remojansen","followers_url":"https://api.github.com/users/remojansen/followers","following_url":"https://api.github.com/users/remojansen/following{/other_user}","gists_url":"https://api.github.com/users/remojansen/gists{/gist_id}","starred_url":"https://api.github.com/users/remojansen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/remojansen/subscriptions","organizations_url":"https://api.github.com/users/remojansen/orgs","repos_url":"https://api.github.com/users/remojansen/repos","events_url":"https://api.github.com/users/remojansen/events{/privacy}","received_events_url":"https://api.github.com/users/remojansen/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/inversify/InversifyJS/labels/Suggestion","name":"Suggestion","color":"006b75"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-05-18T11:50:16Z","updated_at":"2016-05-18T11:50:16Z","closed_at":null,"body":"This was issue was suggested by @gjsduarte on Gitter...\r\n\r\n## Suggested Behavior\r\nThe `@injectable()` annotation could become optional in some cases.\r\n\r\n## Current Behavior\r\nThe `@injectable()` annotation is mandatory.\r\n\r\n## Possible Solution\r\nWhen the `@inject` decorator is used, the `@injectable()` annotation could become optional.\r\nWhen a class has no dependencies, the `@injectable()` annotation could become optional.\r\n\r\n## Context\r\nThe `@injectable()` annotation is mandatory because it help us to provide the users with friendly exceptions.\r\n\r\n"}}