{"action":"closed","issue":{"url":"https://api.github.com/repos/inf3rno/o3/issues/94","repository_url":"https://api.github.com/repos/inf3rno/o3","labels_url":"https://api.github.com/repos/inf3rno/o3/issues/94/labels{/name}","comments_url":"https://api.github.com/repos/inf3rno/o3/issues/94/comments","events_url":"https://api.github.com/repos/inf3rno/o3/issues/94/events","html_url":"https://github.com/inf3rno/o3/issues/94","id":170772623,"number":94,"title":"The error API should be in a separate project?","user":{"login":"inf3rno","id":408911,"avatar_url":"https://avatars.githubusercontent.com/u/408911?v=3","gravatar_id":"","url":"https://api.github.com/users/inf3rno","html_url":"https://github.com/inf3rno","followers_url":"https://api.github.com/users/inf3rno/followers","following_url":"https://api.github.com/users/inf3rno/following{/other_user}","gists_url":"https://api.github.com/users/inf3rno/gists{/gist_id}","starred_url":"https://api.github.com/users/inf3rno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inf3rno/subscriptions","organizations_url":"https://api.github.com/users/inf3rno/orgs","repos_url":"https://api.github.com/users/inf3rno/repos","events_url":"https://api.github.com/users/inf3rno/events{/privacy}","received_events_url":"https://api.github.com/users/inf3rno/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/inf3rno/o3/labels/pending","name":"pending","color":"1d76db"},{"url":"https://api.github.com/repos/inf3rno/o3/labels/priority:normal","name":"priority:normal","color":"fef2c0"},{"url":"https://api.github.com/repos/inf3rno/o3/labels/should%20be%20in%20a%20separate%20project","name":"should be in a separate project","color":"d4c5f9"}],"state":"closed","locked":false,"assignee":{"login":"inf3rno","id":408911,"avatar_url":"https://avatars.githubusercontent.com/u/408911?v=3","gravatar_id":"","url":"https://api.github.com/users/inf3rno","html_url":"https://github.com/inf3rno","followers_url":"https://api.github.com/users/inf3rno/followers","following_url":"https://api.github.com/users/inf3rno/following{/other_user}","gists_url":"https://api.github.com/users/inf3rno/gists{/gist_id}","starred_url":"https://api.github.com/users/inf3rno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inf3rno/subscriptions","organizations_url":"https://api.github.com/users/inf3rno/orgs","repos_url":"https://api.github.com/users/inf3rno/repos","events_url":"https://api.github.com/users/inf3rno/events{/privacy}","received_events_url":"https://api.github.com/users/inf3rno/received_events","type":"User","site_admin":false},"assignees":[{"login":"inf3rno","id":408911,"avatar_url":"https://avatars.githubusercontent.com/u/408911?v=3","gravatar_id":"","url":"https://api.github.com/users/inf3rno","html_url":"https://github.com/inf3rno","followers_url":"https://api.github.com/users/inf3rno/followers","following_url":"https://api.github.com/users/inf3rno/following{/other_user}","gists_url":"https://api.github.com/users/inf3rno/gists{/gist_id}","starred_url":"https://api.github.com/users/inf3rno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inf3rno/subscriptions","organizations_url":"https://api.github.com/users/inf3rno/orgs","repos_url":"https://api.github.com/users/inf3rno/repos","events_url":"https://api.github.com/users/inf3rno/events{/privacy}","received_events_url":"https://api.github.com/users/inf3rno/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/inf3rno/o3/milestones/7","html_url":"https://github.com/inf3rno/o3/milestones/Brainstorming","labels_url":"https://api.github.com/repos/inf3rno/o3/milestones/7/labels","id":1676812,"number":7,"title":"Brainstorming","description":"Ideas I probably won't implement or I'll implement only in the distant future.","creator":{"login":"inf3rno","id":408911,"avatar_url":"https://avatars.githubusercontent.com/u/408911?v=3","gravatar_id":"","url":"https://api.github.com/users/inf3rno","html_url":"https://github.com/inf3rno","followers_url":"https://api.github.com/users/inf3rno/followers","following_url":"https://api.github.com/users/inf3rno/following{/other_user}","gists_url":"https://api.github.com/users/inf3rno/gists{/gist_id}","starred_url":"https://api.github.com/users/inf3rno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inf3rno/subscriptions","organizations_url":"https://api.github.com/users/inf3rno/orgs","repos_url":"https://api.github.com/users/inf3rno/repos","events_url":"https://api.github.com/users/inf3rno/events{/privacy}","received_events_url":"https://api.github.com/users/inf3rno/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":1,"state":"open","created_at":"2016-03-31T19:09:01Z","updated_at":"2016-08-12T12:37:00Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2016-08-11T23:48:50Z","updated_at":"2016-08-12T12:37:00Z","closed_at":"2016-08-12T12:37:00Z","body":"It would be easier to maintain an release if the error API would be in a separate project. The Class API is already complete, so I could set it to 1.0.0 and create a separate repo for the Error API. I'll probably need a plugin system, or simply use `require(\"o3-errors\")` by using the error API.\r\n\r\nA possible plugin system:\r\n```js\r\nvar o3 = require(\"o3\");\r\nvar errors = {\r\n    UserError: require(\"./UserError\"),\r\n    ...\r\n};\r\no3.Class.prototype.merge.call(o3, errors);\r\nmodule.exports = errors;\r\n```\r\n\r\nAnother possible solution to add a merge method to the o3 module, so\r\n\r\n```js\r\nvar o3 = require(\"o3\");\r\nvar errors = {\r\n    UserError: require(\"./UserError\"),\r\n    ...\r\n};\r\no3.merge(errors);\r\nmodule.exports = errors;\r\n```\r\n\r\nHowever I don't think I really need this plugin system. It is confusing. If I try to use o3.errors before requiring it, I will get an error. By the unpredictable behavior of browserify #77 this can be a very real issue.\r\n\r\nI think moving this to a separate project is a good choice. I'll do that."}}
{"actor":{"display_login":"inf3rno"}}