format: prettify entire project
This commit is contained in:
72
node_modules/undici/lib/dispatcher/fixed-queue.js
generated
vendored
72
node_modules/undici/lib/dispatcher/fixed-queue.js
generated
vendored
@ -1,10 +1,10 @@
|
||||
'use strict'
|
||||
'use strict';
|
||||
|
||||
// Extracted from node/lib/internal/fixed_queue.js
|
||||
|
||||
// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.
|
||||
const kSize = 2048
|
||||
const kMask = kSize - 1
|
||||
const kSize = 2048;
|
||||
const kMask = kSize - 1;
|
||||
|
||||
// The FixedQueue is implemented as a singly-linked list of fixed-size
|
||||
// circular buffers. It looks something like this:
|
||||
@ -59,57 +59,59 @@ const kMask = kSize - 1
|
||||
* @template T
|
||||
*/
|
||||
class FixedCircularBuffer {
|
||||
constructor () {
|
||||
constructor() {
|
||||
/**
|
||||
* @type {number}
|
||||
*/
|
||||
this.bottom = 0
|
||||
this.bottom = 0;
|
||||
/**
|
||||
* @type {number}
|
||||
*/
|
||||
this.top = 0
|
||||
this.top = 0;
|
||||
/**
|
||||
* @type {Array<T|undefined>}
|
||||
*/
|
||||
this.list = new Array(kSize).fill(undefined)
|
||||
this.list = new Array(kSize).fill(undefined);
|
||||
/**
|
||||
* @type {T|null}
|
||||
*/
|
||||
this.next = null
|
||||
this.next = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isEmpty () {
|
||||
return this.top === this.bottom
|
||||
isEmpty() {
|
||||
return this.top === this.bottom;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isFull () {
|
||||
return ((this.top + 1) & kMask) === this.bottom
|
||||
isFull() {
|
||||
return ((this.top + 1) & kMask) === this.bottom;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {T} data
|
||||
* @returns {void}
|
||||
*/
|
||||
push (data) {
|
||||
this.list[this.top] = data
|
||||
this.top = (this.top + 1) & kMask
|
||||
push(data) {
|
||||
this.list[this.top] = data;
|
||||
this.top = (this.top + 1) & kMask;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {T|null}
|
||||
*/
|
||||
shift () {
|
||||
const nextItem = this.list[this.bottom]
|
||||
if (nextItem === undefined) { return null }
|
||||
this.list[this.bottom] = undefined
|
||||
this.bottom = (this.bottom + 1) & kMask
|
||||
return nextItem
|
||||
shift() {
|
||||
const nextItem = this.list[this.bottom];
|
||||
if (nextItem === undefined) {
|
||||
return null;
|
||||
}
|
||||
this.list[this.bottom] = undefined;
|
||||
this.bottom = (this.bottom + 1) & kMask;
|
||||
return nextItem;
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,43 +119,43 @@ class FixedCircularBuffer {
|
||||
* @template T
|
||||
*/
|
||||
module.exports = class FixedQueue {
|
||||
constructor () {
|
||||
constructor() {
|
||||
/**
|
||||
* @type {FixedCircularBuffer<T>}
|
||||
*/
|
||||
this.head = this.tail = new FixedCircularBuffer()
|
||||
this.head = this.tail = new FixedCircularBuffer();
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isEmpty () {
|
||||
return this.head.isEmpty()
|
||||
isEmpty() {
|
||||
return this.head.isEmpty();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {T} data
|
||||
*/
|
||||
push (data) {
|
||||
push(data) {
|
||||
if (this.head.isFull()) {
|
||||
// Head is full: Creates a new queue, sets the old queue's `.next` to it,
|
||||
// and sets it as the new main queue.
|
||||
this.head = this.head.next = new FixedCircularBuffer()
|
||||
this.head = this.head.next = new FixedCircularBuffer();
|
||||
}
|
||||
this.head.push(data)
|
||||
this.head.push(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {T|null}
|
||||
*/
|
||||
shift () {
|
||||
const tail = this.tail
|
||||
const next = tail.shift()
|
||||
shift() {
|
||||
const tail = this.tail;
|
||||
const next = tail.shift();
|
||||
if (tail.isEmpty() && tail.next !== null) {
|
||||
// If there is another queue, it forms the new tail.
|
||||
this.tail = tail.next
|
||||
tail.next = null
|
||||
this.tail = tail.next;
|
||||
tail.next = null;
|
||||
}
|
||||
return next
|
||||
return next;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user