UNPKG

@bookbox/view-html

Version:

Bookbox view for html

64 lines (63 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findItem = exports.removeTail = exports.removeHead = exports.addHead = exports.addTail = void 0; function getItem(data) { return { data, next: null, prev: null, }; } function addTail(list, data) { const item = getItem(data); const oldTail = list.tail; if (oldTail) { oldTail.next = item; item.prev = oldTail; } list.tail = item; } exports.addTail = addTail; function addHead(list, data) { const item = getItem(data); const oldHead = list.head; if (oldHead) { oldHead.prev = item; item.next = oldHead; } list.head = item; } exports.addHead = addHead; function removeHead(list) { const oldHead = list.head; if (oldHead) { const currentHead = oldHead.next; if (currentHead) { currentHead.prev = null; } list.head = currentHead; } } exports.removeHead = removeHead; function removeTail(list) { const oldTail = list.tail; if (oldTail) { const currentTail = oldTail.prev; if (currentTail) { currentTail.next = null; } list.tail = currentTail; } } exports.removeTail = removeTail; function findItem(list, find) { let current = list.head; while (current !== null) { if (find(current.data)) { return current; } current = current.next; } return null; } exports.findItem = findItem;