collect-your-stuff 1.1.8 → 1.2.0
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 +1265 -232
- package/browser/collect-your-stuff.js +131 -149
- package/browser/collect-your-stuff.min.js +1 -1
- package/dist/collections/arrayable/ArrayElement.d.ts +2 -3
- package/dist/collections/arrayable/ArrayElement.js +2 -2
- package/dist/collections/arrayable/ArrayElement.min.js +1 -1
- package/dist/collections/arrayable/Arrayable.d.ts +4 -5
- package/dist/collections/arrayable/Arrayable.js +7 -8
- package/dist/collections/arrayable/Arrayable.min.js +1 -1
- package/dist/collections/doubly-linked-list/DoubleLinker.d.ts +2 -3
- package/dist/collections/doubly-linked-list/DoubleLinker.js +4 -5
- package/dist/collections/doubly-linked-list/DoubleLinker.min.js +1 -1
- package/dist/collections/doubly-linked-list/DoublyLinkedList.d.ts +4 -5
- package/dist/collections/doubly-linked-list/DoublyLinkedList.js +11 -12
- package/dist/collections/doubly-linked-list/DoublyLinkedList.min.js +1 -1
- package/dist/collections/linked-list/LinkedList.d.ts +4 -5
- package/dist/collections/linked-list/LinkedList.js +9 -10
- package/dist/collections/linked-list/LinkedList.min.js +1 -1
- package/dist/collections/linked-list/Linker.d.ts +2 -3
- package/dist/collections/linked-list/Linker.js +4 -5
- package/dist/collections/linked-list/Linker.min.js +1 -1
- package/dist/collections/linked-tree-list/LinkedTreeList.d.ts +4 -5
- package/dist/collections/linked-tree-list/LinkedTreeList.js +15 -16
- package/dist/collections/linked-tree-list/LinkedTreeList.min.js +1 -1
- package/dist/collections/linked-tree-list/TreeLinker.d.ts +4 -5
- package/dist/collections/linked-tree-list/TreeLinker.js +8 -9
- package/dist/collections/linked-tree-list/TreeLinker.min.js +1 -1
- package/dist/collections/queue/Queue.d.ts +4 -5
- package/dist/collections/queue/Queue.js +8 -9
- package/dist/collections/queue/Queue.min.js +1 -1
- package/dist/collections/queue/Queueable.d.ts +2 -3
- package/dist/collections/queue/Queueable.js +4 -5
- package/dist/collections/queue/Queueable.min.js +1 -1
- package/dist/collections/stack/Stack.d.ts +4 -5
- package/dist/collections/stack/Stack.js +8 -9
- package/dist/collections/stack/Stack.min.js +1 -1
- package/dist/collections/stack/Stackable.d.ts +2 -3
- package/dist/collections/stack/Stackable.js +4 -5
- package/dist/collections/stack/Stackable.min.js +1 -1
- package/dist/main.d.ts +10 -10
- package/dist/main.js +16 -17
- package/dist/main.min.js +1 -1
- package/dist/recipes/ArrayIterator.d.ts +2 -3
- package/dist/recipes/ArrayIterator.js +2 -2
- package/dist/recipes/ArrayIterator.min.js +1 -1
- package/dist/recipes/DoubleLinkerIterator.d.ts +2 -3
- package/dist/recipes/DoubleLinkerIterator.js +2 -2
- package/dist/recipes/DoubleLinkerIterator.min.js +1 -1
- package/dist/recipes/IsArrayable.d.ts +2 -2
- package/dist/recipes/IsDoubleLinker.d.ts +2 -2
- package/dist/recipes/IsElement.d.ts +1 -1
- package/dist/recipes/IsLinker.d.ts +2 -2
- package/dist/recipes/IsTree.d.ts +3 -3
- package/dist/recipes/IsTreeNode.d.ts +4 -4
- package/dist/recipes/LinkerIterator.d.ts +2 -3
- package/dist/recipes/LinkerIterator.js +2 -2
- package/dist/recipes/LinkerIterator.min.js +1 -1
- package/dist/recipes/Runnable.d.ts +1 -1
- package/dist/recipes/Runnable.js +2 -2
- package/dist/recipes/Runnable.min.js +1 -1
- package/dist/recipes/TreeLinkerIterator.d.ts +2 -3
- package/dist/recipes/TreeLinkerIterator.js +4 -5
- package/dist/recipes/TreeLinkerIterator.min.js +1 -1
- package/dist/recipes/recipes.d.ts +3 -4
- package/dist/recipes/recipes.js +6 -8
- package/dist/recipes/recipes.min.js +1 -1
- package/dist/services/parseTree.d.ts +2 -3
- package/dist/services/parseTree.js +4 -5
- package/dist/services/parseTree.min.js +1 -1
- package/dist/services/parseTreeNext.d.ts +2 -3
- package/dist/services/parseTreeNext.js +2 -2
- package/dist/services/parseTreeNext.min.js +1 -1
- package/dist/services/services.d.ts +3 -4
- package/dist/services/services.js +6 -8
- package/dist/services/services.min.js +1 -1
- package/package.json +2 -2
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import IsArrayable from '../../recipes/IsArrayable';
|
|
8
|
-
import IsTreeNode from '../../recipes/IsTreeNode';
|
|
9
|
-
import IsTree from '../../recipes/IsTree';
|
|
7
|
+
import { IsArrayable } from '../../recipes/IsArrayable';
|
|
8
|
+
import { IsTreeNode } from '../../recipes/IsTreeNode';
|
|
9
|
+
import { IsTree } from '../../recipes/IsTree';
|
|
10
10
|
/**
|
|
11
11
|
* TreeLinker represents a node in a LinkedTreeList having a parent (or root) and child nodes.
|
|
12
12
|
* @extends DoubleLinker
|
|
13
13
|
*/
|
|
14
|
-
declare class TreeLinker implements IsTreeNode {
|
|
14
|
+
export declare class TreeLinker implements IsTreeNode {
|
|
15
15
|
readonly classType: typeof TreeLinker;
|
|
16
16
|
data: any;
|
|
17
17
|
next: IsTreeNode | null;
|
|
@@ -61,4 +61,3 @@ declare class TreeLinker implements IsTreeNode {
|
|
|
61
61
|
tail: TreeLinker | any;
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
-
export default TreeLinker;
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.TreeLinker = void 0
|
|
7
7
|
require('core-js/modules/esnext.async-iterator.map.js')
|
|
8
8
|
require('core-js/modules/esnext.iterator.map.js')
|
|
9
|
-
var _DoubleLinker =
|
|
10
|
-
var _LinkedTreeList =
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
9
|
+
var _DoubleLinker = require('../doubly-linked-list/DoubleLinker')
|
|
10
|
+
var _LinkedTreeList = require('./LinkedTreeList')
|
|
12
11
|
/**
|
|
13
12
|
* TreeLinker represents a node in a LinkedTreeList having a parent (or root) and child nodes.
|
|
14
13
|
* @extends DoubleLinker
|
|
@@ -31,7 +30,7 @@ class TreeLinker {
|
|
|
31
30
|
prev = null,
|
|
32
31
|
children = null,
|
|
33
32
|
parent = null,
|
|
34
|
-
listClass = _LinkedTreeList.
|
|
33
|
+
listClass = _LinkedTreeList.LinkedTreeList
|
|
35
34
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}
|
|
36
35
|
this.classType = TreeLinker
|
|
37
36
|
this.data = null
|
|
@@ -54,7 +53,7 @@ class TreeLinker {
|
|
|
54
53
|
*/
|
|
55
54
|
childrenFromArray () {
|
|
56
55
|
const children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null
|
|
57
|
-
const listClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _LinkedTreeList.
|
|
56
|
+
const listClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _LinkedTreeList.LinkedTreeList
|
|
58
57
|
if (children === null) {
|
|
59
58
|
return null
|
|
60
59
|
}
|
|
@@ -70,9 +69,10 @@ class TreeLinker {
|
|
|
70
69
|
* @param {IsTreeNode} [classType=TreeLinker] Provide the type of IsTreeNode to use.
|
|
71
70
|
* @return {TreeLinker}
|
|
72
71
|
*/
|
|
72
|
+
exports.TreeLinker = TreeLinker
|
|
73
73
|
TreeLinker.make = function (linker) {
|
|
74
74
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TreeLinker
|
|
75
|
-
return _DoubleLinker.
|
|
75
|
+
return _DoubleLinker.DoubleLinker.make(linker, classType)
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
78
|
* Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.
|
|
@@ -83,6 +83,5 @@ TreeLinker.make = function (linker) {
|
|
|
83
83
|
TreeLinker.fromArray = function () {
|
|
84
84
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
85
85
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TreeLinker
|
|
86
|
-
return _DoubleLinker.
|
|
86
|
+
return _DoubleLinker.DoubleLinker.fromArray(values, classType)
|
|
87
87
|
}
|
|
88
|
-
var _default = exports.default = TreeLinker
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TreeLinker=void 0,require("core-js/modules/esnext.async-iterator.map.js"),require("core-js/modules/esnext.iterator.map.js");var _DoubleLinker=require("../doubly-linked-list/DoubleLinker"),_LinkedTreeList=require("./LinkedTreeList");class TreeLinker{constructor(){let{data:e=null,next:r=null,prev:i=null,children:n=null,parent:t=null,listClass:l=_LinkedTreeList.LinkedTreeList}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.classType=TreeLinker,this.data=null,this.next=null,this.prev=null,this.parent=null,this.children=null,this.data=e,this.next=r,this.prev=i,this.parent=t,this.children=this.childrenFromArray(n,l)}childrenFromArray(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_LinkedTreeList.LinkedTreeList;return null===e?null:r.fromArray(e.map((e=>Object.assign({},e,{parent:this}))),this.classType)}}exports.TreeLinker=TreeLinker,TreeLinker.make=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:TreeLinker;return _DoubleLinker.DoubleLinker.make(e,r)},TreeLinker.fromArray=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:TreeLinker;return _DoubleLinker.DoubleLinker.fromArray(e,r)};
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import Queueable from './Queueable';
|
|
8
|
-
import IsArrayable from '../../recipes/IsArrayable';
|
|
9
|
-
import IsLinker from '../../recipes/IsLinker';
|
|
7
|
+
import { Queueable } from './Queueable';
|
|
8
|
+
import { IsArrayable } from '../../recipes/IsArrayable';
|
|
9
|
+
import { IsLinker } from '../../recipes/IsLinker';
|
|
10
10
|
import { completeResponse } from '../../recipes/Runnable';
|
|
11
11
|
/**
|
|
12
12
|
* Maintain a series of queued items.
|
|
13
13
|
*/
|
|
14
|
-
declare class Queue {
|
|
14
|
+
export declare class Queue {
|
|
15
15
|
queuedList: IsArrayable<any>;
|
|
16
16
|
private listClass;
|
|
17
17
|
private queueableClass;
|
|
@@ -61,4 +61,3 @@ declare class Queue {
|
|
|
61
61
|
*/
|
|
62
62
|
static fromArray: (values?: Array<any>, queueableClass?: typeof Queueable, listClass?: any) => Queue;
|
|
63
63
|
}
|
|
64
|
-
export default Queue;
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
7
|
-
var _Queueable =
|
|
8
|
-
var _LinkedList =
|
|
9
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
6
|
+
exports.Queue = void 0
|
|
7
|
+
var _Queueable = require('./Queueable')
|
|
8
|
+
var _LinkedList = require('../linked-list/LinkedList')
|
|
10
9
|
/**
|
|
11
10
|
* @file queue
|
|
12
11
|
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
@@ -26,8 +25,8 @@ class Queue {
|
|
|
26
25
|
*/
|
|
27
26
|
constructor () {
|
|
28
27
|
let queuedList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null
|
|
29
|
-
const listClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _LinkedList.
|
|
30
|
-
const queueableClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _Queueable.
|
|
28
|
+
const listClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _LinkedList.LinkedList
|
|
29
|
+
const queueableClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _Queueable.Queueable
|
|
31
30
|
this.listClass = listClass
|
|
32
31
|
this.queueableClass = queueableClass
|
|
33
32
|
if (queuedList === null) {
|
|
@@ -126,12 +125,12 @@ class Queue {
|
|
|
126
125
|
* @param {Queue|Iterable} listClass The class to use to manage the queueables
|
|
127
126
|
* @returns {Queue}
|
|
128
127
|
*/
|
|
128
|
+
exports.Queue = Queue
|
|
129
129
|
Queue.fromArray = function () {
|
|
130
130
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
131
|
-
const queueableClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Queueable.
|
|
132
|
-
const listClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _LinkedList.
|
|
131
|
+
const queueableClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Queueable.Queueable
|
|
132
|
+
const listClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _LinkedList.LinkedList
|
|
133
133
|
const list = new listClass(queueableClass)
|
|
134
134
|
list.initialize(queueableClass.fromArray(values, queueableClass).head)
|
|
135
135
|
return new Queue(list, listClass, queueableClass)
|
|
136
136
|
}
|
|
137
|
-
var _default = exports.default = Queue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Queue=void 0;var _Queueable=require("./Queueable"),_LinkedList=require("../linked-list/LinkedList");class Queue{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_LinkedList.LinkedList,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_Queueable.Queueable;this.listClass=u,this.queueableClass=t,null===e&&(e=new u(t)),this.queuedList=e}dequeue(){const e=this.remove();return e?e.complete?this.dequeue():e.running?{success:!1,error:"The queue has been blocked by an unfinished task.",context:e}:(this.empty()||this.enqueue(e),e.isReady?e.run.call(e):{success:!1,error:"Unable to find ready task.",context:e}):{success:"No more queueable tasks in the queue",error:!1,context:this.queuedList}}empty(){return this.size()<=0}enqueue(e){this.queuedList.append(e)}peek(){return this.queuedList.first}remove(){return this.empty()?null:this.queuedList.remove(this.queuedList.first)}size(){return this.queuedList.length}}exports.Queue=Queue,Queue.fromArray=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_Queueable.Queueable,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_LinkedList.LinkedList;const s=new t(u);return s.initialize(u.fromArray(e,u).head),new Queue(s,t,u)};
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
7
|
import { completeResponse, IsRunnable } from '../../recipes/Runnable';
|
|
8
|
-
import IsLinker from '../../recipes/IsLinker';
|
|
8
|
+
import { IsLinker } from '../../recipes/IsLinker';
|
|
9
9
|
/**
|
|
10
10
|
* Queueable represents a runnable entry in a queue.
|
|
11
11
|
* @extends Linker
|
|
12
12
|
*/
|
|
13
|
-
declare class Queueable implements IsLinker, IsRunnable {
|
|
13
|
+
export declare class Queueable implements IsLinker, IsRunnable {
|
|
14
14
|
readonly classType: typeof Queueable;
|
|
15
15
|
data: any;
|
|
16
16
|
next: Queueable | null;
|
|
@@ -75,4 +75,3 @@ declare class Queueable implements IsLinker, IsRunnable {
|
|
|
75
75
|
tail: IsLinker;
|
|
76
76
|
};
|
|
77
77
|
}
|
|
78
|
-
export default Queueable;
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
7
|
-
var _Linker =
|
|
8
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
6
|
+
exports.Queueable = void 0
|
|
7
|
+
var _Linker = require('../linked-list/Linker')
|
|
9
8
|
/**
|
|
10
9
|
* Queueable represents a runnable entry in a queue.
|
|
11
10
|
* @extends Linker
|
|
@@ -113,6 +112,7 @@ class Queueable {
|
|
|
113
112
|
* @param {IsLinker} [classType=Queueable] Provide the type of IsLinker to use.
|
|
114
113
|
* @return {Queueable}
|
|
115
114
|
*/
|
|
115
|
+
exports.Queueable = Queueable
|
|
116
116
|
Queueable.make = function (queueable) {
|
|
117
117
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Queueable
|
|
118
118
|
if (typeof queueable !== 'object') {
|
|
@@ -143,6 +143,5 @@ Queueable.make = function (queueable) {
|
|
|
143
143
|
*/
|
|
144
144
|
Queueable.fromArray = function (values) {
|
|
145
145
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Queueable
|
|
146
|
-
return _Linker.
|
|
146
|
+
return _Linker.Linker.fromArray(values, classType)
|
|
147
147
|
}
|
|
148
|
-
var _default = exports.default = Queueable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Queueable=void 0;var _Linker=require("../linked-list/Linker");class Queueable{constructor(){let{task:e=null,next:t=null,ready:s=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.data=null,this.next=null,this.complete=!1,this.ready=!1,this.running=!1,this.classType=Queueable,this.data=e,this.next=t,this.complete=!1,this.ready=s,this.running=!1}get isReady(){return"function"==typeof this.ready?this.ready():this.ready}get task(){return"function"==typeof this.data?this.data:e=>"function"==typeof e?e({context:this.data}).context:this.data}markCompleted(){let{success:e=!0,error:t=!1,context:s=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.complete=!0,this.running=!1,{success:e,error:t,context:s}}run(){return this.isReady?this.running?{success:!1,error:"Queued task is already running, possible missing 'complete' callback",context:this.data}:(this.running=!0,this.task(this.markCompleted.bind(this))):{success:!1,error:"Task is not ready",context:this.data}}}exports.Queueable=Queueable,Queueable.make=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Queueable;return"object"!=typeof e?new t({task:e,ready:!0}):e.classType?e:(e.task||(e={task:e,ready:!0}),new t(e))},Queueable.fromArray=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Queueable;return _Linker.Linker.fromArray(e,t)};
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* @version 1.0.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import Stackable from './Stackable';
|
|
8
|
-
import IsArrayable from '../../recipes/IsArrayable';
|
|
9
|
-
import IsLinker from '../../recipes/IsLinker';
|
|
7
|
+
import { Stackable } from './Stackable';
|
|
8
|
+
import { IsArrayable } from '../../recipes/IsArrayable';
|
|
9
|
+
import { IsLinker } from '../../recipes/IsLinker';
|
|
10
10
|
import { completeResponse } from '../../recipes/Runnable';
|
|
11
11
|
/**
|
|
12
12
|
* Store a collection of items which can only be inserted and removed from the top.
|
|
13
13
|
*/
|
|
14
|
-
declare class Stack {
|
|
14
|
+
export declare class Stack {
|
|
15
15
|
stackedList: IsArrayable<any>;
|
|
16
16
|
private listClass;
|
|
17
17
|
private stackableClass;
|
|
@@ -61,4 +61,3 @@ declare class Stack {
|
|
|
61
61
|
*/
|
|
62
62
|
static fromArray: (values?: Array<any>, stackableClass?: typeof Stackable, listClass?: any) => Stack;
|
|
63
63
|
}
|
|
64
|
-
export default Stack;
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
7
|
-
var _Stackable =
|
|
8
|
-
var _LinkedList =
|
|
9
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
6
|
+
exports.Stack = void 0
|
|
7
|
+
var _Stackable = require('./Stackable')
|
|
8
|
+
var _LinkedList = require('../linked-list/LinkedList')
|
|
10
9
|
/**
|
|
11
10
|
* @file stack.
|
|
12
11
|
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
@@ -26,8 +25,8 @@ class Stack {
|
|
|
26
25
|
*/
|
|
27
26
|
constructor () {
|
|
28
27
|
let stackedList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null
|
|
29
|
-
const listClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _LinkedList.
|
|
30
|
-
const stackableClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _Stackable.
|
|
28
|
+
const listClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _LinkedList.LinkedList
|
|
29
|
+
const stackableClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _Stackable.Stackable
|
|
31
30
|
this.listClass = listClass
|
|
32
31
|
this.stackableClass = stackableClass
|
|
33
32
|
if (stackedList === null) {
|
|
@@ -102,12 +101,12 @@ class Stack {
|
|
|
102
101
|
* @param {Stack|Iterable} listClass The class to use to manage the stackables
|
|
103
102
|
* @returns {Stack}
|
|
104
103
|
*/
|
|
104
|
+
exports.Stack = Stack
|
|
105
105
|
Stack.fromArray = function () {
|
|
106
106
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
107
|
-
const stackableClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Stackable.
|
|
108
|
-
const listClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _LinkedList.
|
|
107
|
+
const stackableClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Stackable.Stackable
|
|
108
|
+
const listClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _LinkedList.LinkedList
|
|
109
109
|
const list = new listClass(stackableClass)
|
|
110
110
|
list.initialize(stackableClass.fromArray(values, stackableClass).head)
|
|
111
111
|
return new Stack(list)
|
|
112
112
|
}
|
|
113
|
-
var _default = exports.default = Stack
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Stack=void 0;var _Stackable=require("./Stackable"),_LinkedList=require("../linked-list/LinkedList");class Stack{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_LinkedList.LinkedList,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_Stackable.Stackable;this.listClass=e,this.stackableClass=s,null===t&&(t=new e(s)),this.stackedList=t}empty(){return this.size()<=0}top(){return this.stackedList.first}pop(){const t=this.remove();return t?t.run():{success:"No more stackable tasks in the stack",error:!1,context:this.stackedList}}push(t){this.stackedList.prepend(t)}remove(){return this.empty()?null:this.stackedList.remove(this.stackedList.first)}size(){return this.stackedList.length}}exports.Stack=Stack,Stack.fromArray=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_Stackable.Stackable;const s=new(arguments.length>2&&void 0!==arguments[2]?arguments[2]:_LinkedList.LinkedList)(e);return s.initialize(e.fromArray(t,e).head),new Stack(s)};
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
7
|
import { IsRunnable } from '../../recipes/Runnable';
|
|
8
|
-
import IsLinker from '../../recipes/IsLinker';
|
|
8
|
+
import { IsLinker } from '../../recipes/IsLinker';
|
|
9
9
|
/**
|
|
10
10
|
* Stackable represents a runnable entry in stack.
|
|
11
11
|
* @extends Linker
|
|
12
12
|
*/
|
|
13
|
-
declare class Stackable implements IsLinker, IsRunnable {
|
|
13
|
+
export declare class Stackable implements IsLinker, IsRunnable {
|
|
14
14
|
readonly classType: typeof Stackable;
|
|
15
15
|
data: any;
|
|
16
16
|
next: Stackable | null;
|
|
@@ -54,4 +54,3 @@ declare class Stackable implements IsLinker, IsRunnable {
|
|
|
54
54
|
tail: IsLinker;
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
-
export default Stackable;
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
7
|
-
var _Linker =
|
|
8
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
6
|
+
exports.Stackable = void 0
|
|
7
|
+
var _Linker = require('../linked-list/Linker')
|
|
9
8
|
/**
|
|
10
9
|
* Stackable represents a runnable entry in stack.
|
|
11
10
|
* @extends Linker
|
|
@@ -56,6 +55,7 @@ class Stackable {
|
|
|
56
55
|
* @param {IsLinker} [classType=Stackable] Provide the type of IsLinker to use.
|
|
57
56
|
* @return {Stackable}
|
|
58
57
|
*/
|
|
58
|
+
exports.Stackable = Stackable
|
|
59
59
|
Stackable.make = function (stackable) {
|
|
60
60
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Stackable
|
|
61
61
|
if (typeof stackable !== 'object') {
|
|
@@ -85,6 +85,5 @@ Stackable.make = function (stackable) {
|
|
|
85
85
|
Stackable.fromArray = function () {
|
|
86
86
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
87
87
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Stackable
|
|
88
|
-
return _Linker.
|
|
88
|
+
return _Linker.Linker.fromArray(values, classType)
|
|
89
89
|
}
|
|
90
|
-
var _default = exports.default = Stackable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Stackable=void 0;var _Linker=require("../linked-list/Linker");class Stackable{constructor(){let{task:t=null,next:e=null,ready:a=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.data=null,this.next=null,this.classType=Stackable,this.data=t,this.next=e}get task(){return"function"==typeof this.data?this.data:()=>this.data}run(){return this.task()}}exports.Stackable=Stackable,Stackable.make=function(t){return"object"!=typeof t?new(arguments.length>1&&void 0!==arguments[1]?arguments[1]:Stackable)({task:t}):t.classType?t:(t.task||(t={task:t}),new Stackable(t))},Stackable.fromArray=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Stackable;return _Linker.Linker.fromArray(t,e)};
|
package/dist/main.d.ts
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
* @module collect-your-stuff
|
|
7
7
|
*/
|
|
8
8
|
import 'core-js/stable';
|
|
9
|
-
import Arrayable from './collections/arrayable/Arrayable';
|
|
10
|
-
import DoublyLinkedList from './collections
|
|
11
|
-
import LinkedList from './collections/linked-list/LinkedList';
|
|
12
|
-
import LinkedTreeList from './collections/linked-tree-list/LinkedTreeList';
|
|
13
|
-
import Queue from './collections/queue/Queue';
|
|
14
|
-
import Stack from './collections/stack/Stack';
|
|
9
|
+
import { Arrayable } from './collections/arrayable/Arrayable';
|
|
10
|
+
import { DoublyLinkedList } from './collections/doubly-linked-list/DoublyLinkedList';
|
|
11
|
+
import { LinkedList } from './collections/linked-list/LinkedList';
|
|
12
|
+
import { LinkedTreeList } from './collections/linked-tree-list/LinkedTreeList';
|
|
13
|
+
import { Queue } from './collections/queue/Queue';
|
|
14
|
+
import { Stack } from './collections/stack/Stack';
|
|
15
15
|
/**
|
|
16
16
|
* TODO:
|
|
17
17
|
* 1. Create binary tree. Use the tree, but it has a limit of only two children per parent, and when adding / removing sort is applied. Add sort function in fromArray
|
|
@@ -29,12 +29,12 @@ declare const collectYourStuff: {
|
|
|
29
29
|
Queue: typeof Queue;
|
|
30
30
|
Stack: typeof Stack;
|
|
31
31
|
recipes: {
|
|
32
|
-
ArrayIterator: typeof import("./recipes/ArrayIterator").
|
|
33
|
-
Runnable: typeof import("./recipes/Runnable").
|
|
32
|
+
ArrayIterator: typeof import("./recipes/ArrayIterator").ArrayIterator;
|
|
33
|
+
Runnable: typeof import("./recipes/Runnable").Runnable;
|
|
34
34
|
};
|
|
35
35
|
services: {
|
|
36
|
-
parseTree: (tree: import("./recipes/IsTree").
|
|
37
|
-
parseTreeNext: (treeNode: import("./recipes/IsTreeNode").
|
|
36
|
+
parseTree: (tree: import("./recipes/IsTree").IsTree, callback: import("./recipes/IsArrayable").forEachCallback) => import("./recipes/IsTree").IsTree;
|
|
37
|
+
parseTreeNext: (treeNode: import("./recipes/IsTreeNode").IsTreeNode) => import("./recipes/IsTreeNode").IsTreeNode;
|
|
38
38
|
};
|
|
39
39
|
};
|
|
40
40
|
export default collectYourStuff;
|
package/dist/main.js
CHANGED
|
@@ -5,15 +5,14 @@ Object.defineProperty(exports, '__esModule', {
|
|
|
5
5
|
})
|
|
6
6
|
exports.default = void 0
|
|
7
7
|
require('core-js/stable')
|
|
8
|
-
var _Arrayable =
|
|
9
|
-
var _DoublyLinkedList =
|
|
10
|
-
var _LinkedList =
|
|
11
|
-
var _LinkedTreeList =
|
|
12
|
-
var _Queue =
|
|
13
|
-
var _Stack =
|
|
14
|
-
var _recipes =
|
|
15
|
-
var _services =
|
|
16
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
8
|
+
var _Arrayable = require('./collections/arrayable/Arrayable')
|
|
9
|
+
var _DoublyLinkedList = require('./collections/doubly-linked-list/DoublyLinkedList')
|
|
10
|
+
var _LinkedList = require('./collections/linked-list/LinkedList')
|
|
11
|
+
var _LinkedTreeList = require('./collections/linked-tree-list/LinkedTreeList')
|
|
12
|
+
var _Queue = require('./collections/queue/Queue')
|
|
13
|
+
var _Stack = require('./collections/stack/Stack')
|
|
14
|
+
var _recipes = require('./recipes/recipes')
|
|
15
|
+
var _services = require('./services/services')
|
|
17
16
|
/**
|
|
18
17
|
* All of the collections available.
|
|
19
18
|
* @file
|
|
@@ -32,14 +31,14 @@ function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { d
|
|
|
32
31
|
* All methods exported from this module are encapsulated within collect-your-stuff.
|
|
33
32
|
*/
|
|
34
33
|
const collectYourStuff = {
|
|
35
|
-
Arrayable: _Arrayable.
|
|
36
|
-
DoublyLinkedList: _DoublyLinkedList.
|
|
37
|
-
LinkedList: _LinkedList.
|
|
38
|
-
LinkedTreeList: _LinkedTreeList.
|
|
39
|
-
Queue: _Queue.
|
|
40
|
-
Stack: _Stack.
|
|
41
|
-
recipes: _recipes.
|
|
42
|
-
services: _services.
|
|
34
|
+
Arrayable: _Arrayable.Arrayable,
|
|
35
|
+
DoublyLinkedList: _DoublyLinkedList.DoublyLinkedList,
|
|
36
|
+
LinkedList: _LinkedList.LinkedList,
|
|
37
|
+
LinkedTreeList: _LinkedTreeList.LinkedTreeList,
|
|
38
|
+
Queue: _Queue.Queue,
|
|
39
|
+
Stack: _Stack.Stack,
|
|
40
|
+
recipes: _recipes.recipes,
|
|
41
|
+
services: _services.services
|
|
43
42
|
}
|
|
44
43
|
var _default = exports.default = collectYourStuff
|
|
45
44
|
if (void 0) {
|
package/dist/main.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/stable");var _Arrayable=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/stable");var _Arrayable=require("./collections/arrayable/Arrayable"),_DoublyLinkedList=require("./collections/doubly-linked-list/DoublyLinkedList"),_LinkedList=require("./collections/linked-list/LinkedList"),_LinkedTreeList=require("./collections/linked-tree-list/LinkedTreeList"),_Queue=require("./collections/queue/Queue"),_Stack=require("./collections/stack/Stack"),_recipes=require("./recipes/recipes"),_services=require("./services/services");const collectYourStuff={Arrayable:_Arrayable.Arrayable,DoublyLinkedList:_DoublyLinkedList.DoublyLinkedList,LinkedList:_LinkedList.LinkedList,LinkedTreeList:_LinkedTreeList.LinkedTreeList,Queue:_Queue.Queue,Stack:_Stack.Stack,recipes:_recipes.recipes,services:_services.services};var _default=exports.default=collectYourStuff;"undefined"!=typeof window&&(window.collectYourStuff=collectYourStuff);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import IsElement from './IsElement';
|
|
1
|
+
import { IsElement } from './IsElement';
|
|
2
2
|
/**
|
|
3
3
|
* Class ArrayIterator returns the next value when using elements of array type list.
|
|
4
4
|
*/
|
|
5
|
-
declare class ArrayIterator implements Iterator<IsElement> {
|
|
5
|
+
export declare class ArrayIterator implements Iterator<IsElement> {
|
|
6
6
|
private readonly innerList;
|
|
7
7
|
private index;
|
|
8
8
|
constructor(innerList: Array<IsElement>, index?: number);
|
|
9
9
|
next(value?: any): IteratorResult<IsElement>;
|
|
10
10
|
}
|
|
11
|
-
export default ArrayIterator;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.ArrayIterator = void 0
|
|
7
7
|
/**
|
|
8
8
|
* Class ArrayIterator returns the next value when using elements of array type list.
|
|
9
9
|
*/
|
|
@@ -27,4 +27,4 @@ class ArrayIterator {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
exports.ArrayIterator = ArrayIterator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ArrayIterator=void 0;class ArrayIterator{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.innerList=t,this.index=e}next(t){return this.index<this.innerList.length?{value:this.innerList[this.index++],done:!1}:{value:void 0,done:!0}}}exports.ArrayIterator=ArrayIterator;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import IsDoubleLinker from './IsDoubleLinker';
|
|
1
|
+
import { IsDoubleLinker } from './IsDoubleLinker';
|
|
2
2
|
/**
|
|
3
3
|
* Class DoubleLinkerIterator returns the next value when using linkers of linked type lists.
|
|
4
4
|
*/
|
|
5
|
-
declare class DoubleLinkerIterator implements Iterator<IsDoubleLinker> {
|
|
5
|
+
export declare class DoubleLinkerIterator implements Iterator<IsDoubleLinker> {
|
|
6
6
|
private current;
|
|
7
7
|
constructor(current: IsDoubleLinker);
|
|
8
8
|
next(value?: any): IteratorResult<IsDoubleLinker>;
|
|
9
9
|
}
|
|
10
|
-
export default DoubleLinkerIterator;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.DoubleLinkerIterator = void 0
|
|
7
7
|
/**
|
|
8
8
|
* Class DoubleLinkerIterator returns the next value when using linkers of linked type lists.
|
|
9
9
|
*/
|
|
@@ -21,4 +21,4 @@ class DoubleLinkerIterator {
|
|
|
21
21
|
return result
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
exports.DoubleLinkerIterator = DoubleLinkerIterator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DoubleLinkerIterator=void 0;class DoubleLinkerIterator{constructor(e){this.current=e}next(e){const r={value:this.current,done:!this.current};return this.current=this.current?this.current.next:null,r}}exports.DoubleLinkerIterator=DoubleLinkerIterator;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import IsElement from './IsElement';
|
|
1
|
+
import { IsElement } from './IsElement';
|
|
2
2
|
/**
|
|
3
3
|
* Run this function for each element in this arrayable.
|
|
4
4
|
* @callback forEachCallback
|
|
@@ -10,7 +10,7 @@ export type forEachCallback = (element: IsElement, index?: number, thisArg?: IsA
|
|
|
10
10
|
/**
|
|
11
11
|
* Arrayable represents a collection stored as Elements.
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
13
|
+
export interface IsArrayable<T extends IsElement> {
|
|
14
14
|
/**
|
|
15
15
|
* Obnoxious typescript won't let me use typeof this class
|
|
16
16
|
* @property {IsArrayable} classType
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import IsLinker from './IsLinker';
|
|
1
|
+
import { IsLinker } from './IsLinker';
|
|
2
2
|
/**
|
|
3
3
|
* Define the common attributes of a DoubleLinker used in a linking structure chained with 'next' and sometimes 'prev'.
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
5
|
+
export interface IsDoubleLinker extends IsLinker {
|
|
6
6
|
/**
|
|
7
7
|
* @property {IsDoubleLinker} [next=null]
|
|
8
8
|
*/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import IsElement from './IsElement';
|
|
1
|
+
import { IsElement } from './IsElement';
|
|
2
2
|
/**
|
|
3
3
|
* Define the common attributes of a Linker used in a linking structure chained with 'next' (and sometimes 'prev').
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
5
|
+
export interface IsLinker extends IsElement {
|
|
6
6
|
/**
|
|
7
7
|
* @property {IsLinker} [next=null]
|
|
8
8
|
*/
|
package/dist/recipes/IsTree.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import IsTreeNode from './IsTreeNode';
|
|
2
|
-
import IsArrayable from './IsArrayable';
|
|
1
|
+
import { IsTreeNode } from './IsTreeNode';
|
|
2
|
+
import { IsArrayable } from './IsArrayable';
|
|
3
3
|
/**
|
|
4
4
|
* Arrayable represents a collection stored as Elements.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export interface IsTree extends IsArrayable<IsTreeNode> {
|
|
7
7
|
/**
|
|
8
8
|
* @property {IsTreeNode} rootParent
|
|
9
9
|
*/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import IsArrayable from './IsArrayable';
|
|
2
|
-
import IsDoubleLinker from './IsDoubleLinker';
|
|
3
|
-
import LinkedTreeList from '../collections/linked-tree-list/LinkedTreeList';
|
|
1
|
+
import { IsArrayable } from './IsArrayable';
|
|
2
|
+
import { IsDoubleLinker } from './IsDoubleLinker';
|
|
3
|
+
import { LinkedTreeList } from '../collections/linked-tree-list/LinkedTreeList';
|
|
4
4
|
/**
|
|
5
5
|
* Define the common attributes of a Tree Node for a tree structure.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export interface IsTreeNode extends IsDoubleLinker {
|
|
8
8
|
/**
|
|
9
9
|
* @property {IsTreeNode} [next=null]
|
|
10
10
|
*/
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import IsLinker from './IsLinker';
|
|
1
|
+
import { IsLinker } from './IsLinker';
|
|
2
2
|
/**
|
|
3
3
|
* Class LinkerIterator returns the next value when using linkers of linked type lists.
|
|
4
4
|
*/
|
|
5
|
-
declare class LinkerIterator implements Iterator<IsLinker> {
|
|
5
|
+
export declare class LinkerIterator implements Iterator<IsLinker> {
|
|
6
6
|
private current;
|
|
7
7
|
constructor(current: IsLinker);
|
|
8
8
|
next(value?: any): IteratorResult<IsLinker>;
|
|
9
9
|
}
|
|
10
|
-
export default LinkerIterator;
|