{"_id":"deferred-fs","_rev":"23-30bde4c4791643f340a520cfa9a89e5e","name":"deferred-fs","description":"Provides a promise-based API for Node's filesystem APIs.","dist-tags":{"latest":"0.3.2"},"versions":{"0.0.1":{"name":"deferred-fs","version":"0.0.1","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/dfs.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"node test/index.js"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"~1.7.4"},"_id":"deferred-fs@0.0.1","dist":{"shasum":"8ff48079a7a70b4f77408c49346ea2bcb899bfac","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.0.1.tgz","integrity":"sha512-QIZr388r6LMX9nkjBCerhkDXsintpiHE8FQ/lS/yZGymHao+HEXX6zBiBRq8LwYmE9jS4A1OoomsxrtyAnkAUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHlOVv8rm+GrUmTNkIbAOQD9YlJn7L/1bQs07HY4J6DGAiEA/s/jEH2DvMbjRxaxQzlfELFvyWVQlyr58UgJYBtKZ40="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.0.2":{"name":"deferred-fs","version":"0.0.2","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/dfs.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha test/index.js"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"~1.7.4"},"_id":"deferred-fs@0.0.2","dist":{"shasum":"d20eacf8025a5281778d69f987fc7167e166b6df","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.0.2.tgz","integrity":"sha512-iRTrzrcaLbX4zBB/NgJojd9zLhHPHGQMVU5e6WW5Us/ZjRbLo96nftti6hi9W0uKnQK5tImqr37jajiVC4T5Xg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBzUvPx6XDVYc9kQ318VmUzfd7nWIBClq4FB3db3CpgAIgfQzerJ03f/WcgcAaO1J9B+AA0eDY7UmSOTqCU8IF3NE="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.0.3":{"name":"deferred-fs","version":"0.0.3","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/dfs.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha test/index.js"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"~1.7.4"},"_id":"deferred-fs@0.0.3","dist":{"shasum":"069a889db2a51f3cebea496ccea9c8864dd0df17","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.0.3.tgz","integrity":"sha512-GC6BLA6TURJZfiq5TIroDMQnLVXIqhXFjRrWrQIucpBaIZz3CS4RyA8+yULUtahD+eiw1sCjwCgmDSa+4kqSUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDFtFMYSuFWV/+p9Z8LyzUDOwZFzcXgLBlbMQIIjQom0AiEAjwrgZeGGyyxFUP6+lzSIR0TCdzVScHUkkeeExi4K6FI="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.1.0":{"name":"deferred-fs","version":"0.1.0","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/main.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha --reporter spec"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"*"},"_id":"deferred-fs@0.1.0","dist":{"shasum":"135d12ffe0389a9d31decc7bceaa60685e191ef2","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.1.0.tgz","integrity":"sha512-LnMC3ohK3V+QfWMUCQfM7P5QGKaZ9uTdbjL5eImG+G44AdzvsPEYg4hfbVG5pfJazSdqWne2ytx2diP4bJoUnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGGmTTeFiJzBFbgtTBvukEFSXYqHI1MOwREjDNNmMfNVAiBOxvA40JF80AdxX03+Vsjp7WwmHpIPnddltVFf9sA3Jg=="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.2.1":{"name":"deferred-fs","version":"0.2.1","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/main.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha --reporter spec"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"*"},"_id":"deferred-fs@0.2.1","dist":{"shasum":"c66ec8c3849cfedc9d0a6b7850d2045758dc2769","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.2.1.tgz","integrity":"sha512-fnkBcY37zMm84BwPuJshXsEFjoRSCsSmo19DX6Hqs/bGBQ/T7GYBshRrFGC26yXGoo9KfnsJ7dnxUWcu6x3CZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCf/wGJnoTQcuYswxtGBj+zm/iLqYO8ONlXRIjqIZ26ogIgDppp+ox2/FT1VgitmXXtRDB8WKRBav1Pq5RkE+3sEFw="}]},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.2.2":{"name":"deferred-fs","version":"0.2.2","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/main.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha --reporter spec"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"*"},"_id":"deferred-fs@0.2.2","dist":{"shasum":"e8a15104a99e8792148e2d50e63f2979a687ecd9","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.2.2.tgz","integrity":"sha512-UBWXHm8xvYLcyXG1K895y2v7Kdv7F3V4OfFZs2Dz0eU+CoIkK/tAMDLmCL0Make4S5ipo2nxs4YosYgvAjsWEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgcQzU7hyybuedon/2XhJ6Ebmdg6LPraV/dMYY9yvj1QIgYEV/Orj6tdWuIhjgsJx6HXc4y5n3QJj8u3wONGlnL3E="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.2.3":{"name":"deferred-fs","version":"0.2.3","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/main.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha --reporter spec"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"*"},"_id":"deferred-fs@0.2.3","dist":{"shasum":"bd338381db8d73925107b66f2640c45a4f848b04","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.2.3.tgz","integrity":"sha512-Plz79MvmHXNZdM0RQg3lDhcaenYXECavcP0Xtlgp5dhTeeXKOGmB5+3fh6EdbRCpeFUxTH0JsAG6BaR92Uel+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFIzYXQOA7vLWJe0YqpvOy7vsWU1wIDcJuBTCLEsux25AiEAxwMEfaay25g6Qgxus22Si3sXa+3lj/okP9B6h3H4h/U="}]},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.3.0":{"name":"deferred-fs","version":"0.3.0","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/main.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha --reporter spec"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"*"},"_id":"deferred-fs@0.3.0","dist":{"shasum":"9745dc06cc1671e97e22ffc07d3a17d0f780de65","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.3.0.tgz","integrity":"sha512-ONmtnREY5heb0y5S8SoM591L+W2rp0V1M9xXfg9ICnIfJGGo6EAS/V2oYjoZCUEMDQbxLVFbn3gPKv2YzhAl2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADulD02AhClu44KEildNJqiYpI1gB5pHVAL5VYFnWbWAiAQM0/k91UUEAIOMUnVmZ5g8paeKbf3eJYWqVVsqRieoA=="}]},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.3.1":{"name":"deferred-fs","version":"0.3.1","description":"Provides a promise-based API for Node's filesystem APIs.","main":"lib/main.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha --reporter spec"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"*"},"_id":"deferred-fs@0.3.1","dist":{"shasum":"4e766ac2dbc5d13c19cc8936f270872c1bc130c0","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.3.1.tgz","integrity":"sha512-PB0s3KXaxXJtBH3lmUW0yekzilEwHAibUJuHYnWBuaL+nmVugzHaNq61sE+gRMjhWHbO67KEHhlq51wfHAeanQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8TDYGlXyOucMGXk4Cp4M06JvOnca/FfHnlQPVaJNrNAIgJ/RUIl6AQu3Jde71y3O77kSRaJObfYDomCU84Gnc5ik="}]},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]},"0.3.2":{"name":"deferred-fs","version":"0.3.2","description":"Provides a promise-based API for Node's filesystem APIs.","main":"index.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"mocha --reporter spec"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"keywords":["promise","deferred","node","fs","orion"],"author":{"name":"Orion contributors"},"license":"EPL+EDL","devDependencies":{"mocha":"*"},"bugs":{"url":"https://github.com/mamacdon/deferred-fs/issues"},"homepage":"https://github.com/mamacdon/deferred-fs","_id":"deferred-fs@0.3.2","dist":{"shasum":"619e0d78ca87d96a07f3c7fb6587e745c7866f3d","tarball":"https://registry.npmjs.org/deferred-fs/-/deferred-fs-0.3.2.tgz","integrity":"sha512-tc9X/tOUmFruAcXaAjQaJt+Nl7pTVMZz3zlMRpORqhmbJ183VejuW9sQdwjA1OJ6g0xG6nE/synXqPFP6PR9ww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCN80GEA0LG9cLLxF2EZ6x+N0kgMuwjSirzRbUP9dW7QQIhAN+to13gAqWxIgnwbxEkMVUlvZ3sX0VqxuVQh3tScs8y"}]},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"mamacdon","email":"mamacdon@gmail.com"},"maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}]}},"readme":"# deferred-fs\r\n\r\nProvides a promise-based API for Node.js's [filesystem API](http://nodejs.org/api/fs.html).\r\n\r\n## Requirements\r\nNode.js\r\n\r\n## Installation\r\n\r\nThe easiest way is to install deferred-fs using npm, like this:\r\n\r\n```\r\n$ npm install deferred-fs\r\n```\r\n\r\nThis will install deferred-fs into your project's ```node_modules``` subdirectory. From a Node app, you can then load dfs by doing ```require('deferred-fs')```.\r\n\r\n## Deferred-fs API\r\n\r\nThe object returned by ```require('deferred-fs')``` works exactly like Node's ```fs``` library, except that its asynchronous methods return a promise object instead of accepting a callback argument.\r\n\r\nHere's an example showing how to use ```writeFile``` to asynchronously write a file and print a completion message when done:\r\n\r\n```js\r\nvar dfs = require('dfs');\r\ndfs.writeFile('hello.txt', 'Hello world!', 'utf8').then(\r\n    function () {\r\n        console.log('File was written successfully.');\r\n    });\r\n```\r\n\r\nIn cases where a normal callback would return an \"error\" argument, the returned promise *rejects*, meaning the second callback is invoked:\r\n\r\n```js\r\nvar dfs = require('dfs');\r\ndfs.readFile('/file_that_does_not_exist').then(\r\n\tnull,\r\n    function (error) {\r\n        console.log('Yikes, an error occurred! ' + error);\r\n    });\r\n```\r\n\r\nThe above program will output:\r\n\r\n```\r\nYikes, an error occurred! Error: ENOENT, open 'c:\\file_that_does_not_exist'\r\n```\r\n\r\nThe real advantage of the promise approach comes from chaining promises together, allowing you to transform values returned by earlier callbacks\r\nand implement high-level error handling.\r\n\r\n## Promise API\r\nThe promise object returned by deferred-fs's asynchronous methods has the familiar \"then\" API:\r\n\r\n* ```then(onResolve, onReject)```\r\n\r\nInternally these promises are implemented using the Deferred library from [Eclipse Orion](http://eclipse.org/orion). This means they're 100% compliant with the [Promises/A+ specification](https://github.com/promises-aplus/promises-spec), version 1.1.\r\n\r\n## Deferred API\r\ndeferred-fs also exports Orion's Deferred library, giving you access to a richer API than simple promises:\r\n\r\n```js\r\nvar Deferred = require('deferred-fs').Deferred;\r\n\r\nvar promises = [ new Deferred().resolve('resolved!'), new Deferred().reject('rejected :(') ];\r\nDeferred.all(promises).then(\r\n  function(results) {\r\n    console.log('All promises resolved: ' + results.join(', '));\r\n  }, function(err) {\r\n    console.log('An error occurred: ' + err);\r\n  });\r\n```\r\n\r\nConsult the [Deferred JSDoc](https://orionhub.org/jsdoc/symbols/orion.Deferred.html) for details of the available API methods. In addition to Promises/A+ compliance,\r\nOrion's Deferred also implements some evolving APIs like [progress](https://github.com/promises-aplus/progress-spec) and \r\n[cancellation](https://github.com/promises-aplus/cancellation-spec).\r\n","maintainers":[{"name":"mamacdon","email":"mamacdon@gmail.com"}],"time":{"modified":"2022-06-14T23:24:09.397Z","created":"2012-12-13T23:50:13.600Z","0.0.1":"2012-12-13T23:50:15.633Z","0.0.2":"2013-01-04T23:13:01.636Z","0.0.3":"2013-01-11T20:43:13.479Z","0.1.0":"2013-01-22T20:55:37.455Z","0.2.1":"2013-02-08T21:12:42.012Z","0.2.2":"2013-02-12T21:35:25.484Z","0.2.3":"2013-04-08T14:12:07.770Z","0.3.0":"2013-10-09T21:31:45.931Z","0.3.1":"2013-10-28T15:34:37.615Z","0.3.2":"2014-03-04T14:32:10.682Z"},"author":{"name":"Orion contributors"},"repository":{"type":"git","url":"git://github.com/mamacdon/deferred-fs.git"},"homepage":"https://github.com/mamacdon/deferred-fs","keywords":["promise","deferred","node","fs","orion"],"bugs":{"url":"https://github.com/mamacdon/deferred-fs/issues"},"license":"EPL+EDL","readmeFilename":"README.md"}