npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

collect-your-stuff

v1.2.3

Published

Use a variety of collections to collect your stuff when building code.

Downloads

252

Readme

Collect your stuff (and go)!

Data allocation and manipulation.

Modules

Classes

Members

Constants

Functions

collect-your-stuff

All of the collections available.

Version: 1.0.0
Author: Joshua Heagle [email protected]

collect-your-stuff~collectYourStuff

All methods exported from this module are encapsulated within collect-your-stuff.

Kind: inner constant of collect-your-stuff

Arrayable

Arrayable represents a collection stored as an array.

Kind: global class

new Arrayable()

Create the new Arrayable instance, configure the Arrayable class.

arrayable.list ⇒ Array.<ArrayElement>

Retrieve a copy of the innerList used.

Kind: instance property of Arrayable

arrayable.first ⇒ ArrayElement

Retrieve the first Element from the Arrayable

Kind: instance property of Arrayable

arrayable.last ⇒ ArrayElement

Retrieve the last Element from the Arrayable

Kind: instance property of Arrayable

arrayable.length ⇒ number

Return the length of the list.

Kind: instance property of Arrayable

arrayable.initialize(initialList) ⇒ Arrayable

Initialize the inner list, should only run once.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | initialList | Array.<ArrayElement> | Give the array of elements to start in this Arrayable. |

arrayable.insertAfter(node, newNode) ⇒ Arrayable

Insert a new node (or data) after a node.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | * | The existing node as reference | | newNode | ArrayElement | * | The new node to go after the existing node |

arrayable.insertBefore(node, newNode) ⇒ Arrayable

Insert a new node (or data) before a node.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | * | The existing node as reference | | newNode | ArrayElement | * | The new node to go before the existing node |

arrayable.append(node, after) ⇒ Arrayable

Add a node (or data) after the given (or last) node in the list.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | * | The new node to add to the end of the list | | after | ArrayElement | The existing last node |

arrayable.prepend(node, before) ⇒ Arrayable

Add a node (or data) before the given (or first) node in the list.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | * | The new node to add to the start of the list | | before | ArrayElement | The existing first node |

arrayable.remove(node) ⇒ ArrayElement

Remove an element from this arrayable.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | The node we wish to remove (and it will be returned after removal) |

arrayable.item(index) ⇒ ArrayElement | null

Retrieve an ArrayElement item from this list by numeric index, otherwise return null.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | index | number | The integer number for retrieving a node by position. |

arrayable.forEach(callback, thisArg) ⇒ Arrayable

Be able to run forEach on this Arrayable to iterate over the elements.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | callback | forEachCallback | The function to call for-each element | | thisArg | Arrayable | Optional, 'this' reference |

ArrayElement

Element represents a node in an Arrayable.

Kind: global class

new ArrayElement([data])

Create the new Element instance, provide the data and optionally configure the type of Element.

| Param | Type | Default | Description | | --- | --- | --- | --- | | [data] | * | | The data to be stored in this element. |

ArrayElement.fromArray([values], [classType]) ⇒ Object

Convert an array into Element instances, return the head and tail Elements.

Kind: static method of ArrayElement

| Param | Type | Default | Description | | --- | --- | --- | --- | | [values] | Array.<IsElement> | [] | Provide an array of data that will be converted to array of elements. | | [classType] | IsElement | ArrayElement | Provide the type of IsElement to use. |

DoubleLinker ⇐ Linker

DoubleLinker represents a node in a DoublyLinkedList which is chained by next and prev.

Kind: global class
Extends: Linker

new DoubleLinker([nodeData])

Create the new DoubleLinker instance, provide the data and optionally the next and prev references.

| Param | Type | Default | Description | | --- | --- | --- | --- | | [nodeData] | Object | {} | | | [nodeData.data] | * | | The data to be stored in this linker | | [nodeData.next] | DoubleLinker | null | | The reference to the next linker if any | | [nodeData.prev] | DoubleLinker | null | | The reference to the previous linker if any |

DoubleLinker.fromArray([values], [classType]) ⇒ Object

Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.

Kind: static method of DoubleLinker

| Param | Type | Default | Description | | --- | --- | --- | --- | | [values] | Array | [] | Provide an array of data that will be converted to a chain of linkers. | | [classType] | IsDoubleLinker | DoubleLinker | Provide the type of IsDoubleLinker to use. |

