UNPKG

2.58 kBJavaScriptView Raw
1"use strict";
2var semver = require("semver");
3exports.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
\No newline at end of file