collect-your-stuff 1.1.0 → 1.1.2
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/README.md +1492 -1488
- package/browser/collect-your-stuff.js +19292 -19268
- package/browser/collect-your-stuff.min.js +1 -1
- package/dist/collections/arrayable/ArrayElement.d.ts +37 -37
- package/dist/collections/arrayable/ArrayElement.js +71 -71
- package/dist/collections/arrayable/Arrayable.d.ts +109 -108
- package/dist/collections/arrayable/Arrayable.js +196 -195
- package/dist/collections/arrayable/Arrayable.min.js +1 -1
- package/dist/collections/doubly-linked-list/DoubleLinker.d.ts +47 -47
- package/dist/collections/doubly-linked-list/DoubleLinker.js +77 -77
- package/dist/collections/doubly-linked-list/DoublyLinkedList.d.ts +114 -113
- package/dist/collections/doubly-linked-list/DoublyLinkedList.js +275 -257
- package/dist/collections/doubly-linked-list/DoublyLinkedList.min.js +1 -1
- package/dist/collections/linked-list/LinkedList.d.ts +110 -109
- package/dist/collections/linked-list/LinkedList.js +241 -232
- package/dist/collections/linked-list/LinkedList.min.js +1 -1
- package/dist/collections/linked-list/Linker.d.ts +44 -44
- package/dist/collections/linked-list/Linker.js +87 -87
- package/dist/collections/linked-tree-list/LinkedTreeList.d.ts +136 -135
- package/dist/collections/linked-tree-list/LinkedTreeList.js +261 -256
- package/dist/collections/linked-tree-list/LinkedTreeList.min.js +1 -1
- package/dist/collections/linked-tree-list/TreeLinker.d.ts +62 -62
- package/dist/collections/linked-tree-list/TreeLinker.js +85 -85
- package/dist/collections/queue/Queue.d.ts +64 -60
- package/dist/collections/queue/Queue.js +137 -125
- package/dist/collections/queue/Queue.min.js +1 -1
- package/dist/collections/queue/Queueable.d.ts +78 -78
- package/dist/collections/queue/Queueable.js +148 -146
- package/dist/collections/queue/Queueable.min.js +1 -1
- package/dist/collections/stack/Stack.d.ts +64 -60
- package/dist/collections/stack/Stack.js +113 -103
- package/dist/collections/stack/Stack.min.js +1 -1
- package/dist/collections/stack/Stackable.d.ts +57 -57
- package/dist/collections/stack/Stackable.js +90 -90
- package/dist/main.d.ts +40 -40
- package/dist/main.js +51 -51
- package/dist/recipes/ArrayIterator.d.ts +11 -11
- package/dist/recipes/ArrayIterator.js +30 -30
- package/dist/recipes/DoubleLinkerIterator.d.ts +10 -10
- package/dist/recipes/DoubleLinkerIterator.js +24 -24
- package/dist/recipes/IsArrayable.d.ts +105 -105
- package/dist/recipes/IsArrayable.js +5 -5
- package/dist/recipes/IsDoubleLinker.d.ts +14 -14
- package/dist/recipes/IsDoubleLinker.js +5 -5
- package/dist/recipes/IsElement.d.ts +14 -14
- package/dist/recipes/IsElement.js +5 -5
- package/dist/recipes/IsLinker.d.ts +10 -10
- package/dist/recipes/IsLinker.js +5 -5
- package/dist/recipes/IsTree.d.ts +11 -11
- package/dist/recipes/IsTree.js +5 -5
- package/dist/recipes/IsTreeNode.d.ts +29 -29
- package/dist/recipes/IsTreeNode.js +5 -5
- package/dist/recipes/LinkerIterator.d.ts +10 -10
- package/dist/recipes/LinkerIterator.js +24 -24
- package/dist/recipes/Runnable.d.ts +54 -54
- package/dist/recipes/Runnable.js +69 -69
- package/dist/recipes/TreeLinkerIterator.d.ts +10 -10
- package/dist/recipes/TreeLinkerIterator.js +26 -26
- package/dist/recipes/recipes.d.ts +16 -16
- package/dist/recipes/recipes.js +24 -24
- package/dist/services/parseTree.d.ts +10 -10
- package/dist/services/parseTree.js +25 -25
- package/dist/services/parseTreeNext.d.ts +15 -15
- package/dist/services/parseTreeNext.js +47 -47
- package/dist/services/services.d.ts +14 -14
- package/dist/services/services.js +24 -24
- package/package.json +3 -2
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', {
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
exports.default = void 0
|
|
7
|
-
require('core-js/modules/esnext.async-iterator.reduce.js')
|
|
8
|
-
require('core-js/modules/esnext.iterator.constructor.js')
|
|
9
|
-
require('core-js/modules/esnext.iterator.reduce.js')
|
|
10
|
-
var _Linker = _interopRequireDefault(require('../linked-list/Linker'))
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
12
|
-
/**
|
|
13
|
-
* DoubleLinker represents a node in a DoublyLinkedList which is chained by next and prev.
|
|
14
|
-
* @extends Linker
|
|
15
|
-
*/
|
|
16
|
-
class DoubleLinker {
|
|
17
|
-
/**
|
|
18
|
-
* Create the new DoubleLinker instance, provide the data and optionally the next and prev references.
|
|
19
|
-
* @param {Object} [nodeData={}]
|
|
20
|
-
* @param {*} [nodeData.data=null] The data to be stored in this linker
|
|
21
|
-
* @param {DoubleLinker|null} [nodeData.next=null] The reference to the next linker if any
|
|
22
|
-
* @param {DoubleLinker|null} [nodeData.prev=null] The reference to the previous linker if any
|
|
23
|
-
*/
|
|
24
|
-
constructor () {
|
|
25
|
-
const {
|
|
26
|
-
data = null,
|
|
27
|
-
next = null,
|
|
28
|
-
prev = null
|
|
29
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}
|
|
30
|
-
this.classType = DoubleLinker
|
|
31
|
-
this.data = null
|
|
32
|
-
this.next = null
|
|
33
|
-
this.prev = null
|
|
34
|
-
this.data = data
|
|
35
|
-
this.next = next
|
|
36
|
-
this.prev = prev
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Make a new DoubleLinker from the data given if it is not already a valid Linker.
|
|
41
|
-
* @param {DoubleLinker|*} linker Return a valid Linker instance from given data, or even an already valid one.
|
|
42
|
-
* @param {IsDoubleLinker} [classType=DoubleLinker] Provide the type of IsDoubleLinker to use.
|
|
43
|
-
* @return {DoubleLinker}
|
|
44
|
-
*/
|
|
45
|
-
DoubleLinker.make = function (linker) {
|
|
46
|
-
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DoubleLinker
|
|
47
|
-
return _Linker.default.make(linker, classType)
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.
|
|
51
|
-
* @param {Array} [values=[]] Provide an array of data that will be converted to a chain of linkers.
|
|
52
|
-
* @param {IsDoubleLinker} [classType=DoubleLinker] Provide the type of IsDoubleLinker to use.
|
|
53
|
-
* @returns {{head: DoubleLinker, tail: DoubleLinker}}
|
|
54
|
-
*/
|
|
55
|
-
DoubleLinker.fromArray = function () {
|
|
56
|
-
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
57
|
-
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DoubleLinker
|
|
58
|
-
return values.reduce((references, linker) => {
|
|
59
|
-
const newLinker = classType.make(linker, classType)
|
|
60
|
-
if (references.head === null) {
|
|
61
|
-
// Initialize the head and tail with the new node
|
|
62
|
-
return {
|
|
63
|
-
head: newLinker,
|
|
64
|
-
tail: newLinker
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
newLinker.prev = references.tail
|
|
68
|
-
// Only update the tail once head has been set, tail is always the most recent node
|
|
69
|
-
references.tail.next = newLinker
|
|
70
|
-
references.tail = newLinker
|
|
71
|
-
return references
|
|
72
|
-
}, {
|
|
73
|
-
head: null,
|
|
74
|
-
tail: null
|
|
75
|
-
})
|
|
76
|
-
}
|
|
77
|
-
var _default = exports.default = DoubleLinker
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
})
|
|
6
|
+
exports.default = void 0
|
|
7
|
+
require('core-js/modules/esnext.async-iterator.reduce.js')
|
|
8
|
+
require('core-js/modules/esnext.iterator.constructor.js')
|
|
9
|
+
require('core-js/modules/esnext.iterator.reduce.js')
|
|
10
|
+
var _Linker = _interopRequireDefault(require('../linked-list/Linker'))
|
|
11
|
+
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
12
|
+
/**
|
|
13
|
+
* DoubleLinker represents a node in a DoublyLinkedList which is chained by next and prev.
|
|
14
|
+
* @extends Linker
|
|
15
|
+
*/
|
|
16
|
+
class DoubleLinker {
|
|
17
|
+
/**
|
|
18
|
+
* Create the new DoubleLinker instance, provide the data and optionally the next and prev references.
|
|
19
|
+
* @param {Object} [nodeData={}]
|
|
20
|
+
* @param {*} [nodeData.data=null] The data to be stored in this linker
|
|
21
|
+
* @param {DoubleLinker|null} [nodeData.next=null] The reference to the next linker if any
|
|
22
|
+
* @param {DoubleLinker|null} [nodeData.prev=null] The reference to the previous linker if any
|
|
23
|
+
*/
|
|
24
|
+
constructor () {
|
|
25
|
+
const {
|
|
26
|
+
data = null,
|
|
27
|
+
next = null,
|
|
28
|
+
prev = null
|
|
29
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}
|
|
30
|
+
this.classType = DoubleLinker
|
|
31
|
+
this.data = null
|
|
32
|
+
this.next = null
|
|
33
|
+
this.prev = null
|
|
34
|
+
this.data = data
|
|
35
|
+
this.next = next
|
|
36
|
+
this.prev = prev
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Make a new DoubleLinker from the data given if it is not already a valid Linker.
|
|
41
|
+
* @param {DoubleLinker|*} linker Return a valid Linker instance from given data, or even an already valid one.
|
|
42
|
+
* @param {IsDoubleLinker} [classType=DoubleLinker] Provide the type of IsDoubleLinker to use.
|
|
43
|
+
* @return {DoubleLinker}
|
|
44
|
+
*/
|
|
45
|
+
DoubleLinker.make = function (linker) {
|
|
46
|
+
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DoubleLinker
|
|
47
|
+
return _Linker.default.make(linker, classType)
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.
|
|
51
|
+
* @param {Array} [values=[]] Provide an array of data that will be converted to a chain of linkers.
|
|
52
|
+
* @param {IsDoubleLinker} [classType=DoubleLinker] Provide the type of IsDoubleLinker to use.
|
|
53
|
+
* @returns {{head: DoubleLinker, tail: DoubleLinker}}
|
|
54
|
+
*/
|
|
55
|
+
DoubleLinker.fromArray = function () {
|
|
56
|
+
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
57
|
+
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DoubleLinker
|
|
58
|
+
return values.reduce((references, linker) => {
|
|
59
|
+
const newLinker = classType.make(linker, classType)
|
|
60
|
+
if (references.head === null) {
|
|
61
|
+
// Initialize the head and tail with the new node
|
|
62
|
+
return {
|
|
63
|
+
head: newLinker,
|
|
64
|
+
tail: newLinker
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
newLinker.prev = references.tail
|
|
68
|
+
// Only update the tail once head has been set, tail is always the most recent node
|
|
69
|
+
references.tail.next = newLinker
|
|
70
|
+
references.tail = newLinker
|
|
71
|
+
return references
|
|
72
|
+
}, {
|
|
73
|
+
head: null,
|
|
74
|
+
tail: null
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
var _default = exports.default = DoubleLinker
|
|
@@ -1,113 +1,114 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file doubly linked list.
|
|
3
|
-
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
4
|
-
* @version 1.1.0
|
|
5
|
-
* @memberOf module:collect-your-stuff
|
|
6
|
-
*/
|
|
7
|
-
import DoubleLinker from './DoubleLinker';
|
|
8
|
-
import IsArrayable, { forEachCallback } from '../../recipes/IsArrayable';
|
|
9
|
-
import IsDoubleLinker from '../../recipes/IsDoubleLinker';
|
|
10
|
-
/**
|
|
11
|
-
* DoublyLinkedList represents a collection stored as a LinkedList with prev and next references.
|
|
12
|
-
* @extends LinkedList
|
|
13
|
-
*/
|
|
14
|
-
declare class DoublyLinkedList implements IsArrayable<DoubleLinker>, Iterable<DoubleLinker> {
|
|
15
|
-
readonly classType: typeof DoublyLinkedList;
|
|
16
|
-
innerList: DoubleLinker;
|
|
17
|
-
initialized: boolean;
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
*
|
|
51
|
-
* @param {DoubleLinker|*}
|
|
52
|
-
* @
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
*
|
|
58
|
-
* @param {DoubleLinker|*}
|
|
59
|
-
* @
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*
|
|
65
|
-
* @param {DoubleLinker}
|
|
66
|
-
* @
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
*
|
|
72
|
-
* @param {DoubleLinker}
|
|
73
|
-
* @
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
*
|
|
79
|
-
* @
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
*
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
*
|
|
90
|
-
* @
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
*
|
|
96
|
-
* @param {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
*
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
*
|
|
107
|
-
* @param {
|
|
108
|
-
* @param {
|
|
109
|
-
* @
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @file doubly linked list.
|
|
3
|
+
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
4
|
+
* @version 1.1.0
|
|
5
|
+
* @memberOf module:collect-your-stuff
|
|
6
|
+
*/
|
|
7
|
+
import DoubleLinker from './DoubleLinker';
|
|
8
|
+
import IsArrayable, { forEachCallback } from '../../recipes/IsArrayable';
|
|
9
|
+
import IsDoubleLinker from '../../recipes/IsDoubleLinker';
|
|
10
|
+
/**
|
|
11
|
+
* DoublyLinkedList represents a collection stored as a LinkedList with prev and next references.
|
|
12
|
+
* @extends LinkedList
|
|
13
|
+
*/
|
|
14
|
+
declare class DoublyLinkedList implements IsArrayable<DoubleLinker>, Iterable<DoubleLinker> {
|
|
15
|
+
readonly classType: typeof DoublyLinkedList;
|
|
16
|
+
innerList: DoubleLinker;
|
|
17
|
+
initialized: boolean;
|
|
18
|
+
linkerClass: typeof DoubleLinker;
|
|
19
|
+
/**
|
|
20
|
+
* Create the new DoublyLinkedList instance.
|
|
21
|
+
*/
|
|
22
|
+
constructor(linkerClass?: typeof DoubleLinker);
|
|
23
|
+
/**
|
|
24
|
+
* Initialize the inner list, should only run once.
|
|
25
|
+
* @param {DoubleLinker} initialList Give the list of double-linkers to start in this doubly linked-list.
|
|
26
|
+
* @return {DoublyLinkedList}
|
|
27
|
+
*/
|
|
28
|
+
initialize(initialList: DoubleLinker): DoublyLinkedList;
|
|
29
|
+
/**
|
|
30
|
+
* Retrieve a copy of the innerList used.
|
|
31
|
+
* @returns {DoubleLinker}
|
|
32
|
+
*/
|
|
33
|
+
get list(): DoubleLinker;
|
|
34
|
+
/**
|
|
35
|
+
* Retrieve the first DoubleLinker in the list.
|
|
36
|
+
* @returns {DoubleLinker}
|
|
37
|
+
*/
|
|
38
|
+
get first(): DoubleLinker;
|
|
39
|
+
/**
|
|
40
|
+
* Retrieve the last DoubleLinker in the list.
|
|
41
|
+
* @returns {DoubleLinker}
|
|
42
|
+
*/
|
|
43
|
+
get last(): DoubleLinker;
|
|
44
|
+
/**
|
|
45
|
+
* Return the length of the list.
|
|
46
|
+
* @returns {number}
|
|
47
|
+
*/
|
|
48
|
+
get length(): number;
|
|
49
|
+
/**
|
|
50
|
+
* Insert a new node (or data) after a node.
|
|
51
|
+
* @param {DoubleLinker|*} node The existing node as reference
|
|
52
|
+
* @param {DoubleLinker|*} newNode The new node to go after the existing node
|
|
53
|
+
* @returns {DoublyLinkedList}
|
|
54
|
+
*/
|
|
55
|
+
insertAfter(node: DoubleLinker, newNode: DoubleLinker | any): DoublyLinkedList;
|
|
56
|
+
/**
|
|
57
|
+
* Insert a new node (or data) before a node.
|
|
58
|
+
* @param {DoubleLinker|*} node The existing node as reference
|
|
59
|
+
* @param {DoubleLinker|*} newNode The new node to go before the existing node
|
|
60
|
+
* @returns {DoublyLinkedList}
|
|
61
|
+
*/
|
|
62
|
+
insertBefore(node: DoubleLinker, newNode: DoubleLinker | any): DoublyLinkedList;
|
|
63
|
+
/**
|
|
64
|
+
* Add a node (or data) after the given (or last) node in the list.
|
|
65
|
+
* @param {DoubleLinker|*} node The new node to add to the end of the list
|
|
66
|
+
* @param {DoubleLinker} after The existing last node
|
|
67
|
+
* @returns {DoubleLinker}
|
|
68
|
+
*/
|
|
69
|
+
append(node: DoubleLinker | any, after?: DoubleLinker): DoublyLinkedList;
|
|
70
|
+
/**
|
|
71
|
+
* Add a node (or data) before the given (or first) node in the list.
|
|
72
|
+
* @param {DoubleLinker|*} node The new node to add to the start of the list
|
|
73
|
+
* @param {DoubleLinker} before The existing first node
|
|
74
|
+
* @returns {DoubleLinker}
|
|
75
|
+
*/
|
|
76
|
+
prepend(node: DoubleLinker | any, before?: DoubleLinker): DoublyLinkedList;
|
|
77
|
+
/**
|
|
78
|
+
* Remove a linker from this linked list.
|
|
79
|
+
* @param {DoubleLinker} node The node we wish to remove (and it will be returned after removal)
|
|
80
|
+
* @return {DoubleLinker}
|
|
81
|
+
*/
|
|
82
|
+
remove(node: DoubleLinker): DoubleLinker;
|
|
83
|
+
/**
|
|
84
|
+
* Refresh all references and return head reference.
|
|
85
|
+
* @return {DoubleLinker}
|
|
86
|
+
*/
|
|
87
|
+
reset(): DoubleLinker;
|
|
88
|
+
/**
|
|
89
|
+
* Retrieve a DoubleLinker item from this list by numeric index, otherwise return null.
|
|
90
|
+
* @param {number} index The integer number for retrieving a node by position.
|
|
91
|
+
* @returns {DoubleLinker|null}
|
|
92
|
+
*/
|
|
93
|
+
item(index: number): DoubleLinker;
|
|
94
|
+
/**
|
|
95
|
+
* Be able to run forEach on this DoublyLinkedList to iterate over the DoubleLinker Items.
|
|
96
|
+
* @param {forEachCallback} callback The function to call for-each double linker
|
|
97
|
+
* @param {DoublyLinkedList} thisArg Optional, 'this' reference
|
|
98
|
+
*/
|
|
99
|
+
forEach(callback: forEachCallback, thisArg?: DoublyLinkedList): DoublyLinkedList;
|
|
100
|
+
/**
|
|
101
|
+
* Be able to iterate over this class.
|
|
102
|
+
* @returns {Iterator}
|
|
103
|
+
*/
|
|
104
|
+
[Symbol.iterator](): Iterator<DoubleLinker>;
|
|
105
|
+
/**
|
|
106
|
+
* Convert an array into a DoublyLinkedList instance, return the new instance.
|
|
107
|
+
* @param {Array} [values=[]] An array of values which will be converted to linkers in this doubly-linked-list
|
|
108
|
+
* @param {IsDoubleLinker} [linkerClass=DoubleLinker] The class to use for each linker
|
|
109
|
+
* @param {IsArrayable<IsDoubleLinker>} [classType=LinkedList] Provide the type of IsArrayable to use.
|
|
110
|
+
* @returns {DoublyLinkedList}
|
|
111
|
+
*/
|
|
112
|
+
static fromArray: (values?: Array<any>, linkerClass?: typeof DoubleLinker, classType?: any) => IsArrayable<IsDoubleLinker> | any;
|
|
113
|
+
}
|
|
114
|
+
export default DoublyLinkedList;
|