DoublyLinkedList ⇐ LinkedList

DoublyLinkedList represents a collection stored as a LinkedList with prev and next references.

Kind: global class
Extends: LinkedList

new DoublyLinkedList()

Create the new DoublyLinkedList instance.

doublyLinkedList.list ⇒ DoubleLinker

Retrieve a copy of the innerList used.

Kind: instance property of DoublyLinkedList
Overrides: list

doublyLinkedList.first ⇒ DoubleLinker

Retrieve the first DoubleLinker in the list.

Kind: instance property of DoublyLinkedList
Overrides: first

doublyLinkedList.last ⇒ DoubleLinker

Retrieve the last DoubleLinker in the list.

Kind: instance property of DoublyLinkedList
Overrides: last

doublyLinkedList.length ⇒ number

Return the length of the list.

Kind: instance property of DoublyLinkedList
Overrides: length

doublyLinkedList.initialize(initialList) ⇒ DoublyLinkedList

Initialize the inner list, should only run once.

Kind: instance method of DoublyLinkedList
Overrides: initialize

| Param | Type | Description | | --- | --- | --- | | initialList | DoubleLinker | Give the list of double-linkers to start in this doubly linked-list. |

doublyLinkedList.insertAfter(node, newNode) ⇒ DoublyLinkedList

Insert a new node (or data) after a node.

Kind: instance method of DoublyLinkedList
Overrides: insertAfter

| Param | Type | Description | | --- | --- | --- | | node | DoubleLinker | * | The existing node as reference | | newNode | DoubleLinker | * | The new node to go after the existing node |

doublyLinkedList.insertBefore(node, newNode) ⇒ DoublyLinkedList

Insert a new node (or data) before a node.

Kind: instance method of DoublyLinkedList
Overrides: insertBefore

| Param | Type | Description | | --- | --- | --- | | node | DoubleLinker | * | The existing node as reference | | newNode | DoubleLinker | * | The new node to go before the existing node |

doublyLinkedList.append(node, after) ⇒ DoubleLinker

Add a node (or data) after the given (or last) node in the list.

Kind: instance method of DoublyLinkedList
Overrides: append

| Param | Type | Description | | --- | --- | --- | | node | DoubleLinker | * | The new node to add to the end of the list | | after | DoubleLinker | The existing last node |

doublyLinkedList.prepend(node, before) ⇒ DoubleLinker

Add a node (or data) before the given (or first) node in the list.

Kind: instance method of DoublyLinkedList
Overrides: prepend

| Param | Type | Description | | --- | --- | --- | | node | DoubleLinker | * | The new node to add to the start of the list | | before | DoubleLinker | The existing first node |

doublyLinkedList.remove(node) ⇒ DoubleLinker

Remove a linker from this linked list.

Kind: instance method of DoublyLinkedList
Overrides: remove

| Param | Type | Description | | --- | --- | --- | | node | DoubleLinker | The node we wish to remove (and it will be returned after removal) |

doublyLinkedList.reset() ⇒ DoubleLinker

Refresh all references and return head reference.

Kind: instance method of DoublyLinkedList

doublyLinkedList.item(index) ⇒ DoubleLinker | null

Retrieve a DoubleLinker item from this list by numeric index, otherwise return null.

Kind: instance method of DoublyLinkedList
Overrides: item

| Param | Type | Description | | --- | --- | --- | | index | number | The integer number for retrieving a node by position. |

doublyLinkedList.forEach(callback, thisArg)

Be able to run forEach on this DoublyLinkedList to iterate over the DoubleLinker Items.

Kind: instance method of DoublyLinkedList
Overrides: forEach

| Param | Type | Description | | --- | --- | --- | | callback | forEachCallback | The function to call for-each double linker | | thisArg | DoublyLinkedList | Optional, 'this' reference |

LinkedList ⇐ Arrayable

LinkedList represents a collection stored as a LinkedList with next references.

Kind: global class
Extends: Arrayable

new LinkedList()

Create the new LinkedList instance.

linkedList.list ⇒ Linker

Retrieve a copy of the innerList used.

