{"_id":"@atsushi_suzuki/promisify","_rev":"5-f4f64a1644b07786ede6d1e286a57e62","name":"@atsushi_suzuki/promisify","description":"convert node.js callback function into function that returns promise","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@atsushi_suzuki/promisify","version":"0.0.1","description":"convert node.js callback function into function that returns promise","main":"lib/promisify.js","types":"lib/promisify.d.ts","scripts":{"build":"tsc","prepublish":"tsc","test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/AtsushiSuzuki/node-promisify.git"},"author":{"name":"Atsushi Suzuki"},"license":"ISC","bugs":{"url":"https://github.com/AtsushiSuzuki/node-promisify/issues"},"homepage":"https://github.com/AtsushiSuzuki/node-promisify#readme","dependencies":{},"devDependencies":{"@types/mocha":"^2.2.32","@types/node":"^6.0.46","mocha":"^3.1.2","typescript":"^2.0.6"},"gitHead":"efe790d9ae76309562779fa584cd3b05203d84af","_id":"@atsushi_suzuki/promisify@0.0.1","_shasum":"90baebb26ef17e28e12099ca243e64f96bb56c17","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"atsushi_suzuki","email":"possibly.maybe.probably@gmail.com"},"dist":{"shasum":"90baebb26ef17e28e12099ca243e64f96bb56c17","tarball":"https://registry.npmjs.org/@atsushi_suzuki/promisify/-/promisify-0.0.1.tgz","integrity":"sha512-RZcIfynsKZQFj5+HhYHBezmVpPj+/nsud7JXWXGIil/DibR5lhGS/YeTE/H7NiVTIBtzRghurP/uaJx+n782LA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBW60cTaFO77m+ryN48P20utIZSBil6Imvkat21zB49ZAiEAwnXP9Lnl5uJiI7ZTykGJ4TOMAB3DTOkM5y4NkTGFpYU="}]},"maintainers":[{"name":"atsushi_suzuki","email":"possibly.maybe.probably@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/promisify-0.0.1.tgz_1478072969283_0.47896967036649585"}},"0.0.2":{"name":"@atsushi_suzuki/promisify","version":"0.0.2","description":"convert node.js callback function into function that returns promise","main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=6"},"scripts":{"build":"tsc tools/gen.ts && node tools/gen > lib/promisify.ts && tsc","prepublish":"npm run build","test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/AtsushiSuzuki/node-promisify.git"},"author":{"name":"Atsushi Suzuki"},"license":"ISC","bugs":{"url":"https://github.com/AtsushiSuzuki/node-promisify/issues"},"homepage":"https://github.com/AtsushiSuzuki/node-promisify#readme","dependencies":{},"devDependencies":{"@types/mocha":"^2.2.32","@types/node":"^6.0.46","mocha":"^3.1.2","typescript":"^2.0.6"},"gitHead":"77115747c0ce41e986f8d875a4d45c4f74c8693a","_id":"@atsushi_suzuki/promisify@0.0.2","_shasum":"2b906fdf69baa3b40ad9b0fb38e6915bd92eb6bd","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"atsushi_suzuki","email":"possibly.maybe.probably@gmail.com"},"dist":{"shasum":"2b906fdf69baa3b40ad9b0fb38e6915bd92eb6bd","tarball":"https://registry.npmjs.org/@atsushi_suzuki/promisify/-/promisify-0.0.2.tgz","integrity":"sha512-hyFvdiIboT3BP9bpcwxx6JhuutFdrV2SbQuHeDHF7MF2W2TQ2rOrc+aAi0pY96ge4t3FUvDq0sVKOHe2Kx9viA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1yO+T6WzrMuxsa22x4ug+ZZp2dPEgPZh3BAF9Niy1agIhAMMSq3k7e9PdkR9UEL+gX6IS4h58RCaa01MON7eDFtmN"}]},"maintainers":[{"name":"atsushi_suzuki","email":"possibly.maybe.probably@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/promisify-0.0.2.tgz_1478852512156_0.3801841442473233"}},"0.0.3":{"name":"@atsushi_suzuki/promisify","version":"0.0.3","description":"convert node.js callback function into function that returns promise","main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=6"},"scripts":{"build":"tsc tools/gen.ts && node tools/gen > lib/promisify.ts && tsc","prepublish":"npm run build","test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/AtsushiSuzuki/node-promisify.git"},"author":{"name":"Atsushi Suzuki"},"license":"ISC","bugs":{"url":"https://github.com/AtsushiSuzuki/node-promisify/issues"},"homepage":"https://github.com/AtsushiSuzuki/node-promisify#readme","dependencies":{},"devDependencies":{"@types/mocha":"^2.2.37","@types/node":"^6.0.60","mocha":"^3.2.0","typescript":"^2.1.4"},"gitHead":"f8c94f00e718d796f777b0cc78982b2b27e097f9","_id":"@atsushi_suzuki/promisify@0.0.3","_shasum":"60cd0c101c95dac3d53a58e11316769664669f74","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"atsushi_suzuki","email":"possibly.maybe.probably@gmail.com"},"dist":{"shasum":"60cd0c101c95dac3d53a58e11316769664669f74","tarball":"https://registry.npmjs.org/@atsushi_suzuki/promisify/-/promisify-0.0.3.tgz","integrity":"sha512-bfWj8Rafs+Kqjut9XbmUd63X4CliZk1vAcxX6blAHNilicqGAr8icgStM5/A6Bio9GVUzM9aqyyFS4552GEGqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdfD8Vfbh7qcAz++4MCuKUQEokLPb33dTqd5QElgxARAIgacHrgT1+pLOUIEhFe7pwLGSA66f/RiSM5BYFEQt3/6c="}]},"maintainers":[{"name":"atsushi_suzuki","email":"possibly.maybe.probably@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/promisify-0.0.3.tgz_1484123312146_0.1820723032578826"}}},"readme":"promisify\r\n=========\r\n\r\nConvert node.js style function into function that returns promise.\r\n\r\n# Usage\r\n```sh\r\n$ npm i --save @atsushi_suzuki/promisify\r\n```\r\n\r\n```typescript\r\nimport * as fs from \"fs\";\r\nimport * as p from \"@atsushi_suzuki/promisify\";\r\n\r\n(async function () {\r\n  const readFile = p.fn(fs.readFile);\r\n  const data = await readFile(\"package.json\", \"utf-8\");\r\n\r\n  console.log(data);\r\n})();\r\n```\r\n\r\n# API\r\n\r\n## function promisify(f: Function): (...args: any[]) => Promise<any>\r\npromisify node.js style function with single result.\r\n\r\nusage:\r\n```typescript\r\nconst data = await p.promisify(fs.readFile)(\"package.json\", \"utf-8\");\r\n```\r\n\r\n## function promisifyn(f: Function): (...args: any[]) => Promise<any[]>\r\npromisify node.js style function with multiple results.\r\n\r\nusage:\r\n```typescript\r\nconst [bytesRead, buffer] = await p.promisifyn(fs.read)(fd, buf, offset, length, pos);\r\n```\r\n\r\n## function call(f: Function, ...args: any[]): Promise<any>\r\ncall node.js style function with single result.\r\n\r\nusage:\r\n```typescript\r\nconst data = await p.call(fs.readFile, \"package.json\", \"utf-8\");\r\n```\r\n\r\n## function calln(f: Function, ...args: any[]): Promise<any[]>\r\ncall node.js style function with multiple results.\r\n\r\nusage:\r\n```typescript\r\nconst [bytesRead, buffer] = await p.calln(fs.read, fd, buf, offset, length, pos);\r\n```\r\n\r\n## function wait(ee: EventEmitter, event: string): Promise<any>\r\nreturns a promise to wait until specified event fires. with single event argument.\r\n\r\nusage:\r\n```typescript\r\nconst data = await p.wait(rs, \"data\");\r\n```\r\n\r\n## function waitn(ee: EventEmitter, event: string): Promise<any[]>\r\nreturns a promise to wait until specified event fires. with multiple event arguments.\r\n\r\nusage:\r\n```typescript\r\nconst [code, signal] = await p.waitn(proc, \"exit\");\r\n```\r\n\r\n## function waitAny(...defs: EventDefinition[]): Promise<any>\r\nreturns a promise to wait until any of specified events fire.\r\n\r\n```typescript\r\ntype EventDefinition = [\r\n  EventEmitter,\r\n  {[event: string]: Function}\r\n];\r\n```\r\n\r\nusage:\r\n```typescript\r\nconst data = await p.waitAny([conn, {\r\n  \"data\": (data) => data,\r\n  \"close\": () => Promise.reject(new Error(\"unexpected close\")),\r\n  \"error\": (err) => Promise.reject(err),\r\n}]);\r\n```\r\n","maintainers":[{"name":"atsushi_suzuki","email":"possibly.maybe.probably@gmail.com"}],"time":{"modified":"2022-06-12T14:51:18.901Z","created":"2016-11-02T07:49:31.544Z","0.0.1":"2016-11-02T07:49:31.544Z","0.0.2":"2016-11-11T08:21:52.393Z","0.0.3":"2017-01-11T08:28:32.370Z"},"homepage":"https://github.com/AtsushiSuzuki/node-promisify#readme","repository":{"type":"git","url":"git+https://github.com/AtsushiSuzuki/node-promisify.git"},"author":{"name":"Atsushi Suzuki"},"bugs":{"url":"https://github.com/AtsushiSuzuki/node-promisify/issues"},"license":"ISC","readmeFilename":"readme.md"}