delay.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. "use strict";
  2. module.exports = function (repo, ms) {
  3. var saveAs = repo.saveAs;
  4. var loadAs = repo.loadAs;
  5. var readRef = repo.readRef;
  6. var updateRef = repo.updateRef;
  7. var createTree = repo.createTree;
  8. repo.saveAs = saveAsDelayed;
  9. repo.loadAs = loadAsDelayed;
  10. repo.readRef = readRefDelayed;
  11. repo.updateRed = updateRefDelayed;
  12. if (createTree) repo.createTree = createTreeDelayed;
  13. function saveAsDelayed(type, value, callback) {
  14. if (!callback) return saveAsDelayed.bind(repo, type, value);
  15. setTimeout(function () {
  16. return saveAs.call(repo, type, value, callback);
  17. }, ms);
  18. }
  19. function loadAsDelayed(type, hash, callback) {
  20. if (!callback) return loadAsDelayed.bind(repo, type, hash);
  21. setTimeout(function () {
  22. return loadAs.call(repo, type, hash, callback);
  23. }, ms);
  24. }
  25. function readRefDelayed(ref, callback) {
  26. if (!callback) return readRefDelayed.bind(repo, ref);
  27. setTimeout(function () {
  28. return readRef.call(repo, ref, callback);
  29. }, ms);
  30. }
  31. function updateRefDelayed(ref, hash, callback) {
  32. if (!callback) return updateRefDelayed.bind(repo, ref, hash);
  33. setTimeout(function () {
  34. return updateRef.call(repo, ref, hash, callback);
  35. }, ms);
  36. }
  37. function createTreeDelayed(entries, callback) {
  38. if (!callback) return createTreeDelayed.bind(repo, entries);
  39. setTimeout(function () {
  40. return createTree.call(repo, entries, callback);
  41. }, ms);
  42. }
  43. };