Kind: instance property of LinkedList
Overrides: list

linkedList.first ⇒ Linker

Retrieve the first Linker in the list.

Kind: instance property of LinkedList
Overrides: first

linkedList.last ⇒ Linker

Retrieve the last Linker in the list.

Kind: instance property of LinkedList
Overrides: last

linkedList.length ⇒ number

Return the length of the list.

Kind: instance property of LinkedList
Overrides: length

linkedList.initialize(initialList) ⇒ LinkedList

Initialize the inner list, should only run once.

Kind: instance method of LinkedList
Overrides: initialize

| Param | Type | Description | | --- | --- | --- | | initialList | Linker | Array | Give the list of linkers to start in this linked-list. |

linkedList.insertAfter(node, newNode) ⇒ LinkedList

Insert a new node (or data) after a node.

Kind: instance method of LinkedList
Overrides: insertAfter

| Param | Type | Description | | --- | --- | --- | | node | Linker | * | The existing node as reference | | newNode | Linker | * | The new node to go after the existing node |

linkedList.insertBefore(node, newNode) ⇒ LinkedList

Insert a new node (or data) before a node.

Kind: instance method of LinkedList
Overrides: insertBefore

| Param | Type | Description | | --- | --- | --- | | node | Linker | * | The existing node as reference | | newNode | Linker | * | The new node to go before the existing node |

linkedList.append(node, after) ⇒ Linker

Add a node (or data) after the given (or last) node in the list.

Kind: instance method of LinkedList
Overrides: append

| Param | Type | Description | | --- | --- | --- | | node | Linker | * | The new node to add to the end of the list | | after | Linker | The existing last node |

linkedList.prepend(node, before) ⇒ Linker

Add a node (or data) before the given (or first) node in the list.

Kind: instance method of LinkedList
Overrides: prepend

| Param | Type | Description | | --- | --- | --- | | node | Linker | * | The new node to add to the start of the list | | before | Linker | The existing first node |

linkedList.remove(node) ⇒ Linker

Remove a linker from this linked list.

Kind: instance method of LinkedList
Overrides: remove

| Param | Type | Description | | --- | --- | --- | | node | Linker | The node we wish to remove (and it will be returned after removal) |

linkedList.item(index) ⇒ Linker | null

Retrieve a Linker item from this list by numeric index, otherwise return null.

Kind: instance method of LinkedList
Overrides: item

| Param | Type | Description | | --- | --- | --- | | index | number | The integer number for retrieving a node by position. |

linkedList.forEach(callback, thisArg) ⇒ LinkedList

Be able to run forEach on this LinkedList to iterate over the linkers.

Kind: instance method of LinkedList
Overrides: forEach

| Param | Type | Description | | --- | --- | --- | | callback | forEachCallback | The function to call for-each linker | | thisArg | LinkedList | Optional, 'this' reference |

Linker ⇐ ArrayElement

Linker represents a node in a LinkedList.

Kind: global class
Extends: ArrayElement

new Linker([nodeData])

Create the new Linker instance, provide the data and optionally give the next Linker.

| Param | Type | Default | Description | | --- | --- | --- | --- | | [nodeData] | Object | {} | | | [nodeData.data] | * | | The data to be stored in this linker | | [nodeData.next] | Linker | null | | The reference to the next linker if any |

Linker.fromArray([values], [classType]) ⇒ Object

Convert an array into Linker instances, return the head and tail Linkers.

Kind: static method of Linker

| Param | Type | Default | Description | | --- | --- | --- | --- | | [values] | Array | [] | Provide an array of data that will be converted to a chain of linkers. | | [classType] | IsLinker | Linker | Provide the type of IsLinker to use. |

LinkedTreeList ⇐ DoublyLinkedList

LinkedTreeList represents a collection stored with a root and spreading in branching (tree) formation.

Kind: global class
Extends: DoublyLinkedList

new LinkedTreeList()

Create the new LinkedTreeList instance, configure the list class.

linkedTreeList.list ⇒ TreeLinker

Retrieve a copy of the innerList used.

Kind: instance property of LinkedTreeList
Overrides: list

linkedTreeList.first ⇒ TreeLinker

Retrieve the first TreeLinker in the list.

Kind: instance property of LinkedTreeList
Overrides: first

