https://github.com/mishoo/UglifyJS
Raw File
Tip revision: 20f9a1d9089dca38456c8da8dcf110915967a82e authored by Alex Lam S.L on 03 May 2020, 03:01:18 UTC
v3.9.2
Tip revision: 20f9a1d
fetch.js
var fs = require("fs");
var parse = require("url").parse;
var path = require("path");

try {
    fs.mkdirSync("./tmp");
} catch (e) {
    if (e.code != "EEXIST") throw e;
}

function local(url) {
    return path.join("./tmp", encodeURIComponent(url));
}

function read(url) {
    return fs.createReadStream(local(url));
}

module.exports = function(url, callback) {
    var result = read(url);
    result.on("error", function(e) {
        if (e.code != "ENOENT") return callback(e);
        var options = parse(url);
        options.rejectUnauthorized = false;
        require(options.protocol.slice(0, -1)).get(options, function(res) {
            if (res.statusCode !== 200) return callback(res.statusCode);
            res.pipe(fs.createWriteStream(local(url)));
            callback(null, res);
        });
    }).on("open", function() {
        callback(null, result);
    });
};
back to top