Blame view

node_modules/postcss-zindex/lib/layerCache.js 1.09 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
  'use strict';
  
  var has = require('has');
  var uniq = require('uniqs');
  
  function LayerCache (opts) {
      if (!(this instanceof LayerCache)) {
          return new LayerCache(opts);
      }
      this._values = [];
      this._startIndex = opts.startIndex || 1;
  }
  
  function ascending (a, b) {
      return a - b;
  }
  
  function reduceValues (list, value, index) {
      list[value] = index + this._startIndex;
      return list;
  }
  
  LayerCache.prototype._findValue = function (value) {
      if (has(this._values, value)) {
          return this._values[value];
      }
      return false;
  };
  
  LayerCache.prototype.optimizeValues = function () {
      this._values = uniq(this._values).sort(ascending).reduce(reduceValues.bind(this), {});
  };
  
  LayerCache.prototype.addValue = function (value) {
      var parsedValue = parseInt(value, 10);
      // pass only valid values
      if (!parsedValue || parsedValue < 0) {
          return;
      }
      this._values.push(parsedValue);
  };
  
  LayerCache.prototype.getValue = function (value) {
      var parsedValue = parseInt(value, 10);
      return this._findValue(parsedValue) || value;
  };
  
  module.exports = LayerCache;