aboutsummaryrefslogtreecommitdiff
path: root/node_modules/lru-cache
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/lru-cache')
-rw-r--r--node_modules/lru-cache/LICENSE15
-rw-r--r--node_modules/lru-cache/README.md158
-rw-r--r--node_modules/lru-cache/index.js467
-rw-r--r--node_modules/lru-cache/package.json33
4 files changed, 0 insertions, 673 deletions
diff --git a/node_modules/lru-cache/LICENSE b/node_modules/lru-cache/LICENSE
deleted file mode 100644
index 19129e315..000000000
--- a/node_modules/lru-cache/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/lru-cache/README.md b/node_modules/lru-cache/README.md
deleted file mode 100644
index d660dd574..000000000
--- a/node_modules/lru-cache/README.md
+++ /dev/null
@@ -1,158 +0,0 @@
-# lru cache
-
-A cache object that deletes the least-recently-used items.
-
-[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache)
-
-## Installation:
-
-```javascript
-npm install lru-cache --save
-```
-
-## Usage:
-
-```javascript
-var LRU = require("lru-cache")
- , options = { max: 500
- , length: function (n, key) { return n * 2 + key.length }
- , dispose: function (key, n) { n.close() }
- , maxAge: 1000 * 60 * 60 }
- , cache = LRU(options)
- , otherCache = LRU(50) // sets just the max size
-
-cache.set("key", "value")
-cache.get("key") // "value"
-
-// non-string keys ARE fully supported
-// but note that it must be THE SAME object, not
-// just a JSON-equivalent object.
-var someObject = { a: 1 }
-cache.set(someObject, 'a value')
-// Object keys are not toString()-ed
-cache.set('[object Object]', 'a different value')
-assert.equal(cache.get(someObject), 'a value')
-// A similar object with same keys/values won't work,
-// because it's a different object identity
-assert.equal(cache.get({ a: 1 }), undefined)
-
-cache.reset() // empty the cache
-```
-
-If you put more stuff in it, then items will fall out.
-
-If you try to put an oversized thing in it, then it'll fall out right
-away.
-
-## Options
-
-* `max` The maximum size of the cache, checked by applying the length
- function to all values in the cache. Not setting this is kind of
- silly, since that's the whole purpose of this lib, but it defaults
- to `Infinity`.
-* `maxAge` Maximum age in ms. Items are not pro-actively pruned out
- as they age, but if you try to get an item that is too old, it'll
- drop it and return undefined instead of giving it to you.
-* `length` Function that is used to calculate the length of stored
- items. If you're storing strings or buffers, then you probably want
- to do something like `function(n, key){return n.length}`. The default is
- `function(){return 1}`, which is fine if you want to store `max`
- like-sized things. The item is passed as the first argument, and
- the key is passed as the second argumnet.
-* `dispose` Function that is called on items when they are dropped
- from the cache. This can be handy if you want to close file
- descriptors or do other cleanup tasks when items are no longer
- accessible. Called with `key, value`. It's called *before*
- actually removing the item from the internal cache, so if you want
- to immediately put it back in, you'll have to do that in a
- `nextTick` or `setTimeout` callback or it won't do anything.
-* `stale` By default, if you set a `maxAge`, it'll only actually pull
- stale items out of the cache when you `get(key)`. (That is, it's
- not pre-emptively doing a `setTimeout` or anything.) If you set
- `stale:true`, it'll return the stale value before deleting it. If
- you don't set this, then it'll return `undefined` when you try to
- get a stale entry, as if it had already been deleted.
-* `noDisposeOnSet` By default, if you set a `dispose()` method, then
- it'll be called whenever a `set()` operation overwrites an existing
- key. If you set this option, `dispose()` will only be called when a
- key falls out of the cache, not when it is overwritten.
-
-## API
-
-* `set(key, value, maxAge)`
-* `get(key) => value`
-
- Both of these will update the "recently used"-ness of the key.
- They do what you think. `maxAge` is optional and overrides the
- cache `maxAge` option if provided.
-
- If the key is not found, `get()` will return `undefined`.
-
- The key and val can be any value.
-
-* `peek(key)`
-
- Returns the key value (or `undefined` if not found) without
- updating the "recently used"-ness of the key.
-
- (If you find yourself using this a lot, you *might* be using the
- wrong sort of data structure, but there are some use cases where
- it's handy.)
-
-* `del(key)`
-
- Deletes a key out of the cache.
-
-* `reset()`
-
- Clear the cache entirely, throwing away all values.
-
-* `has(key)`
-
- Check if a key is in the cache, without updating the recent-ness
- or deleting it for being stale.
-
-* `forEach(function(value,key,cache), [thisp])`
-
- Just like `Array.prototype.forEach`. Iterates over all the keys
- in the cache, in order of recent-ness. (Ie, more recently used
- items are iterated over first.)
-
-* `rforEach(function(value,key,cache), [thisp])`
-
- The same as `cache.forEach(...)` but items are iterated over in
- reverse order. (ie, less recently used items are iterated over
- first.)
-
-* `keys()`
-
- Return an array of the keys in the cache.
-
-* `values()`
-
- Return an array of the values in the cache.
-
-* `length`
-
- Return total length of objects in cache taking into account
- `length` options function.
-
-* `itemCount`
-
- Return total quantity of objects currently in cache. Note, that
- `stale` (see options) items are returned as part of this item
- count.
-
-* `dump()`
-
- Return an array of the cache entries ready for serialization and usage
- with 'destinationCache.load(arr)`.
-
-* `load(cacheEntriesArray)`
-
- Loads another cache entries array, obtained with `sourceCache.dump()`,
- into the cache. The destination cache is reset before loading new entries
-
-* `prune()`
-
- Manually iterates over the entire cache proactively pruning old entries
diff --git a/node_modules/lru-cache/index.js b/node_modules/lru-cache/index.js
deleted file mode 100644
index 3f047f8ca..000000000
--- a/node_modules/lru-cache/index.js
+++ /dev/null
@@ -1,467 +0,0 @@
-'use strict'
-
-module.exports = LRUCache
-
-// This will be a proper iterable 'Map' in engines that support it,
-// or a fakey-fake PseudoMap in older versions.
-var Map = require('pseudomap')
-var util = require('util')
-
-// A linked list to keep track of recently-used-ness
-var Yallist = require('yallist')
-
-// use symbols if possible, otherwise just _props
-var hasSymbol = typeof Symbol === 'function'
-var makeSymbol
-if (hasSymbol) {
- makeSymbol = function (key) {
- return Symbol(key)
- }
-} else {
- makeSymbol = function (key) {
- return '_' + key
- }
-}
-
-var MAX = makeSymbol('max')
-var LENGTH = makeSymbol('length')
-var LENGTH_CALCULATOR = makeSymbol('lengthCalculator')
-var ALLOW_STALE = makeSymbol('allowStale')
-var MAX_AGE = makeSymbol('maxAge')
-var DISPOSE = makeSymbol('dispose')
-var NO_DISPOSE_ON_SET = makeSymbol('noDisposeOnSet')
-var LRU_LIST = makeSymbol('lruList')
-var CACHE = makeSymbol('cache')
-
-function naiveLength () { return 1 }
-
-// lruList is a yallist where the head is the youngest
-// item, and the tail is the oldest. the list contains the Hit
-// objects as the entries.
-// Each Hit object has a reference to its Yallist.Node. This
-// never changes.
-//
-// cache is a Map (or PseudoMap) that matches the keys to
-// the Yallist.Node object.
-function LRUCache (options) {
- if (!(this instanceof LRUCache)) {
- return new LRUCache(options)
- }
-
- if (typeof options === 'number') {
- options = { max: options }
- }
-
- if (!options) {
- options = {}
- }
-
- var max = this[MAX] = options.max
- // Kind of weird to have a default max of Infinity, but oh well.
- if (!max ||
- !(typeof max === 'number') ||
- max <= 0) {
- this[MAX] = Infinity
- }
-
- var lc = options.length || naiveLength
- if (typeof lc !== 'function') {
- lc = naiveLength
- }
- this[LENGTH_CALCULATOR] = lc
-
- this[ALLOW_STALE] = options.stale || false
- this[MAX_AGE] = options.maxAge || 0
- this[DISPOSE] = options.dispose
- this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false
- this.reset()
-}
-
-// resize the cache when the max changes.
-Object.defineProperty(LRUCache.prototype, 'max', {
- set: function (mL) {
- if (!mL || !(typeof mL === 'number') || mL <= 0) {
- mL = Infinity
- }
- this[MAX] = mL
- trim(this)
- },
- get: function () {
- return this[MAX]
- },
- enumerable: true
-})
-
-Object.defineProperty(LRUCache.prototype, 'allowStale', {
- set: function (allowStale) {
- this[ALLOW_STALE] = !!allowStale
- },
- get: function () {
- return this[ALLOW_STALE]
- },
- enumerable: true
-})
-
-Object.defineProperty(LRUCache.prototype, 'maxAge', {
- set: function (mA) {
- if (!mA || !(typeof mA === 'number') || mA < 0) {
- mA = 0
- }
- this[MAX_AGE] = mA
- trim(this)
- },
- get: function () {
- return this[MAX_AGE]
- },
- enumerable: true
-})
-
-// resize the cache when the lengthCalculator changes.
-Object.defineProperty(LRUCache.prototype, 'lengthCalculator', {
- set: function (lC) {
- if (typeof lC !== 'function') {
- lC = naiveLength
- }
- if (lC !== this[LENGTH_CALCULATOR]) {
- this[LENGTH_CALCULATOR] = lC
- this[LENGTH] = 0
- this[LRU_LIST].forEach(function (hit) {
- hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)
- this[LENGTH] += hit.length
- }, this)
- }
- trim(this)
- },
- get: function () { return this[LENGTH_CALCULATOR] },
- enumerable: true
-})
-
-Object.defineProperty(LRUCache.prototype, 'length', {
- get: function () { return this[LENGTH] },
- enumerable: true
-})
-
-Object.defineProperty(LRUCache.prototype, 'itemCount', {
- get: function () { return this[LRU_LIST].length },
- enumerable: true
-})
-
-LRUCache.prototype.rforEach = function (fn, thisp) {
- thisp = thisp || this
- for (var walker = this[LRU_LIST].tail; walker !== null;) {
- var prev = walker.prev
- forEachStep(this, fn, walker, thisp)
- walker = prev
- }
-}
-
-function forEachStep (self, fn, node, thisp) {
- var hit = node.value
- if (isStale(self, hit)) {
- del(self, node)
- if (!self[ALLOW_STALE]) {
- hit = undefined
- }
- }
- if (hit) {
- fn.call(thisp, hit.value, hit.key, self)
- }
-}
-
-LRUCache.prototype.forEach = function (fn, thisp) {
- thisp = thisp || this
- for (var walker = this[LRU_LIST].head; walker !== null;) {
- var next = walker.next
- forEachStep(this, fn, walker, thisp)
- walker = next
- }
-}
-
-LRUCache.prototype.keys = function () {
- return this[LRU_LIST].toArray().map(function (k) {
- return k.key
- }, this)
-}
-
-LRUCache.prototype.values = function () {
- return this[LRU_LIST].toArray().map(function (k) {
- return k.value
- }, this)
-}
-
-LRUCache.prototype.reset = function () {
- if (this[DISPOSE] &&
- this[LRU_LIST] &&
- this[LRU_LIST].length) {
- this[LRU_LIST].forEach(function (hit) {
- this[DISPOSE](hit.key, hit.value)
- }, this)
- }
-
- this[CACHE] = new Map() // hash of items by key
- this[LRU_LIST] = new Yallist() // list of items in order of use recency
- this[LENGTH] = 0 // length of items in the list
-}
-
-LRUCache.prototype.dump = function () {
- return this[LRU_LIST].map(function (hit) {
- if (!isStale(this, hit)) {
- return {
- k: hit.key,
- v: hit.value,
- e: hit.now + (hit.maxAge || 0)
- }
- }
- }, this).toArray().filter(function (h) {
- return h
- })
-}
-
-LRUCache.prototype.dumpLru = function () {
- return this[LRU_LIST]
-}
-
-LRUCache.prototype.inspect = function (n, opts) {
- var str = 'LRUCache {'
- var extras = false
-
- var as = this[ALLOW_STALE]
- if (as) {
- str += '\n allowStale: true'
- extras = true
- }
-
- var max = this[MAX]
- if (max && max !== Infinity) {
- if (extras) {
- str += ','
- }
- str += '\n max: ' + util.inspect(max, opts)
- extras = true
- }
-
- var maxAge = this[MAX_AGE]
- if (maxAge) {
- if (extras) {
- str += ','
- }
- str += '\n maxAge: ' + util.inspect(maxAge, opts)
- extras = true
- }
-
- var lc = this[LENGTH_CALCULATOR]
- if (lc && lc !== naiveLength) {
- if (extras) {
- str += ','
- }
- str += '\n length: ' + util.inspect(this[LENGTH], opts)
- extras = true
- }
-
- var didFirst = false
- this[LRU_LIST].forEach(function (item) {
- if (didFirst) {
- str += ',\n '
- } else {
- if (extras) {
- str += ',\n'
- }
- didFirst = true
- str += '\n '
- }
- var key = util.inspect(item.key).split('\n').join('\n ')
- var val = { value: item.value }
- if (item.maxAge !== maxAge) {
- val.maxAge = item.maxAge
- }
- if (lc !== naiveLength) {
- val.length = item.length
- }
- if (isStale(this, item)) {
- val.stale = true
- }
-
- val = util.inspect(val, opts).split('\n').join('\n ')
- str += key + ' => ' + val
- })
-
- if (didFirst || extras) {
- str += '\n'
- }
- str += '}'
-
- return str
-}
-
-LRUCache.prototype.set = function (key, value, maxAge) {
- maxAge = maxAge || this[MAX_AGE]
-
- var now = maxAge ? Date.now() : 0
- var len = this[LENGTH_CALCULATOR](value, key)
-
- if (this[CACHE].has(key)) {
- if (len > this[MAX]) {
- del(this, this[CACHE].get(key))
- return false
- }
-
- var node = this[CACHE].get(key)
- var item = node.value
-
- // dispose of the old one before overwriting
- // split out into 2 ifs for better coverage tracking
- if (this[DISPOSE]) {
- if (!this[NO_DISPOSE_ON_SET]) {
- this[DISPOSE](key, item.value)
- }
- }
-
- item.now = now
- item.maxAge = maxAge
- item.value = value
- this[LENGTH] += len - item.length
- item.length = len
- this.get(key)
- trim(this)
- return true
- }
-
- var hit = new Entry(key, value, len, now, maxAge)
-
- // oversized objects fall out of cache automatically.
- if (hit.length > this[MAX]) {
- if (this[DISPOSE]) {
- this[DISPOSE](key, value)
- }
- return false
- }
-
- this[LENGTH] += hit.length
- this[LRU_LIST].unshift(hit)
- this[CACHE].set(key, this[LRU_LIST].head)
- trim(this)
- return true
-}
-
-LRUCache.prototype.has = function (key) {
- if (!this[CACHE].has(key)) return false
- var hit = this[CACHE].get(key).value
- if (isStale(this, hit)) {
- return false
- }
- return true
-}
-
-LRUCache.prototype.get = function (key) {
- return get(this, key, true)
-}
-
-LRUCache.prototype.peek = function (key) {
- return get(this, key, false)
-}
-
-LRUCache.prototype.pop = function () {
- var node = this[LRU_LIST].tail
- if (!node) return null
- del(this, node)
- return node.value
-}
-
-LRUCache.prototype.del = function (key) {
- del(this, this[CACHE].get(key))
-}
-
-LRUCache.prototype.load = function (arr) {
- // reset the cache
- this.reset()
-
- var now = Date.now()
- // A previous serialized cache has the most recent items first
- for (var l = arr.length - 1; l >= 0; l--) {
- var hit = arr[l]
- var expiresAt = hit.e || 0
- if (expiresAt === 0) {
- // the item was created without expiration in a non aged cache
- this.set(hit.k, hit.v)
- } else {
- var maxAge = expiresAt - now
- // dont add already expired items
- if (maxAge > 0) {
- this.set(hit.k, hit.v, maxAge)
- }
- }
- }
-}
-
-LRUCache.prototype.prune = function () {
- var self = this
- this[CACHE].forEach(function (value, key) {
- get(self, key, false)
- })
-}
-
-function get (self, key, doUse) {
- var node = self[CACHE].get(key)
- if (node) {
- var hit = node.value
- if (isStale(self, hit)) {
- del(self, node)
- if (!self[ALLOW_STALE]) hit = undefined
- } else {
- if (doUse) {
- self[LRU_LIST].unshiftNode(node)
- }
- }
- if (hit) hit = hit.value
- }
- return hit
-}
-
-function isStale (self, hit) {
- if (!hit || (!hit.maxAge && !self[MAX_AGE])) {
- return false
- }
- var stale = false
- var diff = Date.now() - hit.now
- if (hit.maxAge) {
- stale = diff > hit.maxAge
- } else {
- stale = self[MAX_AGE] && (diff > self[MAX_AGE])
- }
- return stale
-}
-
-function trim (self) {
- if (self[LENGTH] > self[MAX]) {
- for (var walker = self[LRU_LIST].tail;
- self[LENGTH] > self[MAX] && walker !== null;) {
- // We know that we're about to delete this one, and also
- // what the next least recently used key will be, so just
- // go ahead and set it now.
- var prev = walker.prev
- del(self, walker)
- walker = prev
- }
- }
-}
-
-function del (self, node) {
- if (node) {
- var hit = node.value
- if (self[DISPOSE]) {
- self[DISPOSE](hit.key, hit.value)
- }
- self[LENGTH] -= hit.length
- self[CACHE].delete(hit.key)
- self[LRU_LIST].removeNode(node)
- }
-}
-
-// classy, since V8 prefers predictable objects.
-function Entry (key, value, length, now, maxAge) {
- this.key = key
- this.value = value
- this.length = length
- this.now = now
- this.maxAge = maxAge || 0
-}
diff --git a/node_modules/lru-cache/package.json b/node_modules/lru-cache/package.json
deleted file mode 100644
index e54b54f8b..000000000
--- a/node_modules/lru-cache/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "lru-cache",
- "description": "A cache object that deletes the least-recently-used items.",
- "version": "4.1.3",
- "author": "Isaac Z. Schlueter <i@izs.me>",
- "keywords": [
- "mru",
- "lru",
- "cache"
- ],
- "scripts": {
- "test": "tap test/*.js --100 -J",
- "posttest": "standard test/*.js index.js",
- "preversion": "npm test",
- "postversion": "npm publish",
- "postpublish": "git push origin --all; git push origin --tags"
- },
- "main": "index.js",
- "repository": "git://github.com/isaacs/node-lru-cache.git",
- "devDependencies": {
- "benchmark": "^2.1.4",
- "standard": "^5.4.1",
- "tap": "^11.1.4"
- },
- "license": "ISC",
- "dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- },
- "files": [
- "index.js"
- ]
-}