linkedTreeList.last ⇒ TreeLinker

Retrieve the last TreeLinker in the list.

Kind: instance property of LinkedTreeList
Overrides: last

linkedTreeList.length ⇒ number

Return the length of the list.

Kind: instance property of LinkedTreeList
Overrides: length

linkedTreeList.parent ⇒ TreeLinker

Get the parent of this tree list.

Kind: instance property of LinkedTreeList

linkedTreeList.parent

Set the parent of this tree list

Kind: instance property of LinkedTreeList

| Param | Type | Description | | --- | --- | --- | | parent | TreeLinker | The new node to use as the parent for this group of children |

linkedTreeList.rootParent ⇒ TreeLinker

Return the root parent of the entire tree.

Kind: instance property of LinkedTreeList

linkedTreeList.initialize(initialList) ⇒ LinkedTreeList

Initialize the inner list, should only run once.

Kind: instance method of LinkedTreeList
Overrides: initialize

| Param | Type | Description | | --- | --- | --- | | initialList | TreeLinker | Give the list of tree-linkers to start in this linked-tree-list. |

linkedTreeList.setChildren(item, children)

Set the children on a parent item.

Kind: instance method of LinkedTreeList

| Param | Type | Description | | --- | --- | --- | | item | TreeLinker | The TreeLinker node that will be the parent of the children | | children | LinkedTreeList | The LinkedTreeList which has the child nodes to use |

linkedTreeList.insertAfter(node, newNode) ⇒ LinkedTreeList

Insert a new node (or data) after a node.

Kind: instance method of LinkedTreeList
Overrides: insertAfter

| Param | Type | Description | | --- | --- | --- | | node | TreeLinker | * | The existing node as reference | | newNode | TreeLinker | * | The new node to go after the existing node |

linkedTreeList.insertBefore(node, newNode) ⇒ LinkedTreeList

Insert a new node (or data) before a node.

Kind: instance method of LinkedTreeList
Overrides: insertBefore

| Param | Type | Description | | --- | --- | --- | | node | TreeLinker | * | The existing node as reference | | newNode | TreeLinker | * | The new node to go before the existing node |

linkedTreeList.append(node, after) ⇒ TreeLinker

Add a node (or data) after the given (or last) node in the list.

Kind: instance method of LinkedTreeList
Overrides: append

| Param | Type | Description | | --- | --- | --- | | node | TreeLinker | * | The new node to add to the end of the list | | after | TreeLinker | The existing last node |

linkedTreeList.prepend(node, before) ⇒ TreeLinker

Add a node (or data) before the given (or first) node in the list.

Kind: instance method of LinkedTreeList
Overrides: prepend

| Param | Type | Description | | --- | --- | --- | | node | TreeLinker | * | The new node to add to the start of the list | | before | TreeLinker | The existing first node |

linkedTreeList.remove(node) ⇒ TreeLinker

Remove a linker from this linked list.

Kind: instance method of LinkedTreeList
Overrides: remove

| Param | Type | Description | | --- | --- | --- | | node | TreeLinker | The node we wish to remove (and it will be returned after removal) |

linkedTreeList.reset() ⇒ TreeLinker

Refresh all references and return head reference.

Kind: instance method of LinkedTreeList
Overrides: reset

linkedTreeList.item(index) ⇒ TreeLinker | null

Retrieve a TreeLinker item from this list by numeric index, otherwise return null.

Kind: instance method of LinkedTreeList
Overrides: item

| Param | Type | Description | | --- | --- | --- | | index | number | The integer number for retrieving a node by position. |

linkedTreeList.forEach(callback, thisArg)

Be able to run forEach on this LinkedTreeList to iterate over the TreeLinker Items.

Kind: instance method of LinkedTreeList
Overrides: forEach

| Param | Type | Description | | --- | --- | --- | | callback | forEachCallback | The function to call for-each tree node | | thisArg | LinkedTreeList | Optional, 'this' reference |

TreeLinker ⇐ DoubleLinker

TreeLinker represents a node in a LinkedTreeList having a parent (or root) and child nodes.

Kind: global class
Extends: DoubleLinker

new TreeLinker([settings], listClass)

Create the new TreeLinker instance, provide the data and optionally set references for next, prev, parent, or children.

