@dbmx/toasts 0.0.39 → 0.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/SdmxDatagrid/index.cjs +1 -1
- package/cjs/components/SdmxDatagrid/utils/index.cjs +7 -9
- package/cjs/fake-ZW05emqw.js +35 -0
- package/cjs/fake-ZW05emqw.js.map +1 -0
- package/cjs/index.cjs.map +1 -0
- package/esm/fake-JHdVf8lQ.js +14 -0
- package/esm/fake-JHdVf8lQ.js.map +1 -0
- package/esm/index-lo-MKsEb.js +556 -0
- package/esm/index-lo-MKsEb.js.map +1 -0
- package/esm/index.js +1 -1
- package/package.json +3 -3
- package/yarn-error.log +7136 -0
- package/cjs/_virtual/_commonjsHelpers.cjs +0 -33
- package/cjs/_virtual/artefacts.cjs +0 -5
- package/cjs/_virtual/core.cjs +0 -5
- package/cjs/_virtual/dependencyResolver.cjs +0 -5
- package/cjs/_virtual/index.esm.cjs +0 -8
- package/cjs/_virtual/items.cjs +0 -5
- package/cjs/_virtual/sdmx.cjs +0 -5
- package/cjs/node_modules/@dbmx/sdmx/cjs/core.cjs +0 -940
- package/cjs/node_modules/@dbmx/sdmx/cjs/data.cjs +0 -140
- package/cjs/node_modules/@dbmx/sdmx/cjs/dependencyResolver.cjs +0 -73
- package/cjs/node_modules/@dbmx/sdmx/cjs/items.cjs +0 -100
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/assoc.cjs +0 -38
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/assocPath.cjs +0 -55
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/bind.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/compose.cjs +0 -43
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/concat.cjs +0 -69
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/curryN.cjs +0 -66
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/defaultTo.cjs +0 -38
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/dissoc.cjs +0 -33
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/dissocPath.cjs +0 -79
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/equals.cjs +0 -42
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/filter.cjs +0 -63
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/forEach.cjs +0 -58
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/identity.cjs +0 -34
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_arity.cjs +0 -56
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_arrayFromIterator.cjs +0 -13
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_arrayReduce.cjs +0 -14
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_assoc.cjs +0 -37
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_checkForMethod.cjs +0 -30
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_complement.cjs +0 -10
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_createReduce.cjs +0 -32
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_curry1.cjs +0 -27
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_curry2.cjs +0 -38
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_curry3.cjs +0 -56
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_curryN.cjs +0 -48
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_dispatchable.cjs +0 -49
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_dissoc.cjs +0 -36
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_equals.cjs +0 -143
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_filter.cjs +0 -17
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_functionName.cjs +0 -10
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_has.cjs +0 -8
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_identity.cjs +0 -8
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_includes.cjs +0 -11
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_includesWith.cjs +0 -16
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_indexOf.cjs +0 -61
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isArguments.cjs +0 -18
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isArray.cjs +0 -20
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isArrayLike.cjs +0 -55
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isFunction.cjs +0 -9
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isInteger.cjs +0 -16
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isObject.cjs +0 -8
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isPlaceholder.cjs +0 -8
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isString.cjs +0 -8
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_isTransformer.cjs +0 -8
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_map.cjs +0 -15
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_objectIs.cjs +0 -18
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_pipe.cjs +0 -10
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_quote.cjs +0 -10
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_toISOString.cjs +0 -17
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_toString.cjs +0 -62
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_xArrayReduce.cjs +0 -18
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_xReduce.cjs +0 -30
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_xfBase.cjs +0 -13
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_xfilter.cjs +0 -26
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_xmap.cjs +0 -27
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/internal/_xwrap.cjs +0 -24
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/is.cjs +0 -39
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/isNil.cjs +0 -32
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/keys.cjs +0 -80
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/map.cjs +0 -75
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/nth.cjs +0 -44
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/path.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/pathOr.cjs +0 -38
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/paths.cjs +0 -50
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/pick.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/pipe.cjs +0 -46
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/prop.cjs +0 -43
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/propOr.cjs +0 -46
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/reduce.cjs +0 -71
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/reject.cjs +0 -43
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/remove.cjs +0 -37
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/reverse.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/slice.cjs +0 -42
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/tail.cjs +0 -46
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/times.cjs +0 -49
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/toString.cjs +0 -53
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/type.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/cjs/node_modules/ramda/es/values.cjs +0 -42
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/artefacts.cjs +0 -40
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/categorisation.cjs +0 -32
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/categoryscheme.cjs +0 -16
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/codelist.cjs +0 -31
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/conceptscheme.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/contentconstraint.cjs +0 -40
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/dataconstraint.cjs +0 -39
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/dataflow.cjs +0 -32
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/dataproviderscheme.cjs +0 -16
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/datastructure.cjs +0 -73
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/hierarchicalcodelist.cjs +0 -38
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/metadatastructure.cjs +0 -62
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/provisionagreement.cjs +0 -32
- package/cjs/node_modules/@dbmx/sdmx/cjs/types/sdmx.cjs +0 -71
- package/cjs/node_modules/@dbmx/sdmx/cjs/utils/url-regexp.cjs +0 -30
- package/cjs/node_modules/@dbmx/sdmx/esm/_virtual/_commonjsHelpers.cjs +0 -10
- package/cjs/node_modules/@dbmx/sdmx/esm/_virtual/url-join.cjs +0 -5
- package/cjs/node_modules/@dbmx/sdmx/esm/core.cjs +0 -554
- package/cjs/node_modules/@dbmx/sdmx/esm/datastructures.cjs +0 -73
- package/cjs/node_modules/@dbmx/sdmx/esm/dependencyResolver.cjs +0 -65
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/bind.cjs +0 -39
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/compose.cjs +0 -40
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/curryN.cjs +0 -63
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/defaultTo.cjs +0 -37
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/forEach.cjs +0 -59
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/identity.cjs +0 -32
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_arity.cjs +0 -66
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_arrayReduce.cjs +0 -15
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_checkForMethod.cjs +0 -29
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_createReduce.cjs +0 -36
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_curry1.cjs +0 -24
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_curry2.cjs +0 -36
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_curry3.cjs +0 -54
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_curryN.cjs +0 -50
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_dispatchable.cjs +0 -51
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_has.cjs +0 -7
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_identity.cjs +0 -7
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_isArguments.cjs +0 -19
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_isArray.cjs +0 -19
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_isArrayLike.cjs +0 -58
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_isInteger.cjs +0 -15
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_isPlaceholder.cjs +0 -7
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_isString.cjs +0 -7
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_isTransformer.cjs +0 -7
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_map.cjs +0 -16
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_pipe.cjs +0 -9
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_xArrayReduce.cjs +0 -21
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_xReduce.cjs +0 -34
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_xfBase.cjs +0 -12
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_xmap.cjs +0 -31
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/internal/_xwrap.cjs +0 -29
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/is.cjs +0 -38
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/keys.cjs +0 -94
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/map.cjs +0 -71
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/nth.cjs +0 -42
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/path.cjs +0 -39
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/pathOr.cjs +0 -35
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/paths.cjs +0 -50
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/pick.cjs +0 -43
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/pipe.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/prop.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/propOr.cjs +0 -43
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/reduce.cjs +0 -68
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/reverse.cjs +0 -39
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/slice.cjs +0 -41
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/tail.cjs +0 -45
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/ramda/es/values.cjs +0 -42
- package/cjs/node_modules/@dbmx/sdmx/esm/node_modules/url-join/lib/url-join.cjs +0 -89
- package/cjs/node_modules/@dbmx/sdmx/esm/query.cjs +0 -85
- package/cjs/node_modules/@dbmx/sdmx/esm/types/artefacts.cjs +0 -31
- package/cjs/node_modules/@dbmx/sdmx/esm/types/categorisation.cjs +0 -19
- package/cjs/node_modules/@dbmx/sdmx/esm/types/categoryscheme.cjs +0 -13
- package/cjs/node_modules/@dbmx/sdmx/esm/types/codelist.cjs +0 -19
- package/cjs/node_modules/@dbmx/sdmx/esm/types/conceptscheme.cjs +0 -29
- package/cjs/node_modules/@dbmx/sdmx/esm/types/contentconstraint.cjs +0 -23
- package/cjs/node_modules/@dbmx/sdmx/esm/types/dataconstraint.cjs +0 -22
- package/cjs/node_modules/@dbmx/sdmx/esm/types/dataflow.cjs +0 -20
- package/cjs/node_modules/@dbmx/sdmx/esm/types/dataproviderscheme.cjs +0 -13
- package/cjs/node_modules/@dbmx/sdmx/esm/types/datastructure.cjs +0 -74
- package/cjs/node_modules/@dbmx/sdmx/esm/types/hierarchicalcodelist.cjs +0 -22
- package/cjs/node_modules/@dbmx/sdmx/esm/types/metadatastructure.cjs +0 -58
- package/cjs/node_modules/@dbmx/sdmx/esm/types/provisionagreement.cjs +0 -19
- package/cjs/node_modules/@dbmx/sdmx/esm/types/sdmx.cjs +0 -51
- package/cjs/node_modules/@dbmx/semver/dist/index.esm.cjs +0 -584
- package/cjs/node_modules/lru-cache/index.cjs +0 -281
- package/cjs/node_modules/yallist/iterator.cjs +0 -20
- package/cjs/node_modules/yallist/yallist.cjs +0 -370
- package/esm/index-FCPRKLj2.js +0 -720
- package/esm/index-FCPRKLj2.js.map +0 -1
- package/esm/index-Mh78z9aW.js +0 -562
- package/esm/index-Mh78z9aW.js.map +0 -1
- package/esm/index-T2bcfyHI.js +0 -8510
- package/esm/index-T2bcfyHI.js.map +0 -1
- package/esm/index-W7MLRHBf.js +0 -87
- package/esm/index-W7MLRHBf.js.map +0 -1
- package/esm/index-gBe37Ynf.js +0 -8438
- package/esm/index-gBe37Ynf.js.map +0 -1
- package/esm/index-ndYjFD6I.js +0 -8438
- package/esm/index-ndYjFD6I.js.map +0 -1
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _commonjsHelpers = require('../../_virtual/_commonjsHelpers.cjs');
|
|
4
|
-
var yallist = require('../yallist/yallist.cjs');
|
|
5
|
-
|
|
6
|
-
// A linked list to keep track of recently-used-ness
|
|
7
|
-
const Yallist = yallist.yallist;
|
|
8
|
-
const MAX = Symbol('max');
|
|
9
|
-
const LENGTH = Symbol('length');
|
|
10
|
-
const LENGTH_CALCULATOR = Symbol('lengthCalculator');
|
|
11
|
-
const ALLOW_STALE = Symbol('allowStale');
|
|
12
|
-
const MAX_AGE = Symbol('maxAge');
|
|
13
|
-
const DISPOSE = Symbol('dispose');
|
|
14
|
-
const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet');
|
|
15
|
-
const LRU_LIST = Symbol('lruList');
|
|
16
|
-
const CACHE = Symbol('cache');
|
|
17
|
-
const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet');
|
|
18
|
-
const naiveLength = () => 1;
|
|
19
|
-
|
|
20
|
-
// lruList is a yallist where the head is the youngest
|
|
21
|
-
// item, and the tail is the oldest. the list contains the Hit
|
|
22
|
-
// objects as the entries.
|
|
23
|
-
// Each Hit object has a reference to its Yallist.Node. This
|
|
24
|
-
// never changes.
|
|
25
|
-
//
|
|
26
|
-
// cache is a Map (or PseudoMap) that matches the keys to
|
|
27
|
-
// the Yallist.Node object.
|
|
28
|
-
class LRUCache {
|
|
29
|
-
constructor(options) {
|
|
30
|
-
if (typeof options === 'number') options = {
|
|
31
|
-
max: options
|
|
32
|
-
};
|
|
33
|
-
if (!options) options = {};
|
|
34
|
-
if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number');
|
|
35
|
-
// Kind of weird to have a default max of Infinity, but oh well.
|
|
36
|
-
this[MAX] = options.max || Infinity;
|
|
37
|
-
const lc = options.length || naiveLength;
|
|
38
|
-
this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc;
|
|
39
|
-
this[ALLOW_STALE] = options.stale || false;
|
|
40
|
-
if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number');
|
|
41
|
-
this[MAX_AGE] = options.maxAge || 0;
|
|
42
|
-
this[DISPOSE] = options.dispose;
|
|
43
|
-
this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;
|
|
44
|
-
this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;
|
|
45
|
-
this.reset();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// resize the cache when the max changes.
|
|
49
|
-
set max(mL) {
|
|
50
|
-
if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number');
|
|
51
|
-
this[MAX] = mL || Infinity;
|
|
52
|
-
trim(this);
|
|
53
|
-
}
|
|
54
|
-
get max() {
|
|
55
|
-
return this[MAX];
|
|
56
|
-
}
|
|
57
|
-
set allowStale(allowStale) {
|
|
58
|
-
this[ALLOW_STALE] = !!allowStale;
|
|
59
|
-
}
|
|
60
|
-
get allowStale() {
|
|
61
|
-
return this[ALLOW_STALE];
|
|
62
|
-
}
|
|
63
|
-
set maxAge(mA) {
|
|
64
|
-
if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number');
|
|
65
|
-
this[MAX_AGE] = mA;
|
|
66
|
-
trim(this);
|
|
67
|
-
}
|
|
68
|
-
get maxAge() {
|
|
69
|
-
return this[MAX_AGE];
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// resize the cache when the lengthCalculator changes.
|
|
73
|
-
set lengthCalculator(lC) {
|
|
74
|
-
if (typeof lC !== 'function') lC = naiveLength;
|
|
75
|
-
if (lC !== this[LENGTH_CALCULATOR]) {
|
|
76
|
-
this[LENGTH_CALCULATOR] = lC;
|
|
77
|
-
this[LENGTH] = 0;
|
|
78
|
-
this[LRU_LIST].forEach(hit => {
|
|
79
|
-
hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key);
|
|
80
|
-
this[LENGTH] += hit.length;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
trim(this);
|
|
84
|
-
}
|
|
85
|
-
get lengthCalculator() {
|
|
86
|
-
return this[LENGTH_CALCULATOR];
|
|
87
|
-
}
|
|
88
|
-
get length() {
|
|
89
|
-
return this[LENGTH];
|
|
90
|
-
}
|
|
91
|
-
get itemCount() {
|
|
92
|
-
return this[LRU_LIST].length;
|
|
93
|
-
}
|
|
94
|
-
rforEach(fn, thisp) {
|
|
95
|
-
thisp = thisp || this;
|
|
96
|
-
for (let walker = this[LRU_LIST].tail; walker !== null;) {
|
|
97
|
-
const prev = walker.prev;
|
|
98
|
-
forEachStep(this, fn, walker, thisp);
|
|
99
|
-
walker = prev;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
forEach(fn, thisp) {
|
|
103
|
-
thisp = thisp || this;
|
|
104
|
-
for (let walker = this[LRU_LIST].head; walker !== null;) {
|
|
105
|
-
const next = walker.next;
|
|
106
|
-
forEachStep(this, fn, walker, thisp);
|
|
107
|
-
walker = next;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
keys() {
|
|
111
|
-
return this[LRU_LIST].toArray().map(k => k.key);
|
|
112
|
-
}
|
|
113
|
-
values() {
|
|
114
|
-
return this[LRU_LIST].toArray().map(k => k.value);
|
|
115
|
-
}
|
|
116
|
-
reset() {
|
|
117
|
-
if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) {
|
|
118
|
-
this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value));
|
|
119
|
-
}
|
|
120
|
-
this[CACHE] = new Map(); // hash of items by key
|
|
121
|
-
this[LRU_LIST] = new Yallist(); // list of items in order of use recency
|
|
122
|
-
this[LENGTH] = 0; // length of items in the list
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
dump() {
|
|
126
|
-
return this[LRU_LIST].map(hit => isStale(this, hit) ? false : {
|
|
127
|
-
k: hit.key,
|
|
128
|
-
v: hit.value,
|
|
129
|
-
e: hit.now + (hit.maxAge || 0)
|
|
130
|
-
}).toArray().filter(h => h);
|
|
131
|
-
}
|
|
132
|
-
dumpLru() {
|
|
133
|
-
return this[LRU_LIST];
|
|
134
|
-
}
|
|
135
|
-
set(key, value, maxAge) {
|
|
136
|
-
maxAge = maxAge || this[MAX_AGE];
|
|
137
|
-
if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number');
|
|
138
|
-
const now = maxAge ? Date.now() : 0;
|
|
139
|
-
const len = this[LENGTH_CALCULATOR](value, key);
|
|
140
|
-
if (this[CACHE].has(key)) {
|
|
141
|
-
if (len > this[MAX]) {
|
|
142
|
-
del(this, this[CACHE].get(key));
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
const node = this[CACHE].get(key);
|
|
146
|
-
const item = node.value;
|
|
147
|
-
|
|
148
|
-
// dispose of the old one before overwriting
|
|
149
|
-
// split out into 2 ifs for better coverage tracking
|
|
150
|
-
if (this[DISPOSE]) {
|
|
151
|
-
if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value);
|
|
152
|
-
}
|
|
153
|
-
item.now = now;
|
|
154
|
-
item.maxAge = maxAge;
|
|
155
|
-
item.value = value;
|
|
156
|
-
this[LENGTH] += len - item.length;
|
|
157
|
-
item.length = len;
|
|
158
|
-
this.get(key);
|
|
159
|
-
trim(this);
|
|
160
|
-
return true;
|
|
161
|
-
}
|
|
162
|
-
const hit = new Entry(key, value, len, now, maxAge);
|
|
163
|
-
|
|
164
|
-
// oversized objects fall out of cache automatically.
|
|
165
|
-
if (hit.length > this[MAX]) {
|
|
166
|
-
if (this[DISPOSE]) this[DISPOSE](key, value);
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
this[LENGTH] += hit.length;
|
|
170
|
-
this[LRU_LIST].unshift(hit);
|
|
171
|
-
this[CACHE].set(key, this[LRU_LIST].head);
|
|
172
|
-
trim(this);
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
has(key) {
|
|
176
|
-
if (!this[CACHE].has(key)) return false;
|
|
177
|
-
const hit = this[CACHE].get(key).value;
|
|
178
|
-
return !isStale(this, hit);
|
|
179
|
-
}
|
|
180
|
-
get(key) {
|
|
181
|
-
return get(this, key, true);
|
|
182
|
-
}
|
|
183
|
-
peek(key) {
|
|
184
|
-
return get(this, key, false);
|
|
185
|
-
}
|
|
186
|
-
pop() {
|
|
187
|
-
const node = this[LRU_LIST].tail;
|
|
188
|
-
if (!node) return null;
|
|
189
|
-
del(this, node);
|
|
190
|
-
return node.value;
|
|
191
|
-
}
|
|
192
|
-
del(key) {
|
|
193
|
-
del(this, this[CACHE].get(key));
|
|
194
|
-
}
|
|
195
|
-
load(arr) {
|
|
196
|
-
// reset the cache
|
|
197
|
-
this.reset();
|
|
198
|
-
const now = Date.now();
|
|
199
|
-
// A previous serialized cache has the most recent items first
|
|
200
|
-
for (let l = arr.length - 1; l >= 0; l--) {
|
|
201
|
-
const hit = arr[l];
|
|
202
|
-
const expiresAt = hit.e || 0;
|
|
203
|
-
if (expiresAt === 0)
|
|
204
|
-
// the item was created without expiration in a non aged cache
|
|
205
|
-
this.set(hit.k, hit.v);else {
|
|
206
|
-
const maxAge = expiresAt - now;
|
|
207
|
-
// dont add already expired items
|
|
208
|
-
if (maxAge > 0) {
|
|
209
|
-
this.set(hit.k, hit.v, maxAge);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
prune() {
|
|
215
|
-
this[CACHE].forEach((value, key) => get(this, key, false));
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
const get = (self, key, doUse) => {
|
|
219
|
-
const node = self[CACHE].get(key);
|
|
220
|
-
if (node) {
|
|
221
|
-
const hit = node.value;
|
|
222
|
-
if (isStale(self, hit)) {
|
|
223
|
-
del(self, node);
|
|
224
|
-
if (!self[ALLOW_STALE]) return undefined;
|
|
225
|
-
} else {
|
|
226
|
-
if (doUse) {
|
|
227
|
-
if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now();
|
|
228
|
-
self[LRU_LIST].unshiftNode(node);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return hit.value;
|
|
232
|
-
}
|
|
233
|
-
};
|
|
234
|
-
const isStale = (self, hit) => {
|
|
235
|
-
if (!hit || !hit.maxAge && !self[MAX_AGE]) return false;
|
|
236
|
-
const diff = Date.now() - hit.now;
|
|
237
|
-
return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE];
|
|
238
|
-
};
|
|
239
|
-
const trim = self => {
|
|
240
|
-
if (self[LENGTH] > self[MAX]) {
|
|
241
|
-
for (let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) {
|
|
242
|
-
// We know that we're about to delete this one, and also
|
|
243
|
-
// what the next least recently used key will be, so just
|
|
244
|
-
// go ahead and set it now.
|
|
245
|
-
const prev = walker.prev;
|
|
246
|
-
del(self, walker);
|
|
247
|
-
walker = prev;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
};
|
|
251
|
-
const del = (self, node) => {
|
|
252
|
-
if (node) {
|
|
253
|
-
const hit = node.value;
|
|
254
|
-
if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value);
|
|
255
|
-
self[LENGTH] -= hit.length;
|
|
256
|
-
self[CACHE].delete(hit.key);
|
|
257
|
-
self[LRU_LIST].removeNode(node);
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
class Entry {
|
|
261
|
-
constructor(key, value, length, now, maxAge) {
|
|
262
|
-
this.key = key;
|
|
263
|
-
this.value = value;
|
|
264
|
-
this.length = length;
|
|
265
|
-
this.now = now;
|
|
266
|
-
this.maxAge = maxAge || 0;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
const forEachStep = (self, fn, node, thisp) => {
|
|
270
|
-
let hit = node.value;
|
|
271
|
-
if (isStale(self, hit)) {
|
|
272
|
-
del(self, node);
|
|
273
|
-
if (!self[ALLOW_STALE]) hit = undefined;
|
|
274
|
-
}
|
|
275
|
-
if (hit) fn.call(thisp, hit.value, hit.key, self);
|
|
276
|
-
};
|
|
277
|
-
var lruCache = LRUCache;
|
|
278
|
-
|
|
279
|
-
var LRU = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(lruCache);
|
|
280
|
-
|
|
281
|
-
module.exports = LRU;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var iterator;
|
|
4
|
-
var hasRequiredIterator;
|
|
5
|
-
|
|
6
|
-
function requireIterator () {
|
|
7
|
-
if (hasRequiredIterator) return iterator;
|
|
8
|
-
hasRequiredIterator = 1;
|
|
9
|
-
|
|
10
|
-
iterator = function (Yallist) {
|
|
11
|
-
Yallist.prototype[Symbol.iterator] = function* () {
|
|
12
|
-
for (let walker = this.head; walker; walker = walker.next) {
|
|
13
|
-
yield walker.value;
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
return iterator;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
exports.__require = requireIterator;
|
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var iterator = require('./iterator.cjs');
|
|
4
|
-
|
|
5
|
-
var yallist = Yallist;
|
|
6
|
-
Yallist.Node = Node;
|
|
7
|
-
Yallist.create = Yallist;
|
|
8
|
-
function Yallist(list) {
|
|
9
|
-
var self = this;
|
|
10
|
-
if (!(self instanceof Yallist)) {
|
|
11
|
-
self = new Yallist();
|
|
12
|
-
}
|
|
13
|
-
self.tail = null;
|
|
14
|
-
self.head = null;
|
|
15
|
-
self.length = 0;
|
|
16
|
-
if (list && typeof list.forEach === 'function') {
|
|
17
|
-
list.forEach(function (item) {
|
|
18
|
-
self.push(item);
|
|
19
|
-
});
|
|
20
|
-
} else if (arguments.length > 0) {
|
|
21
|
-
for (var i = 0, l = arguments.length; i < l; i++) {
|
|
22
|
-
self.push(arguments[i]);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return self;
|
|
26
|
-
}
|
|
27
|
-
Yallist.prototype.removeNode = function (node) {
|
|
28
|
-
if (node.list !== this) {
|
|
29
|
-
throw new Error('removing node which does not belong to this list');
|
|
30
|
-
}
|
|
31
|
-
var next = node.next;
|
|
32
|
-
var prev = node.prev;
|
|
33
|
-
if (next) {
|
|
34
|
-
next.prev = prev;
|
|
35
|
-
}
|
|
36
|
-
if (prev) {
|
|
37
|
-
prev.next = next;
|
|
38
|
-
}
|
|
39
|
-
if (node === this.head) {
|
|
40
|
-
this.head = next;
|
|
41
|
-
}
|
|
42
|
-
if (node === this.tail) {
|
|
43
|
-
this.tail = prev;
|
|
44
|
-
}
|
|
45
|
-
node.list.length--;
|
|
46
|
-
node.next = null;
|
|
47
|
-
node.prev = null;
|
|
48
|
-
node.list = null;
|
|
49
|
-
return next;
|
|
50
|
-
};
|
|
51
|
-
Yallist.prototype.unshiftNode = function (node) {
|
|
52
|
-
if (node === this.head) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
if (node.list) {
|
|
56
|
-
node.list.removeNode(node);
|
|
57
|
-
}
|
|
58
|
-
var head = this.head;
|
|
59
|
-
node.list = this;
|
|
60
|
-
node.next = head;
|
|
61
|
-
if (head) {
|
|
62
|
-
head.prev = node;
|
|
63
|
-
}
|
|
64
|
-
this.head = node;
|
|
65
|
-
if (!this.tail) {
|
|
66
|
-
this.tail = node;
|
|
67
|
-
}
|
|
68
|
-
this.length++;
|
|
69
|
-
};
|
|
70
|
-
Yallist.prototype.pushNode = function (node) {
|
|
71
|
-
if (node === this.tail) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (node.list) {
|
|
75
|
-
node.list.removeNode(node);
|
|
76
|
-
}
|
|
77
|
-
var tail = this.tail;
|
|
78
|
-
node.list = this;
|
|
79
|
-
node.prev = tail;
|
|
80
|
-
if (tail) {
|
|
81
|
-
tail.next = node;
|
|
82
|
-
}
|
|
83
|
-
this.tail = node;
|
|
84
|
-
if (!this.head) {
|
|
85
|
-
this.head = node;
|
|
86
|
-
}
|
|
87
|
-
this.length++;
|
|
88
|
-
};
|
|
89
|
-
Yallist.prototype.push = function () {
|
|
90
|
-
for (var i = 0, l = arguments.length; i < l; i++) {
|
|
91
|
-
push(this, arguments[i]);
|
|
92
|
-
}
|
|
93
|
-
return this.length;
|
|
94
|
-
};
|
|
95
|
-
Yallist.prototype.unshift = function () {
|
|
96
|
-
for (var i = 0, l = arguments.length; i < l; i++) {
|
|
97
|
-
unshift(this, arguments[i]);
|
|
98
|
-
}
|
|
99
|
-
return this.length;
|
|
100
|
-
};
|
|
101
|
-
Yallist.prototype.pop = function () {
|
|
102
|
-
if (!this.tail) {
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
var res = this.tail.value;
|
|
106
|
-
this.tail = this.tail.prev;
|
|
107
|
-
if (this.tail) {
|
|
108
|
-
this.tail.next = null;
|
|
109
|
-
} else {
|
|
110
|
-
this.head = null;
|
|
111
|
-
}
|
|
112
|
-
this.length--;
|
|
113
|
-
return res;
|
|
114
|
-
};
|
|
115
|
-
Yallist.prototype.shift = function () {
|
|
116
|
-
if (!this.head) {
|
|
117
|
-
return undefined;
|
|
118
|
-
}
|
|
119
|
-
var res = this.head.value;
|
|
120
|
-
this.head = this.head.next;
|
|
121
|
-
if (this.head) {
|
|
122
|
-
this.head.prev = null;
|
|
123
|
-
} else {
|
|
124
|
-
this.tail = null;
|
|
125
|
-
}
|
|
126
|
-
this.length--;
|
|
127
|
-
return res;
|
|
128
|
-
};
|
|
129
|
-
Yallist.prototype.forEach = function (fn, thisp) {
|
|
130
|
-
thisp = thisp || this;
|
|
131
|
-
for (var walker = this.head, i = 0; walker !== null; i++) {
|
|
132
|
-
fn.call(thisp, walker.value, i, this);
|
|
133
|
-
walker = walker.next;
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
Yallist.prototype.forEachReverse = function (fn, thisp) {
|
|
137
|
-
thisp = thisp || this;
|
|
138
|
-
for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {
|
|
139
|
-
fn.call(thisp, walker.value, i, this);
|
|
140
|
-
walker = walker.prev;
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
Yallist.prototype.get = function (n) {
|
|
144
|
-
for (var i = 0, walker = this.head; walker !== null && i < n; i++) {
|
|
145
|
-
// abort out of the list early if we hit a cycle
|
|
146
|
-
walker = walker.next;
|
|
147
|
-
}
|
|
148
|
-
if (i === n && walker !== null) {
|
|
149
|
-
return walker.value;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
Yallist.prototype.getReverse = function (n) {
|
|
153
|
-
for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {
|
|
154
|
-
// abort out of the list early if we hit a cycle
|
|
155
|
-
walker = walker.prev;
|
|
156
|
-
}
|
|
157
|
-
if (i === n && walker !== null) {
|
|
158
|
-
return walker.value;
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
Yallist.prototype.map = function (fn, thisp) {
|
|
162
|
-
thisp = thisp || this;
|
|
163
|
-
var res = new Yallist();
|
|
164
|
-
for (var walker = this.head; walker !== null;) {
|
|
165
|
-
res.push(fn.call(thisp, walker.value, this));
|
|
166
|
-
walker = walker.next;
|
|
167
|
-
}
|
|
168
|
-
return res;
|
|
169
|
-
};
|
|
170
|
-
Yallist.prototype.mapReverse = function (fn, thisp) {
|
|
171
|
-
thisp = thisp || this;
|
|
172
|
-
var res = new Yallist();
|
|
173
|
-
for (var walker = this.tail; walker !== null;) {
|
|
174
|
-
res.push(fn.call(thisp, walker.value, this));
|
|
175
|
-
walker = walker.prev;
|
|
176
|
-
}
|
|
177
|
-
return res;
|
|
178
|
-
};
|
|
179
|
-
Yallist.prototype.reduce = function (fn, initial) {
|
|
180
|
-
var acc;
|
|
181
|
-
var walker = this.head;
|
|
182
|
-
if (arguments.length > 1) {
|
|
183
|
-
acc = initial;
|
|
184
|
-
} else if (this.head) {
|
|
185
|
-
walker = this.head.next;
|
|
186
|
-
acc = this.head.value;
|
|
187
|
-
} else {
|
|
188
|
-
throw new TypeError('Reduce of empty list with no initial value');
|
|
189
|
-
}
|
|
190
|
-
for (var i = 0; walker !== null; i++) {
|
|
191
|
-
acc = fn(acc, walker.value, i);
|
|
192
|
-
walker = walker.next;
|
|
193
|
-
}
|
|
194
|
-
return acc;
|
|
195
|
-
};
|
|
196
|
-
Yallist.prototype.reduceReverse = function (fn, initial) {
|
|
197
|
-
var acc;
|
|
198
|
-
var walker = this.tail;
|
|
199
|
-
if (arguments.length > 1) {
|
|
200
|
-
acc = initial;
|
|
201
|
-
} else if (this.tail) {
|
|
202
|
-
walker = this.tail.prev;
|
|
203
|
-
acc = this.tail.value;
|
|
204
|
-
} else {
|
|
205
|
-
throw new TypeError('Reduce of empty list with no initial value');
|
|
206
|
-
}
|
|
207
|
-
for (var i = this.length - 1; walker !== null; i--) {
|
|
208
|
-
acc = fn(acc, walker.value, i);
|
|
209
|
-
walker = walker.prev;
|
|
210
|
-
}
|
|
211
|
-
return acc;
|
|
212
|
-
};
|
|
213
|
-
Yallist.prototype.toArray = function () {
|
|
214
|
-
var arr = new Array(this.length);
|
|
215
|
-
for (var i = 0, walker = this.head; walker !== null; i++) {
|
|
216
|
-
arr[i] = walker.value;
|
|
217
|
-
walker = walker.next;
|
|
218
|
-
}
|
|
219
|
-
return arr;
|
|
220
|
-
};
|
|
221
|
-
Yallist.prototype.toArrayReverse = function () {
|
|
222
|
-
var arr = new Array(this.length);
|
|
223
|
-
for (var i = 0, walker = this.tail; walker !== null; i++) {
|
|
224
|
-
arr[i] = walker.value;
|
|
225
|
-
walker = walker.prev;
|
|
226
|
-
}
|
|
227
|
-
return arr;
|
|
228
|
-
};
|
|
229
|
-
Yallist.prototype.slice = function (from, to) {
|
|
230
|
-
to = to || this.length;
|
|
231
|
-
if (to < 0) {
|
|
232
|
-
to += this.length;
|
|
233
|
-
}
|
|
234
|
-
from = from || 0;
|
|
235
|
-
if (from < 0) {
|
|
236
|
-
from += this.length;
|
|
237
|
-
}
|
|
238
|
-
var ret = new Yallist();
|
|
239
|
-
if (to < from || to < 0) {
|
|
240
|
-
return ret;
|
|
241
|
-
}
|
|
242
|
-
if (from < 0) {
|
|
243
|
-
from = 0;
|
|
244
|
-
}
|
|
245
|
-
if (to > this.length) {
|
|
246
|
-
to = this.length;
|
|
247
|
-
}
|
|
248
|
-
for (var i = 0, walker = this.head; walker !== null && i < from; i++) {
|
|
249
|
-
walker = walker.next;
|
|
250
|
-
}
|
|
251
|
-
for (; walker !== null && i < to; i++, walker = walker.next) {
|
|
252
|
-
ret.push(walker.value);
|
|
253
|
-
}
|
|
254
|
-
return ret;
|
|
255
|
-
};
|
|
256
|
-
Yallist.prototype.sliceReverse = function (from, to) {
|
|
257
|
-
to = to || this.length;
|
|
258
|
-
if (to < 0) {
|
|
259
|
-
to += this.length;
|
|
260
|
-
}
|
|
261
|
-
from = from || 0;
|
|
262
|
-
if (from < 0) {
|
|
263
|
-
from += this.length;
|
|
264
|
-
}
|
|
265
|
-
var ret = new Yallist();
|
|
266
|
-
if (to < from || to < 0) {
|
|
267
|
-
return ret;
|
|
268
|
-
}
|
|
269
|
-
if (from < 0) {
|
|
270
|
-
from = 0;
|
|
271
|
-
}
|
|
272
|
-
if (to > this.length) {
|
|
273
|
-
to = this.length;
|
|
274
|
-
}
|
|
275
|
-
for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {
|
|
276
|
-
walker = walker.prev;
|
|
277
|
-
}
|
|
278
|
-
for (; walker !== null && i > from; i--, walker = walker.prev) {
|
|
279
|
-
ret.push(walker.value);
|
|
280
|
-
}
|
|
281
|
-
return ret;
|
|
282
|
-
};
|
|
283
|
-
Yallist.prototype.splice = function (start, deleteCount, ...nodes) {
|
|
284
|
-
if (start > this.length) {
|
|
285
|
-
start = this.length - 1;
|
|
286
|
-
}
|
|
287
|
-
if (start < 0) {
|
|
288
|
-
start = this.length + start;
|
|
289
|
-
}
|
|
290
|
-
for (var i = 0, walker = this.head; walker !== null && i < start; i++) {
|
|
291
|
-
walker = walker.next;
|
|
292
|
-
}
|
|
293
|
-
var ret = [];
|
|
294
|
-
for (var i = 0; walker && i < deleteCount; i++) {
|
|
295
|
-
ret.push(walker.value);
|
|
296
|
-
walker = this.removeNode(walker);
|
|
297
|
-
}
|
|
298
|
-
if (walker === null) {
|
|
299
|
-
walker = this.tail;
|
|
300
|
-
}
|
|
301
|
-
if (walker !== this.head && walker !== this.tail) {
|
|
302
|
-
walker = walker.prev;
|
|
303
|
-
}
|
|
304
|
-
for (var i = 0; i < nodes.length; i++) {
|
|
305
|
-
walker = insert(this, walker, nodes[i]);
|
|
306
|
-
}
|
|
307
|
-
return ret;
|
|
308
|
-
};
|
|
309
|
-
Yallist.prototype.reverse = function () {
|
|
310
|
-
var head = this.head;
|
|
311
|
-
var tail = this.tail;
|
|
312
|
-
for (var walker = head; walker !== null; walker = walker.prev) {
|
|
313
|
-
var p = walker.prev;
|
|
314
|
-
walker.prev = walker.next;
|
|
315
|
-
walker.next = p;
|
|
316
|
-
}
|
|
317
|
-
this.head = tail;
|
|
318
|
-
this.tail = head;
|
|
319
|
-
return this;
|
|
320
|
-
};
|
|
321
|
-
function insert(self, node, value) {
|
|
322
|
-
var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self);
|
|
323
|
-
if (inserted.next === null) {
|
|
324
|
-
self.tail = inserted;
|
|
325
|
-
}
|
|
326
|
-
if (inserted.prev === null) {
|
|
327
|
-
self.head = inserted;
|
|
328
|
-
}
|
|
329
|
-
self.length++;
|
|
330
|
-
return inserted;
|
|
331
|
-
}
|
|
332
|
-
function push(self, item) {
|
|
333
|
-
self.tail = new Node(item, self.tail, null, self);
|
|
334
|
-
if (!self.head) {
|
|
335
|
-
self.head = self.tail;
|
|
336
|
-
}
|
|
337
|
-
self.length++;
|
|
338
|
-
}
|
|
339
|
-
function unshift(self, item) {
|
|
340
|
-
self.head = new Node(item, null, self.head, self);
|
|
341
|
-
if (!self.tail) {
|
|
342
|
-
self.tail = self.head;
|
|
343
|
-
}
|
|
344
|
-
self.length++;
|
|
345
|
-
}
|
|
346
|
-
function Node(value, prev, next, list) {
|
|
347
|
-
if (!(this instanceof Node)) {
|
|
348
|
-
return new Node(value, prev, next, list);
|
|
349
|
-
}
|
|
350
|
-
this.list = list;
|
|
351
|
-
this.value = value;
|
|
352
|
-
if (prev) {
|
|
353
|
-
prev.next = this;
|
|
354
|
-
this.prev = prev;
|
|
355
|
-
} else {
|
|
356
|
-
this.prev = null;
|
|
357
|
-
}
|
|
358
|
-
if (next) {
|
|
359
|
-
next.prev = this;
|
|
360
|
-
this.next = next;
|
|
361
|
-
} else {
|
|
362
|
-
this.next = null;
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
try {
|
|
366
|
-
// add if support for Symbol.iterator is present
|
|
367
|
-
iterator.__require()(Yallist);
|
|
368
|
-
} catch (er) {}
|
|
369
|
-
|
|
370
|
-
exports.yallist = yallist;
|