compare.js
 1  import { eq, gt, gte, lt, lte } from '../version.js';
 2  
 3  function _define_property(obj, key, value) {
 4      if (key in obj) {
 5          Object.defineProperty(obj, key, {
 6              value: value,
 7              enumerable: true,
 8              configurable: true,
 9              writable: true
10          });
11      } else {
12          obj[key] = value;
13      }
14      return obj;
15  }
16  function _object_spread(target) {
17      for(var i = 1; i < arguments.length; i++){
18          var source = arguments[i] != null ? arguments[i] : {};
19          var ownKeys = Object.keys(source);
20          if (typeof Object.getOwnPropertySymbols === "function") {
21              ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
22                  return Object.getOwnPropertyDescriptor(source, sym).enumerable;
23              }));
24          }
25          ownKeys.forEach(function(key) {
26              _define_property(target, key, source[key]);
27          });
28      }
29      return target;
30  }
31  function ownKeys(object, enumerableOnly) {
32      var keys = Object.keys(object);
33      if (Object.getOwnPropertySymbols) {
34          var symbols = Object.getOwnPropertySymbols(object);
35          if (enumerableOnly) {
36              symbols = symbols.filter(function(sym) {
37                  return Object.getOwnPropertyDescriptor(object, sym).enumerable;
38              });
39          }
40          keys.push.apply(keys, symbols);
41      }
42      return keys;
43  }
44  function _object_spread_props(target, source) {
45      source = source != null ? source : {};
46      if (Object.getOwnPropertyDescriptors) {
47          Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
48      } else {
49          ownKeys(Object(source)).forEach(function(key) {
50              Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
51          });
52      }
53      return target;
54  }
55  function compareExtension(descriptor) {
56      function makeComparable(data) {
57          var _data_major, _data_minor, _data_patch;
58          const version = {
59              major: (_data_major = data.major) !== null && _data_major !== void 0 ? _data_major : 0,
60              minor: (_data_minor = data.minor) !== null && _data_minor !== void 0 ? _data_minor : 0,
61              patch: (_data_patch = data.patch) !== null && _data_patch !== void 0 ? _data_patch : 0
62          };
63          return _object_spread_props(_object_spread({}, data), {
64              eq: (value)=>eq(version, value),
65              gt: (value)=>gt(version, value),
66              gte: (value)=>gte(version, value),
67              lt: (value)=>lt(version, value),
68              lte: (value)=>lte(version, value),
69              is: (value)=>data.name === value || data.variant === value
70          });
71      }
72      return _object_spread_props(_object_spread({}, descriptor), {
73          extensions: [
74              ...descriptor.extensions,
75              'compare'
76          ],
77          browser: makeComparable(descriptor.browser),
78          engine: makeComparable(descriptor.engine),
79          os: makeComparable(descriptor.os)
80      });
81  }
82  
83  export { compareExtension };