| Param | Type | Default | Description | | --- | --- | --- | --- | | [settings] | Object | {} | | | [settings.data] | * | | The data to be stored in this tree node | | [settings.next] | TreeLinker | | The reference to the next linker if any | | [settings.prev] | TreeLinker | | The reference to the previous linker if any | | [settings.children] | LinkedTreeList | | The references to child linkers if any | | [settings.parent] | TreeLinker | | The reference to a parent linker if any | | listClass | IsArrayable.<IsTreeNode> | | Give the type of list to use for storing the children |

treeLinker.childrenFromArray(children, listClass) ⇒ LinkedTreeList | null

Create the children for this tree from an array.

Kind: instance method of TreeLinker

| Param | Type | Description | | --- | --- | --- | | children | Array | null | Provide an array of data / linker references to be children of this tree node. | | listClass | IsArrayable.<IsTreeNode> | Give the type of list to use for storing the children |

TreeLinker.fromArray([values], [classType]) ⇒ Object

Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.

Kind: static method of TreeLinker

| Param | Type | Default | Description | | --- | --- | --- | --- | | [values] | Array | [] | Provide an array of data that will be converted to a chain of tree-linkers. | | [classType] | IsTreeNode | TreeLinker | Provide the type of IsTreeNode to use. |

Queue

Maintain a series of queued items.

Kind: global class

new Queue(queuedList, listClass, queueableClass)

Instantiate the queue with the given queue list.

| Param | Type | Description | | --- | --- | --- | | queuedList | Iterable | LinkedList | Give the list of queueables to start in this queue. | | listClass | IsArrayable | | | queueableClass | Queueable | |

queue.dequeue() ⇒ completeResponse | *

Take a queued task from the front of the queue and run it if ready.

Kind: instance method of Queue

queue.empty() ⇒ boolean

Return true if the queue is empty (there are no tasks in the queue list)

Kind: instance method of Queue

queue.enqueue(queueable)

Add a queued task to the end of the queue

Kind: instance method of Queue

| Param | Type | Description | | --- | --- | --- | | queueable | Queueable | Add a new queueable to the end of the queue |

queue.peek() ⇒ Queueable

Take a look at the next queued task

Kind: instance method of Queue

queue.remove() ⇒ Queueable | null

Remove the next queued item and return it.

Kind: instance method of Queue

queue.size() ⇒ number

Get the length of the current queue.

Kind: instance method of Queue

Queueable ⇐ Linker

Queueable represents a runnable entry in a queue.

Kind: global class
Extends: Linker

new Queueable([queueableData])

Create a queueable item that can be used in a queue.

| Param | Type | Default | Description | | --- | --- | --- | --- | | [queueableData] | Object | {} | | | [queueableData.task] | * | | The data to be stored in this queueable | | [queueableData.next] | Queueable | null | | The reference to the next queueable if any | | [queueableData.ready] | boolean | function | false | Indicate if the queueable is ready to run |

queueable.isReady ⇒ boolean

Check ready state.

Kind: instance property of Queueable

queueable.task ⇒ *

Retrieve the data which should be formed as a task.

Kind: instance property of Queueable

queueable.markCompleted(completeResponse) ⇒ completeResponse

Set this queueable as completed.

Kind: instance method of Queueable

| Param | Type | Default | Description | | --- | --- | --- | --- | | completeResponse | Object | | | | [completeResponse.success] | * | true | Indicate when the task failed (use false) or give a success message | | [completeResponse.error] | * | false | Indicate a task was error-free (use false) or give an error message | | [completeResponse.context] | * | | Provide additional data in the response |

queueable.run() ⇒ completeResponse

Intend to run the queued task when it is ready. If ready, mark this task as running and run the task.

Kind: instance method of Queueable

Queueable.fromArray(values, [classType]) ⇒ Object

Convert an array into Queueable instances, return the head and tail Queueables.

Kind: static method of Queueable

| Param | Type | Default | Description | | --- | --- | --- | --- | | values | Array | | Provide an array of data that will be converted to a chain of queueable linkers. | | [classType] | IsLinker | Queueable | Provide the type of IsLinker to use. |

Stack

Store a collection of items which can only be inserted and removed from the top.

