Node.js module that exports a require
function that can be used to load a "promisified" version of Node.js modules that export asynchronous functions using a Node-callback convention (callback function as last parameter with error passed as first parameter to the callback).
Part of the code is based on promisify-node, licensed under an MIT License. The main differences are:
- This code makes use of the
util.promisify
function that now ships with Node.js since v8.0.0. - This code can only run on module names and can only deal with simple cases (no recursion, no advanced logic)
Run npm install promisify-require
const promisifyRequire = require('promisify-require');
const fs = promisifyRequire('fs');
async function run() {
let data = await fs.readFile('./LICENSE', 'utf8');
console.log(data);
}
run().then(_ => console.log('The end'));
- There is no magic way to determine whether a function uses a callback mechanism or not. The code uses heuristics based on the signature of the function. This works for main Node.js modules. It may well break a few functions and modules, though.
- The code does not parse objects exported by modules recursively. Only first level functions get promisified.
The code is available under an MIT license.