{"library":"obliterator","title":"Obliterator","description":"Obliterator is a JavaScript/TypeScript library designed to provide higher-order functions for working with iterators and iterable-like values. It offers a suite of utilities for common iterable operations such as chaining multiple iterators, generating combinations and permutations, filtering, mapping, and consuming iterators. A key differentiator is its pragmatic approach to iterables, treating standard sequences like arrays and strings as valid inputs for convenience, even if they aren't strict ES6 iterables. The current stable version is 2.0.5, and it ships with full TypeScript declarations. The library is actively maintained, with the latest update noted in January 2025 on npm, focusing on utility functions for managing data streams and collections.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install obliterator"],"cli":null},"imports":["import { Iterator } from 'obliterator';","import { chain } from 'obliterator';","import { filter } from 'obliterator';","import type { IterableLike } from 'obliterator';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { Iterator, filter, map, chain } from 'obliterator';\n\n// Create an iterator from multiple values\nconst numbers = Iterator.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);\n\n// Filter for even numbers\nconst evenNumbers = filter(numbers, (n: number) => n % 2 === 0);\n\n// Map to their squares\nconst squaredEvenNumbers = map(evenNumbers, (n: number) => n * n);\n\n// Chain with another iterable (e.g., a simple array)\nconst combined = chain(squaredEvenNumbers, [121, 144, 169]);\n\nconsole.log('Processed numbers:');\nfor (const value of combined) {\n  console.log(value);\n}\n\n// Demonstrate combinations - careful with object mutation!\nimport { combinations } from 'obliterator';\nconst arr = ['A', 'B', 'C'];\nconst combos = combinations(arr, 2);\n\nlet firstCombo: string[] = [];\nlet secondCombo: string[] = [];\n\nfirstCombo = Array.from(combos.next().value);\nsecondCombo = Array.from(combos.next().value);\n\nconsole.log('First combination:', firstCombo); // Should be ['A', 'B']\nconsole.log('Second combination:', secondCombo); // Should be ['A', 'C']","lang":"typescript","description":"This quickstart demonstrates creating an iterator, applying filter and map transformations, chaining with other iterables, and highlights a key `combinations` gotcha.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}