Socket
Book a DemoInstallSign in
Socket

queue-typed

Package Overview
Dependencies
Maintainers
1
Versions
174
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

queue-typed

Queue data structure

latest
Source
npmnpm
Version
2.2.6
Version published
Weekly downloads
791
2829.63%
Maintainers
1
Weekly downloads
 
Created
Source

NPM GitHub top language npm eslint npm bundle size npm bundle size npm

What

Brief

In the usual gig, we make do with Array.push and Array.shift to play Queue in JavaScript, but here's the kicker – native JavaScript Array isn't exactly Queue VIP. That shift move? It's a bit of a slow dance with a time complexity of linear time complexity O(n). When you're working with big data, you don't want to be caught slow-shifting. So, we roll up our sleeves and craft a Queue that's got a speedy constant time complexity O(1) Queue.enqueue(), a snappy O(1) Queue.dequeue(), and a lightning-fast O(1) Queue.getAt(). Yep, it's Queue-tastic!

Data StructureEnqueueDequeueAccessEnqueue & Dequeue 100000Access 100000
Queue TypedO(1)O(1)O(1)22.60ms10.60ms
JavaScript Native ArrayO(1)O(n)O(1)931.10ms8.60ms
Other QueueO(1)O(1)O(n)28.90ms17175.90ms

more data structures

This is a standalone Queue data structure from the data-structure-typed collection. If you wish to access more data structures or advanced features, you can transition to directly installing the complete data-structure-typed package

How

install

npm

npm i queue-typed --save

yarn

yarn add queue-typed

snippet

TS

import {Queue} from 'queue-typed';
// /* or if you prefer */ import {Queue} from 'queue-typed';

const queue = new Queue<number>();
for (let i = 0; i < magnitude; i++) {
    queue.enqueue(i);
}
for (let i = 0; i < magnitude; i++) {
    queue.dequeue();
}

for (let i = 0; i < magnitude; i++) {
    console.log(queue.getAt(i));        // 0, 1, 2, 3, ...
}

JS

const {Queue} = require('queue-typed');
// /* or if you prefer */ const {Queue} = require('queue-typed');

const queue = new Queue();
for (let i = 0; i < magnitude; i++) {
    queue.enqueue(i);
}
for (let i = 0; i < magnitude; i++) {
    queue.dequeue();
}

for (let i = 0; i < magnitude; i++) {
    console.log(queue.getAt(i));        // 0, 1, 2, 3, ...
}

basic Queue creation and push operation

 // Create a simple Queue with initial values
    const queue = new Queue([1, 2, 3, 4, 5]);

    // Verify the queue maintains insertion order
    console.log([...queue]); // [1, 2, 3, 4, 5];

    // Check length
    console.log(queue.length); // 5;

Queue shift and peek operations

 const queue = new Queue<number>([10, 20, 30, 40]);

    // Peek at the front element without removing it
    console.log(queue.first); // 10;

    // Remove and get the first element (FIFO)
    const first = queue.shift();
    console.log(first); // 10;

    // Verify remaining elements and length decreased
    console.log([...queue]); // [20, 30, 40];
    console.log(queue.length); // 3;

Queue for...of iteration and isEmpty check

 const queue = new Queue<string>(['A', 'B', 'C', 'D']);

    const elements: string[] = [];
    for (const item of queue) {
      elements.push(item);
    }

    // Verify all elements are iterated in order
    console.log(elements); // ['A', 'B', 'C', 'D'];

    // Process all elements
    while (queue.length > 0) {
      queue.shift();
    }

    console.log(queue.length); // 0;

Queue as message broker for event processing

 interface Message {
      id: string;
      type: 'email' | 'sms' | 'push';
      recipient: string;
      content: string;
      timestamp: Date;
    }

    // Create a message queue for real-time event processing
    const messageQueue = new Queue<Message>([
      {
        id: 'msg-001',
        type: 'email',
        recipient: 'user@example.com',
        content: 'Welcome!',
        timestamp: new Date()
      },
      {
        id: 'msg-002',
        type: 'sms',
        recipient: '+1234567890',
        content: 'OTP: 123456',
        timestamp: new Date()
      },
      {
        id: 'msg-003',
        type: 'push',
        recipient: 'device-token-xyz',
        content: 'New notification',
        timestamp: new Date()
      },
      {
        id: 'msg-004',
        type: 'email',
        recipient: 'admin@example.com',
        content: 'Daily report',
        timestamp: new Date()
      }
    ]);

    // Process messages in FIFO order (first message first)
    const processedMessages: string[] = [];
    while (messageQueue.length > 0) {
      const message = messageQueue.shift();
      if (message) {
        processedMessages.push(`${message.type}:${message.recipient}`);
      }
    }

    // Verify messages were processed in order
    console.log(processedMessages); // [
 //      'email:user@example.com',
 //      'sms:+1234567890',
 //      'push:device-token-xyz',
 //      'email:admin@example.com'
 //    ];

    // Queue should be empty after processing all messages
    console.log(messageQueue.length); // 0;

API docs & Examples

API Docs

Live Examples

Examples Repository

Data Structures

Data StructureUnit TestPerformance TestAPI Docs
QueueQueue

Standard library data structure comparison

Data Structure TypedC++ STLjava.utilPython collections
Queue<E>queue<T>Queue<E>-

Benchmark

queue
test nametime taken (ms)executions per secsample deviation
1,000,000 push39.9025.070.01
1,000,000 push & shift81.7912.230.00

Built-in classic algorithms

AlgorithmFunction DescriptionIteration Type

Software Engineering Design Standards

PrincipleDescription
PracticalityFollows ES6 and ESNext standards, offering unified and considerate optional parameters, and simplifies method names.
ExtensibilityAdheres to OOP (Object-Oriented Programming) principles, allowing inheritance for all data structures.
ModularizationIncludes data structure modularization and independent NPM packages.
EfficiencyAll methods provide time and space complexity, comparable to native JS performance.
MaintainabilityFollows open-source community development standards, complete documentation, continuous integration, and adheres to TDD (Test-Driven Development) patterns.
TestabilityAutomated and customized unit testing, performance testing, and integration testing.
PortabilityPlans for porting to Java, Python, and C++, currently achieved to 80%.
ReusabilityFully decoupled, minimized side effects, and adheres to OOP.
SecurityCarefully designed security for member variables and methods. Read-write separation. Data structure software does not need to consider other security aspects.
ScalabilityData structure software does not involve load issues.

Keywords

queue

FAQs

Package last updated on 08 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts