index.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. var semver = require("semver");
  3. exports.SemVerDSL = function (target, lastPredicate) {
  4. if (lastPredicate === void 0) { lastPredicate = function () { return true; }; }
  5. function createBoundContext(lastPredicate) {
  6. return Object.create({}, {
  7. else: {
  8. value: function (callback) {
  9. if (!lastPredicate())
  10. callback();
  11. }
  12. },
  13. elseIf: {
  14. get: function () {
  15. return exports.SemVerDSL(target, function () { return !lastPredicate(); });
  16. }
  17. }
  18. });
  19. }
  20. ;
  21. var dsl = {
  22. gte: function (version, callback) {
  23. var predicate = function () { return semver.gte(target, version) && lastPredicate(); };
  24. if (predicate())
  25. callback();
  26. return createBoundContext(predicate);
  27. },
  28. lte: function (version, callback) {
  29. var predicate = function () { return semver.lte(target, version) && lastPredicate(); };
  30. if (predicate())
  31. callback();
  32. return createBoundContext(predicate);
  33. },
  34. gt: function (version, callback) {
  35. var predicate = function () { return semver.gt(target, version) && lastPredicate(); };
  36. if (predicate())
  37. callback();
  38. return createBoundContext(predicate);
  39. },
  40. lt: function (version, callback) {
  41. var predicate = function () { return semver.lt(target, version) && lastPredicate(); };
  42. if (predicate())
  43. callback();
  44. return createBoundContext(predicate);
  45. },
  46. eq: function (version, callback) {
  47. var predicate = function () { return semver.eq(target, version) && lastPredicate(); };
  48. if (predicate())
  49. callback();
  50. return createBoundContext(predicate);
  51. },
  52. neq: function (version, callback) {
  53. var predicate = function () { return semver.neq(target, version) && lastPredicate(); };
  54. if (predicate())
  55. callback();
  56. return createBoundContext(predicate);
  57. },
  58. between: function (v1, v2, callback) {
  59. var predicate = function () { return semver.gte(target, v1) && semver.lte(target, v2) && lastPredicate(); };
  60. if (predicate())
  61. callback();
  62. return createBoundContext(predicate);
  63. }
  64. };
  65. return dsl;
  66. };
  67. //# sourceMappingURL=index.js.map