compat.js 891 Bytes
"use strict";

function requireBluebird() {
    try {
        return require("bluebird");
    } catch (e) {
        console.error("");
        console.error("DON'T PANIC. You're running an old version of node with incomplete Promise support.");
        console.error("EASY FIX: `npm install --save bluebird`");
        console.error("");
        throw e;
    }
}

if ("undefined" === typeof Promise) {
    global.Promise = requireBluebird();
}

if ("function" !== typeof require("util").promisify) {
    require("util").promisify = requireBluebird().promisify;
}

if (!console.debug) {
    console.debug = console.log;
}

var fs = require("fs");
var fsAsync = {};
Object.keys(fs).forEach(function(key) {
    var fn = fs[key];
    if ("function" !== typeof fn || !/[a-z]/.test(key[0])) {
        return;
    }
    fsAsync[key] = require("util").promisify(fn);
});

exports.fsAsync = fsAsync;