Kind: global class

new Stack(stackedList, listClass, stackableClass)

Instantiate the state with the starter stacked list.

| Param | Type | | --- | --- | | stackedList | Iterable | LinkedList | | listClass | IsArrayable | | stackableClass | Stackable |

stack.empty() ⇒ boolean

Return true if the stack is empty (there are no tasks in the stacked list)

Kind: instance method of Stack

stack.top() ⇒ Stackable

Take a look at the next stacked task

Kind: instance method of Stack

stack.pop() ⇒ Stackable | null

Remove the next stacked task and return it.

Kind: instance method of Stack

stack.push(stackable)

Push a stackable task to the top of the stack.

Kind: instance method of Stack

| Param | Type | Description | | --- | --- | --- | | stackable | Stackable | * | Add a new stackable to the top of the stack |

stack.remove() ⇒ Stackable | null

Remove the next stacked task and return it.

Kind: instance method of Stack

stack.size() ⇒ number

Get the size of the current stack.

Kind: instance method of Stack

Stackable ⇐ Linker

Stackable represents a runnable entry in stack.

Kind: global class
Extends: Linker

new Stackable([stackData])

Create a stackable item that can be used in a stack.

| Param | Type | Default | Description | | --- | --- | --- | --- | | [stackData] | Object | {} | | | [stackData.task] | * | | The data to be stored in this stackable | | [stackData.next] | Stackable | null | | The reference to the next stackable if any | | [stackData.ready] | boolean | function | false | Indicate if the stackable is ready to run |

stackable.task ⇒ *

Retrieve the data which should be formed as a task.

Kind: instance property of Stackable

stackable.run() ⇒ *

Run the stacked task.

Kind: instance method of Stackable

Stackable.fromArray([values], [classType]) ⇒ Object

Convert an array into Stackable instances, return the head and tail Stackables.

Kind: static method of Stackable

| Param | Type | Default | Description | | --- | --- | --- | --- | | [values] | Array | [] | Provide an array of data that will be converted to a chain of stackable linkers. | | [classType] | IsLinker | Stackable | Provide the type of IsLinker to use. |

ArrayIterator

Class ArrayIterator returns the next value when using elements of array type list.

Kind: global class

DoubleLinkerIterator

Class DoubleLinkerIterator returns the next value when using linkers of linked type lists.

Kind: global class

LinkerIterator

Class LinkerIterator returns the next value when using linkers of linked type lists.

Kind: global class

Runnable

Identify a class that can be run.

Kind: global class

new Runnable(data)

Instantiate a Runnable class.

| Param | Type | | --- | --- | | data | * |

runnable.task ⇒ function

Retrieve the data which should be formed as a task.

Kind: instance property of Runnable

runnable.run() ⇒ *

Run the runnable task.

Kind: instance method of Runnable

Runnable.isRunnable(thing) ⇒ boolean

Check if a given thing is Runnable

Kind: static method of Runnable

| Param | Type | | --- | --- | | thing | * |

TreeLinkerIterator

Class TreeLinkerIterator returns the next value taking a left-first approach down a tree.

Kind: global class

Arrayable ⇒ Arrayable

Convert an array to an Arrayable.

Kind: global variable

| Param | Type | Default | Description | | --- | --- | --- | --- | | values | Array | | An array of values which will be converted to elements in this arrayable | | [elementClass] | IsElement | ArrayElement | The class to use for each element | | [classType] | IsArrayable.<ArrayElement> | Arrayable | Provide the type of IsArrayable to use. |

new Arrayable()

Create the new Arrayable instance, configure the Arrayable class.

arrayable.list ⇒ Array.<ArrayElement>

Retrieve a copy of the innerList used.

Kind: instance property of Arrayable

arrayable.first ⇒ ArrayElement

Retrieve the first Element from the Arrayable

Kind: instance property of Arrayable

arrayable.last ⇒ ArrayElement

Retrieve the last Element from the Arrayable

Kind: instance property of Arrayable

arrayable.length ⇒ number

Return the length of the list.

Kind: instance property of Arrayable

arrayable.initialize(initialList) ⇒ Arrayable

Initialize the inner list, should only run once.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | initialList | Array.<ArrayElement> | Give the array of elements to start in this Arrayable. |

