{"_id":"hybridify","_rev":"40-9c9dec334e395850bf44b9fb12fa550b","name":"hybridify","description":"Hybridify. Hybrids. Create sync or async function to support both promise and callback-style APIs in same time. Using the power of [relike][].","dist-tags":{"latest":"2.0.0"},"versions":{"0.0.0":{"name":"hybridify","version":"0.0.0","description":"Building hybrid APIs. You can use both callback and promise in same time. Like `fn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/tunnckoCore/hybridify.git"},"keywords":[],"license":{"type":"MIT","url":"https://github.com/tunnckoCore/hybridify/blob/master/license.md"},"dependencies":{"array-slice":"^0.2.2","handle-callback":"*","thenify":"^3.1.0"},"devDependencies":{"istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"e5519d55cb83c48dfa432952b78d30e0e011e6f0","bugs":{"url":"https://github.com/tunnckoCore/hybridify/issues"},"homepage":"https://github.com/tunnckoCore/hybridify","_id":"hybridify@0.0.0","_shasum":"47e874b3950fea1e51e4b5b78e207868c38b47b3","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"47e874b3950fea1e51e4b5b78e207868c38b47b3","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-0.0.0.tgz","integrity":"sha512-98HrjtEwBxGiM9pStJWACfxueUR/s6H3NqecQqdLDBLCPKriUcVu0Uex+uifPcWWwNM8BJ8s5e/MPHvXTCpPHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwzAo6uzzIb+wq0FTynKMi3l0Mda0rvyK0cxuX+jRkoQIgc69IymjC+alHEo7l7X2yWvZxGY6nm3V2Ld9JltZn0wI="}]},"directories":{}},"0.0.1":{"name":"hybridify","version":"0.0.1","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/tunnckoCore/hybridify.git"},"keywords":[],"license":{"type":"MIT","url":"https://github.com/tunnckoCore/hybridify/blob/master/license.md"},"dependencies":{"array-slice":"^0.2.2","handle-callback":"*","thenify":"^3.1.0"},"devDependencies":{"istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"3a1ab4ca1e438362d17111a15af891545ea3c819","bugs":{"url":"https://github.com/tunnckoCore/hybridify/issues"},"homepage":"https://github.com/tunnckoCore/hybridify","_id":"hybridify@0.0.1","_shasum":"e12b631ddb6af91e75049406f4440452a917c055","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"e12b631ddb6af91e75049406f4440452a917c055","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-0.0.1.tgz","integrity":"sha512-8Rls2DgaQLovIUPlfRZqdgbZcKNl1c2j9cm/hMISnmxagjiYPpu4v8QyeZGQdKO4BQWW7P/zTIAG0I+sGN2LEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAgeJjmyYeW1kGoGpoxns+NHIV8zQKCpNYqYZEBXYKTgAiBQvlZgfj4WrxAmn6BvHpyRXPKxMfIwYzF3bc8DBvLV9A=="}]},"directories":{}},"1.0.0":{"name":"hybridify","version":"1.0.0","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/tunnckoCore/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/tunnckoCore/hybridify/blob/master/license.md"},"dependencies":{"handle-arguments":"^1.0.2","handle-callback":"*","thenify":"^3.1.0"},"devDependencies":{"bluebird":"^2.8.2","got":"^2.3.1","istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"222293ad362d50e2018633cfbe35f2261f6465ac","bugs":{"url":"https://github.com/tunnckoCore/hybridify/issues"},"homepage":"https://github.com/tunnckoCore/hybridify","_id":"hybridify@1.0.0","_shasum":"d321df949441a3bcedbae8f5dcd548348fec7c43","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"d321df949441a3bcedbae8f5dcd548348fec7c43","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.0.tgz","integrity":"sha512-mpJWMt8w5r/e4zSRfXLcPVPbX77I8xusFbgrwGtjex3J8YGR1r43ZC1oPgezWBOFoiTJ2v4bbisiiRvIpSuT+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpTkwzDVKpbKdi+u3a7k4H3ovQyF9jJQczt/DLiWTGGwIgR1ryowSLu0lxgCkvza2lK1sStlYYIcXMYvU73fcCH2E="}]},"directories":{}},"1.0.1":{"name":"hybridify","version":"1.0.1","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/tunnckoCore/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/tunnckoCore/hybridify/blob/master/license.md"},"dependencies":{"handle-arguments":"^1.0.x","handle-callback":"^1.0.x","is-empty-function":"^1.0.x","thenify":"^3.1.0"},"devDependencies":{"bluebird":"^2.8.2","got":"^2.3.1","istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"4b7f551343b66826a16fc6608b694f05f5e1e900","bugs":{"url":"https://github.com/tunnckoCore/hybridify/issues"},"homepage":"https://github.com/tunnckoCore/hybridify","_id":"hybridify@1.0.1","_shasum":"f059b907126b43de53b3060570a2a856a28e79fa","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"f059b907126b43de53b3060570a2a856a28e79fa","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.1.tgz","integrity":"sha512-0m4rKb/5SxkSje1Wdno3o6sAgzWo3JnVyQQDxbmtFjlDLtB1fcb6h1Fojvdij9LLfp5RCDU282VV3b+47ukibg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1oiCH7iXueUoAc45TVx0BXCxga3kt9kqIhSJSZeBqFwIgPx2JIFBIAm4C/77NDC5GANWAOX3FLVcTwhuWtbJZGac="}]},"directories":{}},"1.0.2":{"name":"hybridify","version":"1.0.2","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/tunnckoCore/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/tunnckoCore/hybridify/blob/master/license.md"},"dependencies":{"handle-arguments":"^1.0.x","handle-callback":"^1.0.x","is-empty-function":"^1.0.x","thenify":"^3.1.0"},"devDependencies":{"bluebird":"^2.8.2","got":"^2.3.1","istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"589f77660f642afac9ccec9827883d2a5ff6e683","bugs":{"url":"https://github.com/tunnckoCore/hybridify/issues"},"homepage":"https://github.com/tunnckoCore/hybridify","_id":"hybridify@1.0.2","_shasum":"516778192f3d42c2570a01de5463c815af3ff6f9","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"516778192f3d42c2570a01de5463c815af3ff6f9","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.2.tgz","integrity":"sha512-Y7dnHct3e6q+fIuIcTfLLE0EdPIANMVFRV5l4lffod6MjyD9Moiok0eguj9OO+T9P1ob1ybbWMYu27dA0TJpaw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDSS2BKNjRMF8dbKz8R3OFDobRH2YCt3WefsVoptuB5AIgbwd047/gaX/2XJxcf9NZr6QTLBP/UOUXK75ynrFJ77w="}]},"directories":{}},"1.0.3":{"name":"hybridify","version":"1.0.3","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/hybridables/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/hybridables/hybridify/blob/master/license.md"},"dependencies":{"handle-arguments":"^1.0.x","handle-callback":"^1.0.x","is-empty-function":"^1.0.x","thenify":"^3.1.0"},"devDependencies":{"bluebird":"^2.8.2","got":"^2.3.1","istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"b995678260ccd2089f755ad8a9979e40e2dd7cc8","bugs":{"url":"https://github.com/hybridables/hybridify/issues"},"homepage":"https://github.com/hybridables/hybridify","_id":"hybridify@1.0.3","_shasum":"c2fde4ca7571c5180cbed9072e8c9447e939a696","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"c2fde4ca7571c5180cbed9072e8c9447e939a696","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.3.tgz","integrity":"sha512-EsvJYkmzPBhJDvfkJaMObPO5+WzPv31SAwiOZP5FVYd2FFXVk4S8tGn+i+qalGTLNBdXmhij312dO0rmf7M0sg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDv4ahYQIZEV/LW8OtNguYqyzCcfq5Tx9kNMZ759WPWzQIhAJDAh8NcJaF++eIomAaN6BQiWne2lBdcZJdq2UDvmXRe"}]},"directories":{}},"1.0.4":{"name":"hybridify","version":"1.0.4","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/hybridables/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/hybridables/hybridify/blob/master/license.md"},"dependencies":{"handle-arguments":"~2.0.0","handle-callback":"~1.0.0","is-empty-function":"~1.0.3","thenify":"^3.1.0"},"devDependencies":{"bluebird":"^2.8.2","got":"^2.3.1","istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"5ceb31a844410ab71d647e54f27b6ef1ffed2526","bugs":{"url":"https://github.com/hybridables/hybridify/issues"},"homepage":"https://github.com/hybridables/hybridify","_id":"hybridify@1.0.4","_shasum":"dcce3e4bfc93206e0bc660be2246fa5b88031feb","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"dcce3e4bfc93206e0bc660be2246fa5b88031feb","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.4.tgz","integrity":"sha512-o9JP+Ge+dAAFkgSM5J96Z9vbi6hBbPai8d76D4DTR0BDpn+95jO5gHhuA2NNe1XNnv9qv9G9cAfXIdBxwRCI7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDi9tjYesA6NY0KzIZXnVs8RpulOUlLtPf5IM6ZwBwdSwIgVIhcynxCTgHIfgt9GkpV9nMrweJd5NgaNwob7HMzUbE="}]},"directories":{}},"1.0.5":{"name":"hybridify","version":"1.0.5","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/hybridables/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/hybridables/hybridify/blob/master/license.md"},"dependencies":{"handle-arguments":"~2.0.0","handle-callback":"~1.0.0","is-empty-function":"~1.0.3","thenify":"^3.1.0"},"devDependencies":{"bluebird":"^2.8.2","got":"^2.3.1","istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"e9ad2cca36fcc2b38e3e20a313c9a503afadfdc8","bugs":{"url":"https://github.com/hybridables/hybridify/issues"},"homepage":"https://github.com/hybridables/hybridify","_id":"hybridify@1.0.5","_shasum":"14724daefc8d39120b5c71c207b1f12db774c426","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"14724daefc8d39120b5c71c207b1f12db774c426","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.5.tgz","integrity":"sha512-3c2GY2mSDZT1ViRMKfl8moKsncqm224rSYrqPgUPkPi5kTX5m+e2rNeLkTSmuNnCcESZmXGc2uT0bzyildIxNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8iIrKehO++EOFZTB9/EjD9SRMG8KpBkqYAxpYpgKmogIgHQXCk71jP3ji8OtOFiqV3KYuDGGNH7gov+BQ0eGz844="}]},"directories":{}},"1.0.6":{"name":"hybridify","version":"1.0.6","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"lint":"jshint index.js && jscs index.js --reporter inline","test":"mocha","test-cov":"istanbul cover _mocha","test-travis":"istanbul cover _mocha --report lcovonly"},"author":{"name":"Charlike Make Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/hybridables/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/hybridables/hybridify/blob/master/license.md"},"dependencies":{"handle-arguments":"~2.0.0","handle-callback":"~1.0.0","is-empty-function":"~1.0.3","thenify":"^3.1.0"},"devDependencies":{"bluebird":"^2.8.2","got":"^2.3.1","istanbul-harmony":"^0.3.1","mocha":"*","mocha-lcov-reporter":"^0.0.1"},"gitHead":"d583d9528e5ac6bc4bd0eb7912da41c9e58e1a5a","bugs":{"url":"https://github.com/hybridables/hybridify/issues"},"homepage":"https://github.com/hybridables/hybridify","_id":"hybridify@1.0.6","_shasum":"7462b2c86d9a4a47aefb3005269bc2557e0def62","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.11.14","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"7462b2c86d9a4a47aefb3005269bc2557e0def62","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.6.tgz","integrity":"sha512-RNTSyD4dFSFIW03gb/pbCPOuhDm0SS9ImvevwXqJH/L1nldaJXnCDPWmUzm2OmpJSYN09o16Uq2xrj6J8HpFhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHYxytNe+2Uu4Kje8OsHXylT+psjhMWymlXfPcfIAUXJAiA6pNefReAHZi52lI2PiBBeWRhhaHJreIVe/QwW5Tv6pQ=="}]},"directories":{}},"1.0.7":{"name":"hybridify","version":"1.0.7","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"test":"standard && node test.js"},"author":{"name":"Charlike Mike Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/hybridables/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/hybridables/hybridify/blob/master/LICENSE.md"},"dependencies":{"bluebird":"~2.9.25","handle-arguments":"~3.0.1"},"devDependencies":{"assertit":"^0.1.0","got":"^3.2.0"},"gitHead":"975ce7e3cf154fe2528d76cf06bf24c583f9d682","bugs":{"url":"https://github.com/hybridables/hybridify/issues"},"homepage":"https://github.com/hybridables/hybridify#readme","_id":"hybridify@1.0.7","_shasum":"ca2cd3e8060c62bdc09f52534c8d9f15d57f6f9f","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"ca2cd3e8060c62bdc09f52534c8d9f15d57f6f9f","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.7.tgz","integrity":"sha512-KQCvBgVNm5XXBcaZxySvR8m0iYOjR3TT80mhQEMDx6XJ+mo/jC+h2a/kznRVc0G7Nm7hThSwjS8gRG6C8yExXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA0OR+Z4hP/0H33a041g4mEY/j9vQXlipOXrapfoNJrPAiBgIHGIhbhw6JFBAMbVL8fuIvHxLZOA/95uMyXLTfrGDQ=="}]},"directories":{}},"1.0.9":{"name":"hybridify","version":"1.0.9","description":"Building hybrid APIs. You can use both callback and promise in same time.  Like `asyncFn(name, cb).then().catch()`","scripts":{"test":"standard && node test.js"},"author":{"name":"Charlike Mike Reagent","email":"mameto_100@mail.bg","url":"https://github.com/tunnckoCore"},"repository":{"type":"git","url":"git://github.com/hybridables/hybridify.git"},"keywords":["api","apis","aplus","async","async to hybrid","promise to hybrid","async to hybridify","build","building","callback","callback-and-promise","callbacks","control","control-flow","es6","flow","hybrid","hybrid-api","hybrid-apis","hybridify","hybridify-api","hybridify-apis","promise","promises","promises-api","promises-aplus","then"],"license":{"type":"MIT","url":"https://github.com/hybridables/hybridify/blob/master/LICENSE.md"},"dependencies":{"bluebird":"~2.9.25","handle-arguments":"~3.0.1"},"devDependencies":{"assertit":"^0.1.0","got":"^3.2.0"},"gitHead":"b40007234894682115030a588763f4f4f7d50764","bugs":{"url":"https://github.com/hybridables/hybridify/issues"},"homepage":"https://github.com/hybridables/hybridify#readme","_id":"hybridify@1.0.9","_shasum":"ee5f1de5d1fbc06394ba78cc3bd25458fb21b4ff","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"dist":{"shasum":"ee5f1de5d1fbc06394ba78cc3bd25458fb21b4ff","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-1.0.9.tgz","integrity":"sha512-HZRxyUek/8p64k0SHlZm4QVpIgCwosYCE4291GVfJr2oBgGQhtHhJS9wc3wWVfv45b6tw3tV1J4mz/c5eEE7Zw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICyFh5jWpltca1/+OUz2/KymLTD2oTSXb6ljADyghBSsAiB3CEHzGo1uOIxhom63WEI4LsGw31P+v2szdP8fzhza1Q=="}]},"directories":{}},"2.0.0":{"name":"hybridify","version":"2.0.0","description":"Hybridify. Hybrids. Create sync or async function to support both promise and callback-style APIs in same time. Using the power of [relike][].","repository":{"type":"git","url":"git+https://github.com/hybridables/hybridify.git"},"author":{"name":"Charlike Mike Reagent","email":"@tunnckoCore","url":"http://www.tunnckocore.tk"},"precommit.silent":true,"main":"index.js","license":"MIT","scripts":{"test":"standard && node test.js"},"dependencies":{"common-callback-names":"^1.0.2","handle-arguments":"^3.1.0","lazy-cache":"^2.0.1","relike":"^1.1.4","sliced":"^1.0.1","then-callback":"^1.0.3"},"devDependencies":{"is-buffer":"^1.1.3","is-promise":"^2.1.0","isarray":"^1.0.0","mukla":"^0.4.1","pre-commit":"*"},"files":["index.js","utils.js"],"keywords":["all","api","args","async","asynchronous","callback","callback-style","cb","common","func","function","hybrid","hybridify","hybrids","letta","new","old","promise","promisify","relike","style","sync","synchronous"],"verb":{"reflinks":["bluebird","letta","relike","relike-all","through2"],"run":true,"toc":false,"layout":"empty","lint":{"reflinks":true},"tasks":["readme"],"related":{"list":["callback2stream","letta","limon","promise2stream","relike","relike-all","relike-value","value2stream"]}},"gitHead":"1248f249ee61e15ddd4a70bb523a0c80daf103e8","bugs":{"url":"https://github.com/hybridables/hybridify/issues"},"homepage":"https://github.com/hybridables/hybridify#readme","_id":"hybridify@2.0.0","_shasum":"354ed28fb68e71e325be0769b2d29ca6d1b29596","_from":".","_npmVersion":"3.8.5","_nodeVersion":"5.8.0","_npmUser":{"name":"tunnckocore","email":"mameto_100@mail.bg"},"dist":{"shasum":"354ed28fb68e71e325be0769b2d29ca6d1b29596","tarball":"https://registry.npmjs.org/hybridify/-/hybridify-2.0.0.tgz","integrity":"sha512-iy6r2rPUO1BgBah8wSrhdDCZB1I4OB6aecCUmUTPgpwYCLFMtZ+5hc2qCMq7oYX1WOoIDhgTUzTBp6MIjVnvAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFLVqkzB6MYZ9lDx2OdWv43/AMNpOGChiHcUMkvq67xhAiArwXK77Z/W3Lwce1VAQt07/JygsDbm5bTcquAgcPhJGQ=="}]},"maintainers":[{"name":"tunnckocore","email":"mameto_100@mail.bg"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/hybridify-2.0.0.tgz_1463352460954_0.5061631565913558"},"directories":{}}},"readme":"# [hybridify][author-www-url] [![npmjs.com][npmjs-img]][npmjs-url] [![The MIT License][license-img]][license-url] [![npm downloads][downloads-img]][downloads-url] \n\n> Hybridify. Hybrids. Create sync or async function to support both promise and callback-style APIs in same time. Using the power of [relike][].\n\n[![code climate][codeclimate-img]][codeclimate-url] [![standard code style][standard-img]][standard-url] [![travis build status][travis-img]][travis-url] [![coverage status][coveralls-img]][coveralls-url] [![dependency status][david-img]][david-url]\n\nYou might also be interested in [letta][], [relike][], [relike-all][], [hybridify-all][].\n\n## Wait, what?\nHybrids?! Yea, hybrids are just promises on steroids. The philosophy of hybrids are some edge use cases like when you want to use both promise-style api and callback-style api in same time.\n\nHybrids are perfect for these times of transition from old school callback hell to the new and modern, next-generation javascript world - Promises, Generators, Async Functions and Arrow functions.\n\nIf you have callback api, or even some synchronous libs, hybrids comes to the rescue - use hybridify and you are here - in Promises Land, with centralized error handling and no breaking changes.\n\nYou can use hybridify when you considered to deprecate the callback api and want to support it for next few versions. And all that, without breaking changes - users of your library or project will be able to decide what to use - promises or good old callbacks.\n\n## Highlights\n> A few features and main points.\n\n- \"promisify\" synchronous and asynchronous functions\n- no breaking changes between switching APIs - from callbacks to promises\n- thin wrapper around [relike][] to add support for both promise and callback-style API\n- only using [bluebird][], if not other Promise constructor provided through `.Promise` property\n- [bluebird][] or the custom constructor is used only on environments that don't have support for native Promise\n- works on any nodejs version - from `v0.10.x` to latest `v6+` [Node.js](https://nodejs.org)\n- accept and works with javascript internal functions like `JSON.stringify` and `JSON.parse`\n\n## Install\n```\nnpm i hybridify --save\n```\n\n## Usage\n> For more use-cases see the [tests](./test.js)\n\n```js\nconst hybridify = require('hybridify')\n```\n\n### [hybridify](index.js#L41)\n> Make sync or async `fn` to support promise and callback-style APIs in same time.\n\n**Params**\n\n* `<fn>` **{Function}**: Some sync or asynchronous function.    \n* `[...args]` **{Mixed}**: Any number of any type of arguments, they are passed to `fn`.    \n* `returns` **{Promise}**: Always Promise, always native Promise if supported on environment.  \n\n**Example**\n\n```js\nconst fs = require('fs')\nconst hybridify = require('hybridify')\n\nconst promise = hybridify(fs.readFile, 'package.json', (err, buf) => {\n  if (err) console.error('callback err:', err)\n  console.log('callback res:', buf) // => '<Buffer 7b 0a 20 ...>'\n})\n\npromise.then(buf => {\n  console.log('promise res:', buf) // => '<Buffer 7b 0a 20 ...>'\n}, err => {\n  console.error('promise err:', err.stack)\n})\n```\n\n### [.hybridify](index.js#L84)\n> Wrapper function for `hybridify()`, but acts like `.promisify` thingy. Accepts `fn` function and returns a function, which when is called returns a Promise, but also can accept and calls final callback if given.\n\n**Params**\n\n* `<fn>` **{Function}**: Some sync or asynchronous function.    \n* `[Promize]` **{Function}**: Promise constructor to be used on environment where no support for native.    \n* `returns` **{Function}**: Hybridified function, which always return a Promise.  \n\n**Example**\n\n```js\nconst fs = require('fs')\nconst hybridify = require('hybridify')\nconst readdir = hybridify.hybridify(fs.readdir)\n\nconst promise = readdir('./', (err, files) => {\n  if (err) console.error('callback err:', err)\n  console.log('callback res:', files) // => array with directory files\n})\n\npromise.then(files => {\n  console.log('promise res:', files) // => array of files\n}, err => {\n  console.error('promise err:', err.stack)\n})\n```\n\n### [.promisify](index.js#L122)\n> Alias for [relike][]'s `.promisify` method. Almost the same as the `.hybridify` method, but can't accept callback. When returned function is called only returns a promise, not calls the final callback.\n\n**Params**\n\n* `<fn>` **{Function}**: Some sync or asynchronous function.    \n* `[Promize]` **{Function}**: Promise constructor to be used on environment where no support for native.    \n* `returns` **{Function}**: Promisified function, which always return a Promise.  \n\n**Example**\n\n```js\nconst fs = require('fs')\nconst hybridify = require('hybridify')\nconst statPromised = hybridify.promisify(fs.statSync)\n\nstatPromised('./index.js').then(stats => {\n  console.log(stats.mode) // => mode of file\n}, err => {\n  console.error(err.stack)\n})\n```\n\n### .Promise\n\nWhile `hybridify` always trying to use native Promise if available in the environment, you can\ngive a Promise constructor to be used on environment where there's no support - for example, old\nbroswers or node's 0.10 version. By default, `hybridify` will use and include [bluebird][] on old environments,\nas it is the fastest implementation of Promises. So, you are able to give Promise constructor, but\nit won't be used in modern environments - it always will use native Promise, you can't trick that. You\ncan't give custom promise implementation to be used in any environment.\n\n**Example**\n\n```js\nconst fs = require('fs')\nconst hybridify = require('hybridify')\n\nhybridify.hybridify.Promise = require('q') // using `Q` promise on node 0.10\nconst readFile = hybridify.hybridify(fs.readFile)\n\nreadFile('package.json', 'utf8', (err, val) => {\n  if (err) console.error(err)\n  console.log(val)\n})\n.then(console.log, err => {\n  console.error(err.stack)\n})\n```\n\nOne way to pass a custom Promise constructor is as shown above. But the other way is passing it to `.Promise` of the hybridified function, like that\n\n```js\nconst fs = require('fs')\nconst hybridify = require('hybridify')\nconst statFile = hybridify.hybridify(fs.stat)\n\nstatFile.Promise = require('when') // using `when` promise on node 0.10\nstatFile('package.json').then(console.log, console.error)\n```\n\nOne more thing, is that you can access the used Promise and can detect what promise is used. It is easy, just as `promise.Promise` and you'll get it.\nOr look for `promise.___bluebirdPromise` and `promise.___customPromise` properties. `.___bluebirdPromise` (yea, with three underscores in front) will be true if environment is old and you didn't provide promise constructor to `.Promise`.  \nSo, when you give constructor `.__customPromise` will be true and `.___bluebirdPromise` will be false.\n\n```js\nconst fs = require('fs')\nconst hybridify = require('hybridify')\n\nconst promise = hybridify(fs.readFile, 'package.json', 'utf8', (err, val) => {\n  if (err) console.error(err)\n  console.log(JSON.parse(val).name) // => 'hybridify'\n})\npromise.then(JSON.parse).then(val => {\n  console.log(val.name) // => 'hybridify'\n}, console.error)\n\nconsole.log(promise.Promise) // => used Promise constructor\nconsole.log(promise.___bluebirdPromise) // => `true` on old env, falsey otherwise\nconsole.log(promise.___customPromise) // => `true` when pass `.Promise`, falsey otherwise\n```\n\nOr finally, you can pass Promise constructor as second argument to `.promisify`/`.hybridify` method. Like that\n\n```js\nconst fs = require('fs')\nconst hybridify = require('hybridify')\nconst readFile = hybridify.hybridify(fs.readFile, require('when'))\n\nconst promise = readFile('index.js')\n\nconsole.log(promise.Promise) // => The `when` promise constructor, on old environments\nconsole.log(promise.___customPromise) // => `true` on old environments\n```\n\n## Related\n* [callback2stream](https://www.npmjs.com/package/callback2stream): Transform sync, async or generator function to Stream. Correctly handle errors. [homepage](https://github.com/hybridables/callback2stream)\n* [letta](https://www.npmjs.com/package/letta): Promisify sync, async or generator function, using [relike][]. Kind of promisify, but… [more](https://www.npmjs.com/package/letta) | [homepage](https://github.com/hybridables/letta)\n* [limon](https://www.npmjs.com/package/limon): The pluggable JavaScript lexer. Limon = Lemon. | [homepage](https://github.com/limonjs/limon)\n* [promise2stream](https://www.npmjs.com/package/promise2stream): Transform ES2015 Promise to Stream - specifically, Transform Stream using… [more](https://www.npmjs.com/package/promise2stream) | [homepage](https://github.com/hybridables/promise2stream)\n* [relike-all](https://www.npmjs.com/package/relike-all): Promisify all function in an object, using [relike][]. | [homepage](https://github.com/hybridables/relike-all)\n* [relike-value](https://www.npmjs.com/package/relike-value): Create promise from sync, async, string, number, array and so on. Handle… [more](https://www.npmjs.com/package/relike-value) | [homepage](https://github.com/hybridables/relike-value)\n* [relike](https://www.npmjs.com/package/relike): Simple promisify async or sync function with sane defaults. Lower level than… [more](https://www.npmjs.com/package/relike) | [homepage](https://github.com/hybridables/relike)\n* [value2stream](https://www.npmjs.com/package/value2stream): Transform any value to stream. Create a stream from any value -… [more](https://www.npmjs.com/package/value2stream) | [homepage](https://github.com/hybridables/value2stream)\n\n## Contributing\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/hybridables/hybridify/issues/new).  \nBut before doing anything, please read the [CONTRIBUTING.md](./CONTRIBUTING.md) guidelines.\n\n## [Charlike Make Reagent](http://j.mp/1stW47C) [![new message to charlike][new-message-img]][new-message-url] [![freenode #charlike][freenode-img]][freenode-url]\n\n[![tunnckoCore.tk][author-www-img]][author-www-url] [![keybase tunnckoCore][keybase-img]][keybase-url] [![tunnckoCore npm][author-npm-img]][author-npm-url] [![tunnckoCore twitter][author-twitter-img]][author-twitter-url] [![tunnckoCore github][author-github-img]][author-github-url]\n\n[bluebird]: https://github.com/petkaantonov/bluebird\n[hybridify-all]: https://github.com/hybridables/hybridify-all\n[letta]: https://github.com/hybridables/letta\n[relike]: https://github.com/hybridables/relike\n[relike-all]: https://github.com/hybridables/relike-all\n[through2]: https://github.com/rvagg/through2\n\n[npmjs-url]: https://www.npmjs.com/package/hybridify\n[npmjs-img]: https://img.shields.io/npm/v/hybridify.svg?label=hybridify\n\n[license-url]: https://github.com/hybridables/hybridify/blob/master/LICENSE\n[license-img]: https://img.shields.io/npm/l/hybridify.svg\n\n[downloads-url]: https://www.npmjs.com/package/hybridify\n[downloads-img]: https://img.shields.io/npm/dm/hybridify.svg\n\n[codeclimate-url]: https://codeclimate.com/github/hybridables/hybridify\n[codeclimate-img]: https://img.shields.io/codeclimate/github/hybridables/hybridify.svg\n\n[travis-url]: https://travis-ci.org/hybridables/hybridify\n[travis-img]: https://img.shields.io/travis/hybridables/hybridify/master.svg\n\n[coveralls-url]: https://coveralls.io/r/hybridables/hybridify\n[coveralls-img]: https://img.shields.io/coveralls/hybridables/hybridify.svg\n\n[david-url]: https://david-dm.org/hybridables/hybridify\n[david-img]: https://img.shields.io/david/hybridables/hybridify.svg\n\n[standard-url]: https://github.com/feross/standard\n[standard-img]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg\n\n[author-www-url]: http://www.tunnckocore.tk\n[author-www-img]: https://img.shields.io/badge/www-tunnckocore.tk-fe7d37.svg\n\n[keybase-url]: https://keybase.io/tunnckocore\n[keybase-img]: https://img.shields.io/badge/keybase-tunnckocore-8a7967.svg\n\n[author-npm-url]: https://www.npmjs.com/~tunnckocore\n[author-npm-img]: https://img.shields.io/badge/npm-~tunnckocore-cb3837.svg\n\n[author-twitter-url]: https://twitter.com/tunnckoCore\n[author-twitter-img]: https://img.shields.io/badge/twitter-@tunnckoCore-55acee.svg\n\n[author-github-url]: https://github.com/tunnckoCore\n[author-github-img]: https://img.shields.io/badge/github-@tunnckoCore-4183c4.svg\n\n[freenode-url]: http://webchat.freenode.net/?channels=charlike\n[freenode-img]: https://img.shields.io/badge/freenode-%23charlike-5654a4.svg\n\n[new-message-url]: https://github.com/tunnckoCore/ama\n[new-message-img]: https://img.shields.io/badge/ask%20me-anything-green.svg","maintainers":[{"email":"super.ludiq@gmail.com","name":"vanchoy"},{"email":"mameto2011@gmail.com","name":"tunnckocore"}],"time":{"modified":"2022-06-18T23:20:07.779Z","created":"2015-01-17T15:31:41.444Z","0.0.0":"2015-01-17T15:31:41.444Z","0.0.1":"2015-01-17T18:36:49.457Z","1.0.0":"2015-01-21T04:36:10.423Z","1.0.1":"2015-01-26T02:01:17.052Z","1.0.2":"2015-01-26T02:05:27.921Z","1.0.3":"2015-01-26T03:23:19.105Z","1.0.4":"2015-01-28T13:49:06.439Z","1.0.5":"2015-01-31T22:02:32.856Z","1.0.6":"2015-01-31T22:18:45.986Z","1.0.7":"2015-05-15T22:03:23.899Z","1.0.9":"2015-05-16T23:34:55.029Z","2.0.0":"2016-05-15T22:47:43.305Z"},"homepage":"https://github.com/hybridables/hybridify#readme","keywords":["all","api","args","async","asynchronous","callback","callback-style","cb","common","func","function","hybrid","hybridify","hybrids","letta","new","old","promise","promisify","relike","style","sync","synchronous"],"repository":{"type":"git","url":"git+https://github.com/hybridables/hybridify.git"},"author":{"name":"Charlike Mike Reagent","email":"@tunnckoCore","url":"http://www.tunnckocore.tk"},"bugs":{"url":"https://github.com/hybridables/hybridify/issues"},"license":"MIT","readmeFilename":"README.md","users":{"azusa0127":true}}