Conversation
…, and throttle - update generic types for better type safety - simplify return types in memoize and throttle functions
There was a problem hiding this comment.
Pull request overview
This PR prepares the codebase for “alpha 13” by tightening TypeScript generics (replacing any with unknown in a few APIs) and simplifying the exposed return types for function helpers like memoize, throttle, and debounce.
Changes:
- Strengthen typing in
combineLatestanddeepCompareby replacinganywithunknown-based generics/casts. - Simplify function helper typings for
memoize,throttle, anddebounceto use explicit argument/return generics. - Update devcontainer feature set by enabling previously-disabled mount-related features.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| helpers/promise/parallel.ts | Changes results array initialization while preserving ordered assignment behavior. |
| helpers/observable/combineLatest.ts | Tightens types from any → unknown and adjusts runtime filtering logic/typing. |
| helpers/object/deepCompare.ts | Replaces any casts with Record<string, unknown> for safer property access typing. |
| helpers/function/throttle.ts | Refactors generics to explicit args/return type parameters. |
| helpers/function/memoize.ts | Refactors generics and simplifies the returned function type (removes as T). |
| helpers/function/debounce.ts | Refactors generics to explicit args/return type parameters. |
| .devcontainer/devcontainer.json | Enables mount-related devcontainer features that were previously commented out. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- add llms.txt to category and bundle package.json - implement buildLlmsTxt function to create llms.txt files
- implement uuid7 for generating sortable UUIDs - add tests for uuid7 functionality - update native-alternatives.json with uuid7 references
❌ PR Validation Failed
📋 Pipeline Status
📊 Code Coverage
🧬 Mutation Testing
🌐 Runtime Compatibility
⏱️ Benchmarks
ℹ️ About this report
🤖 Generated by @helpers4 CI • 2026-04-17 |
test(object): ✅ add mutation-killing tests for deepCompare test(object): ✅ add mutation-killing tests for deepMerge test(object): ✅ add mutation-killing tests for get test(object): ✅ add mutation-killing tests for set test(observable): ✅ add mutation-killing tests for combineLatest test(promise): ✅ add mutation-killing tests for meaningPromiseOrThrow test(promise): ✅ add mutation-killing tests for retry test(string): ✅ add mutation-killing tests for capitalize test(string): ✅ add mutation-killing tests for errorToReadableMessage test(string): ✅ add mutation-killing tests for slugify test(type): ✅ add mutation-killing tests for isEmpty test(type): ✅ add mutation-killing tests for isSpecialObject test(url): ✅ add mutation-killing tests for extractPureURI test(version): ✅ add mutation-killing tests for compare test(version): ✅ add mutation-killing tests for increment test(version): ✅ add mutation-killing tests for parse test(version): ✅ add mutation-killing tests for satisfiesRange
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 54 out of 55 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
refactor(array): ♻️ improve ensureArray function and documentation
- Add fast-check 4.6.0 as devDependency - Add 105 .spec.ts files (one per function) across all 12 categories - Each spec file covers property-based invariants (fast-check) and contract/boundary inputs - Update AGENTS.md: add .spec.ts to file structure, fast-check to tech stack - Update CONTRIBUTING.md: add Step 2b documenting the .spec.ts convention - Update README.md: mention property-based testing alongside mutation testing
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 163 out of 164 changed files in this pull request and generated 4 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
fix(date): 🐛 update daysDifference test for leap year scenario fix(function): 🐛 fix typo in returnOrThrowError test message refactor(observable): ♻️ use isDefined for filtering in combineLatest
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 163 out of 164 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- change type from 'any' to 'unknown' in sorting functions - reorder import statements for consistency
Description
Please include a summary of what this PR does and why it's needed.
Type of Change
Related Issues
Closes #(issue number)
How Has This Been Tested?
Describe the tests you ran and how to reproduce them:
Checklist
Screenshots (if applicable)
Add screenshots for UI changes.
Additional Context
Add any other context about the PR here.