27 lines
811 B
JavaScript
27 lines
811 B
JavaScript
|
var modes = require('../lib/modes');
|
||
|
|
||
|
module.exports = function (local, remote) {
|
||
|
var loadAs = local.loadAs;
|
||
|
local.loadAs = newLoadAs;
|
||
|
function newLoadAs(type, hash, callback) {
|
||
|
if (!callback) return newLoadAs.bind(local. type, hash);
|
||
|
loadAs.call(local, type, hash, function (err, body) {
|
||
|
if (err) return callback(err);
|
||
|
if (body === undefined) return remote.loadAs(type, hash, callback);
|
||
|
callback(null, body);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var readRef = local.readRef;
|
||
|
local.readRef = newReadRef;
|
||
|
function newReadRef(ref, callback) {
|
||
|
if (!callback) return newReadRef.bind(local. ref);
|
||
|
readRef.call(local, ref, function (err, body) {
|
||
|
if (err) return callback(err);
|
||
|
if (body === undefined) return remote.readRef(ref, callback);
|
||
|
callback(null, body);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
};
|