
Introduction
A powerful, fully-typed collections library for TypeScript, combining Laravel's collection elegance with advanced data processing capabilities. Features a fluent API, lazy evaluation, statistical analysis, machine learning operations, and comprehensive data manipulation tools—all with zero dependencies.
Features
- Lightweight & Dependency-free
- Type safe
- Laravel-inspired APIs
Core Operations (Laravel Collection API)
- Standard operations (map, filter, reduce)
- FlatMap and MapSpread operations (flatMap, mapSpread)
- Element access (first, firstOrFail, last, nth)
- Subset operations (take, skip, slice)
- Unique value handling (unique)
- Chunk operations (chunk)
- Tap and Pipe utilities (tap, pipe)
- Collection conversion (toArray, toMap, toSet)
- Collection inspection (count, isEmpty, isNotEmpty)
- Combine and collapse operations (combine, collapse)
- Contains checks (contains, containsOneItem)
- Each iterations (each, eachSpread)
- Only and except operations (only, except)
- Forget and random selection (forget, random)
- Push, prepend, and put operations (push, prepend, put)
- Skip and take variants (skipUntil, skipWhile, takeUntil, takeWhile)
- Sole item retrieval (sole)
- Conditional execution (when, unless)
- Wrap and unwrap operations (wrap, unwrap)
Advanced Array & Object Operations
- GroupBy with multiple key support (groupBy, groupByMultiple)
- Value extraction (pluck)
- Where clause variations
- Basic where operations (where, whereIn, whereNotIn)
- Range checks (whereBetween, whereNotBetween)
- Null handling (whereNull, whereNotNull)
- Pattern matching (whereLike, whereRegex)
- Type checks (whereInstanceOf)
- Comprehensive sorting
- Basic sort operations (sort)
- Key-based sorting (sortBy, sortByDesc)
- Key sorting (sortKeys, sortKeysDesc)
- Pagination & Cursor iteration
- Data partitioning
- Set operations (union, intersect, diff, symmetricDiff)
- Advanced products (cartesianProduct)
- Recursive operations (mergeRecursive, replaceRecursive)
Advanced Transformations
- Group transformations (mapToGroups)
- Array handling (mapSpread, mapWithKeys)
- Conditional mapping (mapUntil, mapOption)
- Data restructuring (transform)
- Type system integration (cast, mapInto)
- Property operations (pick, omit)
- Fuzzy matching algorithms
- Key-value transformations (flip, undot)
Statistical Operations
- Basic statistics
- Advanced statistics
Time Series Analysis
- Series conversion and formatting
- Moving average calculations
- Trend detection and analysis
- Seasonality identification
- Time-based forecasting
- Temporal grouping operations
- Time-based aggregations
- Interval handling
Machine Learning Operations
- Clustering algorithms
- Regression analysis
- Classification tools
- Anomaly detection systems
- Data preparation
Async & Performance Optimization
- Asynchronous operations
- Parallel processing capabilities
- Batch processing systems
- Lazy evaluation strategies
- Caching mechanisms
- Performance tools
Data Validation & Quality
- Validation framework
- Data sanitization tools
- Quality metrics
- Constraint management
- Error handling
- Type enforcement
Text Processing
- String manipulation
- URL slug generation
- Text analysis
- Pattern matching
- String normalization
Serialization & Export
- Multiple format support
- Query generation
- Integration formats
- Custom formatting options
Streaming & I/O
- Stream operations
- Batch streaming
- Memory-efficient processing
- Buffered operations
Advanced Mathematical Operations
- Signal processing
- Calculus operations
- Numerical methods
- Mathematical optimizations
Special Data Types Support
- Geographic calculations
- Financial operations
- DateTime operations
- Complex number support
- Basic operations
- Advanced computations
Versioning & History
- Version management
- Change tracking
- History operations
- Rollback support
- Version comparison
Development Tools
- Development aids
- Analysis tools
- Development modes
- Debug mode
- Strict mode
Utility Features
- System configuration
- Configuration management
- Environment handling
- Internationalization
- Error handling
- Error modes
- Exception handling
- Resource management
- Memory tracking
- Resource cleanup
Available Methods
Please note, all of these methods may be chained to fluently manipulate the underlying data:
Changelog
Please see our releases page for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Stargazers
Community
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
For casual chit-chat with others using this package:
Join the Stacks Discord Server
Credits
Thanks to...
- Laravel Collections for inspiration
- Chris Breuer for the initial implementation
- All Contributors for their contributions to Stacks & ts-collect
License
The MIT License (MIT). Please see LICENSE for more information.
Made with 💙