{"id":46628,"library":"tiny-linked-queue","title":"tiny-linked-queue","description":"A lightweight, TypeScript-friendly queue implementation using a linked list, providing O(1) enqueue and dequeue operations. Compared to native arrays, it avoids the O(n) cost of Array.shift, making it ideal for high-throughput FIFO use cases. v1.0.3 is the current stable release. Ships TypeScript declarations and supports both ESM and CommonJS via conditional exports. Minimal API surface (enqueue, dequeue, clear, size, isEmpty, head, tail) with no dependencies. Bundle size gzipped < 1KB.","status":"active","version":"1.0.3","language":"javascript","source_language":"en","source_url":"https://github.com/jinghua000/tiny-linked-queue","tags":["javascript","queue","linked-list","tiny","typescript"],"install":[{"cmd":"npm install tiny-linked-queue","lang":"bash","label":"npm"},{"cmd":"yarn add tiny-linked-queue","lang":"bash","label":"yarn"},{"cmd":"pnpm add tiny-linked-queue","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Default import works in ESM and TypeScript; require still works in CommonJS.","wrong":"const Queue = require('tiny-linked-queue');","symbol":"Queue","correct":"import Queue from 'tiny-linked-queue';"},{"note":"For TypeScript type-only imports when you only need the type.","symbol":"Queue (as type)","correct":"import type Queue from 'tiny-linked-queue';"},{"note":"Default export is not a namespace; this will cause a runtime error. Use default import instead.","wrong":"import * as q from 'tiny-linked-queue';","symbol":"Queue (namespace import)"}],"quickstart":{"code":"import Queue from 'tiny-linked-queue';\n\nconst q = new Queue<number>();\n\nq.enqueue(1);\nq.enqueue(2);\nq.enqueue(3);\n\nconsole.log(q.size); // 3\nconsole.log(q.head); // 1\nconsole.log(q.tail); // 3\n\nconst first = q.dequeue(); // 1\nconsole.log(first);\nconsole.log(q.size); // 2\nconsole.log(q.isEmpty); // false\n\nq.clear();\nconsole.log(q.isEmpty); // true","lang":"typescript","description":"Creates a queue, enqueues elements, checks properties, dequeues, and clears. Demonstrates generic typing and all main methods."},"warnings":[{"fix":"Update import to use default import: import Queue from 'tiny-linked-queue'","message":"Export changed from CommonJS module.exports to named export Queue in version 1.0.0. Prior versions used a different export pattern.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Treat head and tail as read-only. Do not mutate returned values.","message":"The property names 'head' and 'tail' expose internal linked-list nodes directly. Modifying these objects may break queue integrity.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Always check isEmpty before calling dequeue, or handle undefined returns explicitly.","message":"Calling dequeue on an empty queue returns undefined, not throwing an error. This may hide bugs if not checking isEmpty first.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Do not pass arguments to new Queue().","message":"The constructor currently accepts no arguments. Passing arguments will be silently ignored, but future versions may throw.","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1':18 '1kb':79 'api':64 'array':26 'array.shift':34 'avoid':28 'bundl':76 'case':44 'clear':68 'commonj':59 'compar':23 'condit':61 'cost':32 'current':48 'declar':53 'depend':75 'dequeu':21,67 'enqueu':19,66 'esm':57 'export':62 'fifo':42 'friend':9 'gzip':78 'head':71 'high':40 'high-throughput':39 'ideal':37 'implement':11 'isempti':70 'javascript':80 'lightweight':6 'link':3,14,83 'linked-list':82 'list':15,84 'make':35 'minim':63 'n':31 'nativ':25 'o':17,30 'oper':22 'provid':16 'queue':4,10,81 'releas':50 'ship':51 'size':69,77 'stabl':49 'support':55 'surfac':65 'tail':72 'throughput':41 'tini':2,85 'tiny-linked-queu':1 'typescript':8,52,86 'typescript-friend':7 'use':12,43 'v1.0.3':45 'via':60","created_at":"2026-06-07T13:00:51.077905+00:00","updated_at":"2026-06-07T13:00:51.077905+00:00","problems":[{"fix":"Use import Queue from 'tiny-linked-queue' instead of import { Queue } from 'tiny-linked-queue'.","cause":"Using named import instead of default import in CommonJS/ESM.","error":"TypeError: Queue is not a constructor"},{"fix":"Use import Queue from 'tiny-linked-queue' to get the class constructor.","cause":"Import resolved to undefined due to incorrect import syntax (e.g., import * as Q from 'tiny-linked-queue').","error":"Cannot read properties of undefined (reading 'enqueue')"},{"fix":"Upgrade TypeScript to >=3.8 or set useDefineForClassFields: true in tsconfig.json.","cause":"TypeScript version older than 3.8 or missing 'useDefineForClassFields' may cause property access issues.","error":"Property 'size' does not exist on type 'Queue<unknown>'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/jinghua000/tiny-linked-queue#readme","github":"https://github.com/jinghua000/tiny-linked-queue","docs":null,"changelog":null,"pypi":null,"npm":"tiny-linked-queue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}