Skip to content

Commit eac4b7e

Browse files
committed
Extracted interfaces from core classes (v0.3.0).
1 parent 790404b commit eac4b7e

19 files changed

+360
-207
lines changed

.d.ts/doubly-linked-list-node.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { DoublyLinkedList } from "./doubly-linked-list";
2-
export declare class DoublyLinkedListNode<E> {
2+
import { IDoublyLinkedListNode } from "./i-doubly-linked-list-node";
3+
export declare class DoublyLinkedListNode<E> implements IDoublyLinkedListNode<E> {
34
private previous;
45
private next;
56
private parentList;

.d.ts/doubly-linked-list.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { AbstractList } from "@jsdsl/abstract-list";
22
import { DoublyLinkedListNode } from "./doubly-linked-list-node";
33
import { AbstractIterator } from "iter-over";
4-
export declare class DoublyLinkedList<E = any> extends AbstractList<E> {
4+
import { IDoublyLinkedList } from "./i-doubly-linked-list";
5+
export declare class DoublyLinkedList<E = any> extends AbstractList<E> implements IDoublyLinkedList<E> {
56
private prologue;
67
private epilogue;
78
constructor(...elements: E[]);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { IDoublyLinkedList } from "./i-doubly-linked-list";
2+
export interface IDoublyLinkedListNode<E> {
3+
getElement(): E;
4+
getParentList(): IDoublyLinkedList<E>;
5+
hasPreviousNode(): boolean;
6+
getPreviousNode(): IDoublyLinkedListNode<E> | undefined;
7+
setPreviousNode(previousNode: IDoublyLinkedListNode<E> | undefined): IDoublyLinkedListNode<E> | undefined;
8+
hasNextNode(): boolean;
9+
getNextNode(): IDoublyLinkedListNode<E> | undefined;
10+
setNextNode(nextNode: IDoublyLinkedListNode<E> | undefined): IDoublyLinkedListNode<E> | undefined;
11+
}

.d.ts/i-doubly-linked-list.d.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { AbstractIterator } from "iter-over";
2+
import { IDoublyLinkedListNode } from "./i-doubly-linked-list-node";
3+
export interface IDoublyLinkedList<E> {
4+
getFirst(): E | undefined;
5+
getFirstNode(): IDoublyLinkedListNode<E> | undefined;
6+
getLast(): E | undefined;
7+
getLastNode(): IDoublyLinkedListNode<E> | undefined;
8+
hasNextNode(node: IDoublyLinkedListNode<E>): boolean;
9+
getNextNode(node: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E> | undefined;
10+
hasPreviousNode(node: IDoublyLinkedListNode<E>): boolean;
11+
getPreviousNode(node: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E> | undefined;
12+
insertAfter(element: E, node: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E>;
13+
insertNodeAfter(node: IDoublyLinkedListNode<E>, afterNode: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E>;
14+
insertBefore(element: E, node: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E>;
15+
insertNodeBefore(node: IDoublyLinkedListNode<E>, beforeNode: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E>;
16+
insertFirst(element: E): IDoublyLinkedListNode<E>;
17+
insertNodeFirst(node: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E>;
18+
insertLast(element: E): IDoublyLinkedListNode<E>;
19+
insertNodeLast(node: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E>;
20+
removeFirst(): E | undefined;
21+
removeFirstNode(): IDoublyLinkedListNode<E> | undefined;
22+
removeLast(): E | undefined;
23+
removeLastNode(): IDoublyLinkedListNode<E> | undefined;
24+
removeNode(node: IDoublyLinkedListNode<E>): IDoublyLinkedListNode<E>;
25+
nodeIterator(): AbstractIterator<IDoublyLinkedListNode<E>>;
26+
}

.d.ts/main.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
export { DoublyLinkedList } from "./doubly-linked-list";
22
export { DoublyLinkedListNode } from "./doubly-linked-list-node";
3+
export { IDoublyLinkedList } from "./i-doubly-linked-list";
4+
export { IDoublyLinkedListNode } from "./i-doubly-linked-list-node";

js/doubly-linked-list-node.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/doubly-linked-list.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/i-doubly-linked-list-node.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/i-doubly-linked-list-node.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/i-doubly-linked-list.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)