Initial commit

This commit is contained in:
jiapengyu
2026-07-27 13:37:48 +08:00
commit ecba71e2a5
39123 changed files with 5989154 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
"use strict";
var NodeGit = require("../../");
/**
* Wraps a method so that you can pass in either a string, OID or the object
* itself and you will always get back a promise that resolves to the object.
* @param {Object} objectType The object type that you're expecting to receive.
* @param {Function} lookupFunction The function to do the lookup for the
* object. Defaults to `objectType.lookup`.
* @return {Function}
*/
function lookupWrapper(objectType, lookupFunction) {
lookupFunction = lookupFunction || objectType.lookup;
return function (repo, id, callback) {
if (id instanceof objectType) {
return Promise.resolve(id).then(function (obj) {
obj.repo = repo;
if (typeof callback === "function") {
callback(null, obj);
}
return obj;
}, callback);
}
return lookupFunction(repo, id).then(function (obj) {
obj.repo = repo;
if (typeof callback === "function") {
callback(null, obj);
}
return obj;
}, callback);
};
}
NodeGit.Utils.lookupWrapper = lookupWrapper;
+43
View File
@@ -0,0 +1,43 @@
"use strict";
var NodeGit = require("../../");
var normalizeOptions = NodeGit.Utils.normalizeOptions;
var shallowClone = NodeGit.Utils.shallowClone;
/**
* Normalize an object to match a struct.
*
* @param {String, Object} oid - The oid string or instance.
* @return {Object} An Oid instance.
*/
function normalizeFetchOptions(options) {
if (options instanceof NodeGit.FetchOptions) {
return options;
}
var callbacks;
var proxyOpts;
if (options) {
options = shallowClone(options);
callbacks = options.callbacks;
proxyOpts = options.proxyOpts;
delete options.callbacks;
delete options.proxyOpts;
} else {
options = {};
}
options = normalizeOptions(options, NodeGit.FetchOptions);
if (callbacks) {
options.callbacks = normalizeOptions(callbacks, NodeGit.RemoteCallbacks);
}
if (proxyOpts) {
options.proxyOpts = normalizeOptions(proxyOpts, NodeGit.ProxyOptions);
}
return options;
}
NodeGit.Utils.normalizeFetchOptions = normalizeFetchOptions;
+31
View File
@@ -0,0 +1,31 @@
"use strict";
var NodeGit = require("../../");
/**
* Normalize an object to match a struct.
*
* @param {String, Object} oid - The oid string or instance.
* @return {Object} An Oid instance.
*/
function normalizeOptions(options, Ctor) {
if (!options) {
return null;
}
if (options instanceof Ctor) {
return options;
}
var instance = new Ctor();
Object.keys(options).forEach(function (key) {
if (typeof options[key] !== "undefined") {
instance[key] = options[key];
}
});
return instance;
}
NodeGit.Utils.normalizeOptions = normalizeOptions;
+16
View File
@@ -0,0 +1,16 @@
"use strict";
var NodeGit = require("../../");
function shallowClone() {
var merges = Array.prototype.slice.call(arguments);
return merges.reduce(function (obj, merge) {
return Object.keys(merge).reduce(function (obj, key) {
obj[key] = merge[key];
return obj;
}, obj);
}, {});
}
NodeGit.Utils.shallowClone = shallowClone;