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.
Files changed (67) hide show
  1. package/README.md +1492 -1488
  2. package/browser/collect-your-stuff.js +19292 -19268
  3. package/browser/collect-your-stuff.min.js +1 -1
  4. package/dist/collections/arrayable/ArrayElement.d.ts +37 -37
  5. package/dist/collections/arrayable/ArrayElement.js +71 -71
  6. package/dist/collections/arrayable/Arrayable.d.ts +109 -108
  7. package/dist/collections/arrayable/Arrayable.js +196 -195
  8. package/dist/collections/arrayable/Arrayable.min.js +1 -1
  9. package/dist/collections/doubly-linked-list/DoubleLinker.d.ts +47 -47
  10. package/dist/collections/doubly-linked-list/DoubleLinker.js +77 -77
  11. package/dist/collections/doubly-linked-list/DoublyLinkedList.d.ts +114 -113
  12. package/dist/collections/doubly-linked-list/DoublyLinkedList.js +275 -257
  13. package/dist/collections/doubly-linked-list/DoublyLinkedList.min.js +1 -1
  14. package/dist/collections/linked-list/LinkedList.d.ts +110 -109
  15. package/dist/collections/linked-list/LinkedList.js +241 -232
  16. package/dist/collections/linked-list/LinkedList.min.js +1 -1
  17. package/dist/collections/linked-list/Linker.d.ts +44 -44
  18. package/dist/collections/linked-list/Linker.js +87 -87
  19. package/dist/collections/linked-tree-list/LinkedTreeList.d.ts +136 -135
  20. package/dist/collections/linked-tree-list/LinkedTreeList.js +261 -256
  21. package/dist/collections/linked-tree-list/LinkedTreeList.min.js +1 -1
  22. package/dist/collections/linked-tree-list/TreeLinker.d.ts +62 -62
  23. package/dist/collections/linked-tree-list/TreeLinker.js +85 -85
  24. package/dist/collections/queue/Queue.d.ts +64 -60
  25. package/dist/collections/queue/Queue.js +137 -125
  26. package/dist/collections/queue/Queue.min.js +1 -1
  27. package/dist/collections/queue/Queueable.d.ts +78 -78
  28. package/dist/collections/queue/Queueable.js +148 -146
  29. package/dist/collections/queue/Queueable.min.js +1 -1
  30. package/dist/collections/stack/Stack.d.ts +64 -60
  31. package/dist/collections/stack/Stack.js +113 -103
  32. package/dist/collections/stack/Stack.min.js +1 -1
  33. package/dist/collections/stack/Stackable.d.ts +57 -57
  34. package/dist/collections/stack/Stackable.js +90 -90
  35. package/dist/main.d.ts +40 -40
  36. package/dist/main.js +51 -51
  37. package/dist/recipes/ArrayIterator.d.ts +11 -11
  38. package/dist/recipes/ArrayIterator.js +30 -30
  39. package/dist/recipes/DoubleLinkerIterator.d.ts +10 -10
  40. package/dist/recipes/DoubleLinkerIterator.js +24 -24
  41. package/dist/recipes/IsArrayable.d.ts +105 -105
  42. package/dist/recipes/IsArrayable.js +5 -5
  43. package/dist/recipes/IsDoubleLinker.d.ts +14 -14
  44. package/dist/recipes/IsDoubleLinker.js +5 -5
  45. package/dist/recipes/IsElement.d.ts +14 -14
  46. package/dist/recipes/IsElement.js +5 -5
  47. package/dist/recipes/IsLinker.d.ts +10 -10
  48. package/dist/recipes/IsLinker.js +5 -5
  49. package/dist/recipes/IsTree.d.ts +11 -11
  50. package/dist/recipes/IsTree.js +5 -5
  51. package/dist/recipes/IsTreeNode.d.ts +29 -29
  52. package/dist/recipes/IsTreeNode.js +5 -5
  53. package/dist/recipes/LinkerIterator.d.ts +10 -10
  54. package/dist/recipes/LinkerIterator.js +24 -24
  55. package/dist/recipes/Runnable.d.ts +54 -54
  56. package/dist/recipes/Runnable.js +69 -69
  57. package/dist/recipes/TreeLinkerIterator.d.ts +10 -10
  58. package/dist/recipes/TreeLinkerIterator.js +26 -26
  59. package/dist/recipes/recipes.d.ts +16 -16
  60. package/dist/recipes/recipes.js +24 -24
  61. package/dist/services/parseTree.d.ts +10 -10
  62. package/dist/services/parseTree.js +25 -25
  63. package/dist/services/parseTreeNext.d.ts +15 -15
  64. package/dist/services/parseTreeNext.js +47 -47
  65. package/dist/services/services.d.ts +14 -14
  66. package/dist/services/services.js +24 -24
  67. 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
