{"id":44177,"library":"SimpleQueue","title":"SimpleQueue","description":"A simple, typed FIFO queue for Node.js that guarantees in-order delivery of processed items. Version 2.0.0 is the current stable release with a maintenance cadence. Unlike many FIFO queues that destroy order during parallel processing, SimpleQueue preserves original element order when using callbacks. Ships TypeScript definitions. Requires Node.js >=20.19.0.","status":"active","version":"2.0.0","language":"javascript","source_language":"en","source_url":"git://github.com/fb55/simplequeue","tags":["javascript","typescript"],"install":[{"cmd":"npm install SimpleQueue","lang":"bash","label":"npm"},{"cmd":"yarn add SimpleQueue","lang":"bash","label":"yarn"},{"cmd":"pnpm add SimpleQueue","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Package is ESM-only since v2. Using require() will throw.","wrong":"const SimpleQueue = require('SimpleQueue')","symbol":"SimpleQueue","correct":"import SimpleQueue from 'SimpleQueue'"},{"note":"Default export is not named; avoid confusion with named export.","wrong":"import SimpleQueue from 'SimpleQueue'","symbol":"SimpleQueue","correct":"import { SimpleQueue } from 'SimpleQueue'"},{"note":"Dynamic import must destructure the named export.","wrong":"const SimpleQueue = await import('SimpleQueue')","symbol":"SimpleQueue","correct":"const { SimpleQueue } = await import('SimpleQueue')"}],"quickstart":{"code":"import SimpleQueue from 'SimpleQueue';\n\nconst queue = new SimpleQueue(\n  (element: number, callback: (err: Error | null, result: string) => void) => {\n    setTimeout(() => callback(null, `Processed ${element}`), element);\n  },\n  (err, result, element) => {\n    console.log(result);\n  },\n  () => {\n    console.log('All done');\n  },\n  3, // concurrency\n);\n\nqueue.push(100);\nqueue.push(50);\nqueue.push(200);","lang":"typescript","description":"Creates a SimpleQueue to process items in FIFO order, logging 'Processed X' for each element and 'All done' when queue empties."},"warnings":[{"fix":"Use import SimpleQueue from 'SimpleQueue' or dynamic import.","message":"In v2.0.0, the package switched to ESM-only. Code using require('SimpleQueue') will fail with ERR_REQUIRE_ESM.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"If you relied on the old default of 10, explicitly pass 10 as the concurrent argument.","message":"In v2.0.0, the constructor's concurrent parameter default was changed from 10 to 20.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Always call callback(null, result) on success, and callback(error, undefined) on failure.","message":"The worker callback (error, result) expects the first argument to be an Error | null. Passing a non-null error will cause the queue to abort and call the done callback immediately.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use the pause/resume and abort properly to manage termination.","message":"The done callback is called only once when the queue becomes empty. If the queue is aborted or never started, done may not be called.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'2.0.0':19 '20.19.0':52 'cadenc':28 'callback':46 'current':22 'definit':49 'deliveri':14 'destroy':34 'element':42 'fifo':5,31 'guarante':10 'in-ord':11 'item':17 'javascript':53 'mainten':27 'mani':30 'node.js':8,51 'order':13,35,43 'origin':41 'parallel':37 'preserv':40 'process':16,38 'queue':6,32 'releas':24 'requir':50 'ship':47 'simpl':3 'simplequeu':1,39 'stabl':23 'type':4 'typescript':48,54 'unlik':29 'use':45 'version':18","created_at":"2026-06-07T12:48:51.192263+00:00","updated_at":"2026-06-07T12:48:51.192263+00:00","problems":[{"fix":"Change to import SimpleQueue from 'SimpleQueue'","cause":"Using require() on an ESM-only package (v2+).","error":"ERR_REQUIRE_ESM: require() of ES Module not supported"},{"fix":"Use import SimpleQueue from 'SimpleQueue' (default export) instead of import { SimpleQueue } from 'SimpleQueue'","cause":"Importing a named export as default when default is also available.","error":"TypeError: SimpleQueue 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/fb55/simplequeue#readme","github":"git://github.com/fb55/simplequeue","docs":null,"changelog":null,"pypi":null,"npm":"SimpleQueue","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}}