arrayable.insertAfter(node, newNode) ⇒ Arrayable

Insert a new node (or data) after a node.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | * | The existing node as reference | | newNode | ArrayElement | * | The new node to go after the existing node |

arrayable.insertBefore(node, newNode) ⇒ Arrayable

Insert a new node (or data) before a node.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | * | The existing node as reference | | newNode | ArrayElement | * | The new node to go before the existing node |

arrayable.append(node, after) ⇒ Arrayable

Add a node (or data) after the given (or last) node in the list.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | * | The new node to add to the end of the list | | after | ArrayElement | The existing last node |

arrayable.prepend(node, before) ⇒ Arrayable

Add a node (or data) before the given (or first) node in the list.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | * | The new node to add to the start of the list | | before | ArrayElement | The existing first node |

arrayable.remove(node) ⇒ ArrayElement

Remove an element from this arrayable.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | node | ArrayElement | The node we wish to remove (and it will be returned after removal) |

arrayable.item(index) ⇒ ArrayElement | null

Retrieve an ArrayElement item from this list by numeric index, otherwise return null.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | index | number | The integer number for retrieving a node by position. |

arrayable.forEach(callback, thisArg) ⇒ Arrayable

Be able to run forEach on this Arrayable to iterate over the elements.

Kind: instance method of Arrayable

| Param | Type | Description | | --- | --- | --- | | callback | forEachCallback | The function to call for-each element | | thisArg | Arrayable | Optional, 'this' reference |

ArrayElement ⇒ ArrayElement

Make a new Element from the data given if it is not already a valid Element.

Kind: global variable

| Param | Type | Default | Description | | --- | --- | --- | --- | | element | ArrayElement | * | | Return a valid ArrayElement instance from given data, or even an already valid one. | | [classType] | IsElement | ArrayElement | Provide the type of IsElement to use. |

new ArrayElement([data])

Create the new Element instance, provide the data and optionally configure the type of Element.

| Param | Type | Default | Description | | --- | --- | --- | --- | | [data] | * | | The data to be stored in this element. |

ArrayElement.fromArray([values], [classType]) ⇒ Object

Convert an array into Element instances, return the head and tail Elements.

Kind: static method of ArrayElement

| Param | Type | Default | Description | | --- | --- | --- | --- | | [values] | Array.<IsElement> | [] | Provide an array of data that will be converted to array of elements. | | [classType] | IsElement | ArrayElement | Provide the type of IsElement to use. |

DoubleLinker ⇒ DoubleLinker

Make a new DoubleLinker from the data given if it is not already a valid Linker.

Kind: global variable

| Param | Type | Default | Description | | --- | --- | --- | --- | | linker | DoubleLinker | * | | Return a valid Linker instance from given data, or even an already valid one. | | [classType] | IsDoubleLinker | DoubleLinker | Provide the type of IsDoubleLinker to use. |

new DoubleLinker([nodeData])

Create the new DoubleLinker instance, provide the data and optionally the next and prev references.

| Param | Type | Default | Description | | --- | --- | --- | --- | | [nodeData] | Object | {} | | | [nodeData.data] | * | | The data to be stored in this linker | | [nodeData.next] | DoubleLinker | null | | The reference to the next linker if any | | [nodeData.prev] | DoubleLinker | null | | The reference to the previous linker if any |

DoubleLinker.fromArray([values], [classType]) ⇒ Object

Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.

Kind: static method of DoubleLinker

| Param | Type | Default | Description | | --- | --- | --- | --- | | [values] | Array | [] | Provide an array of data that will be converted to a chain of linkers. | | [classType] | IsDoubleLinker | DoubleLinker | Provide the type of IsDoubleLinker to use. |

DoublyLinkedList ⇒ DoublyLinkedList

Convert an array into a DoublyLinkedList instance, return the new instance.

Kind: global variable

| Param | Type | Default | Description | | --- | --- | --- | --- | | [values] | Array | [] | An array of values which will be converted to linkers in this doubly-linked-list | | [linkerClass] | IsDoubleLinker | DoubleLinker | The class to use for each linker | | [classType] | IsArrayable.<IsDoubleLinker> | LinkedList | Provide the type of IsArrayable to use. |