{"id":45521,"library":"necessary-utils-basic-queue","title":"Necessary Utils Basic Queue","description":"A lightweight TypeScript queue library for internal systems. Version 1.3.5 provides a simple in-memory queue with producer-consumer pattern, automatic or manual message acknowledgment (ACK), and interceptor hooks (WhenAnyMessage, WhenZeroMessage, WhenQueueStopped, WhenQueueStarted, custom). It supports generics for typed messages and is ESM-only with TypeScript types included. No external dependencies. Designed for Node.js environments where a basic queue is needed without heavy infrastructure like Redis or Bull. NPM downloads are low, indicating niche use.","status":"active","version":"1.3.5","language":"javascript","source_language":"en","source_url":"https://github.com/hanifiyildirimdagi/nu-basic-queue","tags":["javascript","Queue","Typescript","NodeJS","typescript"],"install":[{"cmd":"npm install necessary-utils-basic-queue","lang":"bash","label":"npm"},{"cmd":"yarn add necessary-utils-basic-queue","lang":"bash","label":"yarn"},{"cmd":"pnpm add necessary-utils-basic-queue","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Named export only. Default import does not exist.","wrong":"import BasicQueue from 'necessary-utils-basic-queue'","symbol":"BasicQueue","correct":"import { BasicQueue } from 'necessary-utils-basic-queue'"},{"note":"Package is ESM-only; CJS require is not supported.","wrong":"const { BasicQueueMessage } = require('necessary-utils-basic-queue')","symbol":"BasicQueueMessage","correct":"import { BasicQueueMessage } from 'necessary-utils-basic-queue'"},{"note":"TypeScript type for queue configuration. As of v1.3.5, QueueSettings is exported but may not have documentation on its shape.","symbol":"QueueSettings","correct":"import { QueueSettings } from 'necessary-utils-basic-queue'"}],"quickstart":{"code":"import { BasicQueue, BasicQueueMessage } from 'necessary-utils-basic-queue';\n\nclass MyMessage extends BasicQueueMessage {\n  constructor(public text: string) {\n    super();\n  }\n}\n\nconst queue = new BasicQueue<MyMessage>();\n\n// Register consumer with auto-ACK\nqueue.Consume((msg: MyMessage) => {\n  console.log(msg.text);\n}, true);\n\n// Produce message\nqueue.PushMessage(new MyMessage('Hello world!'));","lang":"typescript","description":"Create a typed queue, register a consumer with automatic acknowledgment, and push a message."},"warnings":[{"fix":"Use exact package name: necessary-utils-basic-queue.","message":"Package name 'necessary-utils-basic-queue' is long and might be mistyped as 'necessary-utils-queue'.","severity":"gotcha","affected_versions":"all"},{"fix":"Use only for ephemeral flows. For persistence, integrate with a database or use a library like Bull.","message":"Queue is in-memory only; messages are lost on process exit.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"queue.Consume(callback, autoAck) – note capital letter.","message":"Consumer method signature uses `Consume` (capital C) – not `consume`. Case-sensitive.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Evaluate stability before using in production.","message":"The package has <100 weekly downloads and limited community support.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'1.3.5':14 'ack':32 'acknowledg':31 'automat':27 'basic':3,65 'bull':75 'consum':25 'custom':40 'depend':58 'design':59 'download':77 'environ':62 'esm':50 'esm-on':49 'extern':57 'generic':43 'heavi':70 'hook':35 'in-memori':18 'includ':55 'indic':80 'infrastructur':71 'interceptor':34 'intern':11 'javascript':83 'librari':9 'lightweight':6 'like':72 'low':79 'manual':29 'memori':20 'messag':30,46 'necessari':1 'need':68 'nich':81 'node.js':61 'nodej':86 'npm':76 'pattern':26 'produc':24 'producer-consum':23 'provid':15 'queue':4,8,21,66,84 'redi':73 'simpl':17 'support':42 'system':12 'type':45,54 'typescript':7,53,85,87 'use':82 'util':2 'version':13 'whenanymessag':36 'whenqueuestart':39 'whenqueuestop':38 'whenzeromessag':37 'without':69","created_at":"2026-06-07T12:55:25.274402+00:00","updated_at":"2026-06-07T12:55:25.274402+00:00","problems":[{"fix":"Run 'npm install necessary-utils-basic-queue' and verify import: import { BasicQueue } from 'necessary-utils-basic-queue'.","cause":"Package not installed or import path incorrect.","error":"Cannot find module 'necessary-utils-basic-queue'"},{"fix":"Add '\"type\": \"module\"' to your package.json, or use .mjs extension for imports.","cause":"Node.js not configured for ESM (no 'type':'module' in package.json or .mjs extension).","error":"SyntaxError: Cannot use import statement outside a module"},{"fix":"Use correct named import: import { BasicQueueMessage } from 'necessary-utils-basic-queue'.","cause":"Import of BasicQueueMessage as default instead of named import.","error":"TypeError: BasicQueueMessage is not a constructor"}],"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/hanifiyildirimdagi/nu-basic-queue#readme","github":"https://github.com/hanifiyildirimdagi/nu-basic-queue","docs":null,"changelog":null,"pypi":null,"npm":"necessary-utils-basic-queue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"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}}