- * Create the new DoublyLinkedList instance.
20
- */
21
- constructor();
22
- /**
23
- * Initialize the inner list, should only run once.
24
- * @param {DoubleLinker} initialList Give the list of double-linkers to start in this doubly linked-list.
25
- * @return {DoublyLinkedList}
26
- */
27
- initialize(initialList: DoubleLinker): DoublyLinkedList;
28
- /**
29
- * Retrieve a copy of the innerList used.
30
- * @returns {DoubleLinker}
31
- */
32
- get list(): DoubleLinker;
33
- /**
34
- * Retrieve the first DoubleLinker in the list.
35
- * @returns {DoubleLinker}
36
- */
37
- get first(): DoubleLinker;
38
- /**
39
- * Retrieve the last DoubleLinker in the list.
40
- * @returns {DoubleLinker}
41
- */
42
- get last(): DoubleLinker;
43
- /**
44
- * Return the length of the list.
45
- * @returns {number}
46
- */
47
- get length(): number;
48
- /**
49
- * Insert a new node (or data) after a node.
50
- * @param {DoubleLinker|*} node The existing node as reference
51
- * @param {DoubleLinker|*} newNode The new node to go after the existing node
52
- * @returns {DoublyLinkedList}
53
- */
54
- insertAfter(node: DoubleLinker, newNode: DoubleLinker | any): DoublyLinkedList;
55
- /**
56
- * Insert a new node (or data) before a node.
57
- * @param {DoubleLinker|*} node The existing node as reference
58
- * @param {DoubleLinker|*} newNode The new node to go before the existing node
59
- * @returns {DoublyLinkedList}
60
- */
61
- insertBefore(node: DoubleLinker, newNode: DoubleLinker | any): DoublyLinkedList;
62
- /**
63
- * Add a node (or data) after the given (or last) node in the list.
64
- * @param {DoubleLinker|*} node The new node to add to the end of the list
65
- * @param {DoubleLinker} after The existing last node
66
- * @returns {DoubleLinker}
67
- */
68
- append(node: DoubleLinker | any, after?: DoubleLinker): DoublyLinkedList;
69
- /**
70
- * Add a node (or data) before the given (or first) node in the list.
71
- * @param {DoubleLinker|*} node The new node to add to the start of the list
72
- * @param {DoubleLinker} before The existing first node
73
- * @returns {DoubleLinker}
74
- */
75
- prepend(node: DoubleLinker | any, before?: DoubleLinker): DoublyLinkedList;
76
- /**
77
- * Remove a linker from this linked list.
78
- * @param {DoubleLinker} node The node we wish to remove (and it will be returned after removal)
79
- * @return {DoubleLinker}
80
- */
81
- remove(node: DoubleLinker): DoubleLinker;
82
- /**
83
- * Refresh all references and return head reference.
84
- * @return {DoubleLinker}
85
- */
86
- reset(): DoubleLinker;
87
- /**
88
- * Retrieve a DoubleLinker item from this list by numeric index, otherwise return null.
89
- * @param {number} index The integer number for retrieving a node by position.
90
- * @returns {DoubleLinker|null}
91
- */
92
- item(index: number): DoubleLinker;
93
- /**
94
- * Be able to run forEach on this DoublyLinkedList to iterate over the DoubleLinker Items.
95
- * @param {forEachCallback} callback The function to call for-each double linker
96
- * @param {DoublyLinkedList} thisArg Optional, 'this' reference
97
- */
98
- forEach(callback: forEachCallback, thisArg?: DoublyLinkedList): DoublyLinkedList;
99
- /**
100
- * Be able to iterate over this class.
101
- * @returns {Iterator}
102
- */
103
- [Symbol.iterator](): Iterator<DoubleLinker>;
104
- /**
105
- * Convert an array into a DoublyLinkedList instance, return the new instance.
106
- * @param {Array} [values=[]] An array of values which will be converted to linkers in this doubly-linked-list
107
- * @param {IsDoubleLinker} [linkerClass=DoubleLinker] The class to use for each linker
108
- * @param {IsArrayable<IsDoubleLinker>} [classType=LinkedList] Provide the type of IsArrayable to use.
109
- * @returns {DoublyLinkedList}
110
- */
111
- static fromArray: (values?: Array<any>, linkerClass?: typeof DoubleLinker, classType?: any) => IsArrayable<IsDoubleLinker> | any;
112
- }
113
- export default DoublyLinkedList;
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;