@loom-io/core
Version:
A file system wrapper for Node.js and Bun
46 lines (45 loc) • 996 B
JavaScript
export class ListItem {
content;
before;
after;
constructor(content) {
this.content = content;
}
getFirst() {
// eslint-disable-next-line @typescript-eslint/no-this-alias
let cur = this;
while (cur.prev() !== undefined) {
cur = cur.prev();
}
return cur;
}
getLast() {
// eslint-disable-next-line @typescript-eslint/no-this-alias
let cur = this;
while (cur.next() !== undefined) {
cur = cur.next();
}
return cur;
}
addBefore(item) {
item.before = this.before;
item.after = this;
this.before = item;
return item;
}
addAfter(item) {
item.before = this;
item.after = this.after;
this.after = item;
return item;
}
remove() {
this.before?.addAfter(this.after);
}
prev() {
return this.before;
}
next() {
return this.after;
}
}