const {
isMainThread,
parentPort,
workerData
} = require("worker_threads");
const assert = require("assert");
const NodeGit = require("../../");
const loopingCheckoutHead = require("./loop_checkout.js");
if (isMainThread) {
throw new Error("Must be run via worker thread");
}
parentPort.postMessage("init");
const { clonePath, url } = workerData;
const cloneOpts = {
fetchOpts: {
callbacks: {
certificateCheck: () => 0
}
}
};
let repository;
let filterName = "psuedo_filter";
let applyCallbackResult = 1;
return NodeGit.Clone(url, clonePath, cloneOpts)
.then(function(_repository) {
repository = _repository;
assert.ok(repository instanceof NodeGit.Repository);
return NodeGit.FilterRegistry.register(filterName, {
apply: function() {
applyCallbackResult = 0;
},
check: function() {
return NodeGit.Error.CODE.OK;
}
}, 0);
})
.then(function(result) {
assert.strictEqual(result, NodeGit.Error.CODE.OK);
return loopingCheckoutHead(clonePath, repository, 0);
}).then(function() {
assert.strictEqual(applyCallbackResult, 0);
parentPort.postMessage("success");
})
.catch((err) => {
parentPort.postMessage("failure");
});