{"action":"created","issue":{"url":"https://api.github.com/repos/nodejs/node/issues/1592","labels_url":"https://api.github.com/repos/nodejs/node/issues/1592/labels{/name}","comments_url":"https://api.github.com/repos/nodejs/node/issues/1592/comments","events_url":"https://api.github.com/repos/nodejs/node/issues/1592/events","html_url":"https://github.com/nodejs/node/issues/1592","id":72686548,"number":1592,"title":"gripe: deprecating fs.exists/existsSync","user":{"login":"emilyrose","id":617235,"avatar_url":"https://avatars.githubusercontent.com/u/617235?v=3","gravatar_id":"","url":"https://api.github.com/users/emilyrose","html_url":"https://github.com/emilyrose","followers_url":"https://api.github.com/users/emilyrose/followers","following_url":"https://api.github.com/users/emilyrose/following{/other_user}","gists_url":"https://api.github.com/users/emilyrose/gists{/gist_id}","starred_url":"https://api.github.com/users/emilyrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emilyrose/subscriptions","organizations_url":"https://api.github.com/users/emilyrose/orgs","repos_url":"https://api.github.com/users/emilyrose/repos","events_url":"https://api.github.com/users/emilyrose/events{/privacy}","received_events_url":"https://api.github.com/users/emilyrose/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nodejs/node/labels/feature%20request","name":"feature request","color":"0D7BDE"},{"url":"https://api.github.com/repos/nodejs/node/labels/fs","name":"fs","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":61,"created_at":"2015-05-02T19:25:40Z","updated_at":"2015-10-05T09:03:00Z","closed_at":null,"body":"After noticing in the node docs that __fs.exists__ and __fs.existsSync__ were going to be deprecated, I took at look at the iojs docs to see that it had in fact been.\r\n\r\nThis is _really annoying_ and seems like it's based out of the assumption that every developer ever is only checking the existence of a file prior to reading/writing in some async context. While I understand the sentiment behind wanting to avoid 'unnecessary abstractions' or race conditions, _this_ is unnecessary.\r\n\r\nWhereas I was previously able to handle the checking of a file's existence with a single boolean variable, I'm now given no other option but to either try/catch or make my code async and listen for error events. \r\n\r\nThis feels like prescriptivism, as I can't think of a single reason why a stern warning of the potential implications and/or examples of caveats to its use wouldn't have sufficed. \r\n\r\nCan anyone help me understand why this was necessary (beyond pushing the all-async-all-the-time paradigm (that doesn't always necessarily apply (particularly in the case of synchronous CLI tooling)))?\r\n\r\n__Or perhaps can I just submit a PR that _un-deprecates_ this perfectly good functionality?__\r\n\r\nEDIT: _I am happy to provide any additional documentation that is deemed necessary._"},"comment":{"url":"https://api.github.com/repos/nodejs/node/issues/comments/145468662","html_url":"https://github.com/nodejs/node/issues/1592#issuecomment-145468662","issue_url":"https://api.github.com/repos/nodejs/node/issues/1592","id":145468662,"user":{"login":"ChALkeR","id":291301,"avatar_url":"https://avatars.githubusercontent.com/u/291301?v=3","gravatar_id":"","url":"https://api.github.com/users/ChALkeR","html_url":"https://github.com/ChALkeR","followers_url":"https://api.github.com/users/ChALkeR/followers","following_url":"https://api.github.com/users/ChALkeR/following{/other_user}","gists_url":"https://api.github.com/users/ChALkeR/gists{/gist_id}","starred_url":"https://api.github.com/users/ChALkeR/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChALkeR/subscriptions","organizations_url":"https://api.github.com/users/ChALkeR/orgs","repos_url":"https://api.github.com/users/ChALkeR/repos","events_url":"https://api.github.com/users/ChALkeR/events{/privacy}","received_events_url":"https://api.github.com/users/ChALkeR/received_events","type":"User","site_admin":false},"created_at":"2015-10-05T09:03:00Z","updated_at":"2015-10-05T09:03:00Z","body":"@ccravens Are you are mixing stderr and stdout output?"}}