Skip to content

chore: update packages#2

Merged
Oluwasetemi merged 8 commits into
mainfrom
update/packages
Mar 9, 2026
Merged

chore: update packages#2
Oluwasetemi merged 8 commits into
mainfrom
update/packages

Conversation

@Oluwasetemi
Copy link
Copy Markdown
Owner

@Oluwasetemi Oluwasetemi commented Mar 9, 2026

Update npm global packages and project dependencies using pnpm upgrade and taze.

Co-Authored-By: Oz oz-agent@warp.dev

Summary by CodeRabbit

  • Chores
    • Updated package manager, project version, and development dependencies for improved tooling and stability.
  • New Features
    • Added several new utility APIs for object handling and promise/control flows to simplify async coordination and object operations.
  • Tests
    • Expanded test coverage across array, object, promise, time, and utility suites; added many edge-case and behavior tests.
  • Config
    • Adjusted test coverage settings to exclude specific type definitions.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 9, 2026

Warning

Rate limit exceeded

@Oluwasetemi has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 11 minutes and 15 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f883c1cb-f7e7-4d23-8032-8159328bb948

📥 Commits

Reviewing files that changed from the base of the PR and between a0e1e37 and 9fe04d5.

📒 Files selected for processing (2)
  • src/object.test.ts
  • src/p.test.ts
📝 Walkthrough

Walkthrough

Adds new tests across multiple modules, introduces several new object and promise utilities (objectPick/objectOmit/clearUndefined/hasOwnProperty/isKeyOf/objectKeys/objectEntries and createPromiseLock/createControlledPromise plus a reset-capable createSingletonPromise), and bumps package metadata and devDependency versions.

Changes

Cohort / File(s) Summary
Package / Config
package.json, vitest.config.ts
Bumped project version and packageManager to pnpm@10.31.0; updated multiple devDependencies (eslint, vitest, vite, typescript, etc.). Added src/types.ts to vitest coverage exclude.
Array tests
src/array.test.ts
Added many test cases for array utilities: mergeArrayable, uniqueBy, last, remove, at, range (including step 0 and negative), move, clampArrayRange, sample, and shuffle.
Object utilities & tests
src/object.test.ts, src/object.ts
Added tests and new exports: clearUndefined, hasOwnProperty, isKeyOf, objectKeys, objectEntries, objectPick, objectOmit. Existing deepMerge* exports unchanged.
Promise utilities & tests
src/p.test.ts, src/promise.test.ts, src/promise.ts
Added tests and new/changed public APIs: createPromiseLock() (run/wait/isWaiting/clear), createControlledPromise<T>() (external resolve/reject thenable), and modified createSingletonPromise<T> to return a callable with reset(): Promise<void>. Also added tests for sleep, createSingletonPromise reset behavior, and controlled promises.
Time tests
src/time.test.ts
Expanded formatRelative and formatRelativeTo test coverage (yesterday/tomorrow, days/weeks/months/years), plus added clampDateTime and clampTime boundary cases.

Sequence Diagram(s)

sequenceDiagram
    participant Caller
    participant PromiseLock
    participant Task

    Caller->>PromiseLock: run(task)
    PromiseLock->>Task: start task
    Task-->>PromiseLock: resolve/result
    PromiseLock-->>Caller: returns task result
    Caller->>PromiseLock: wait()  -- waits while isWaiting true
    PromiseLock->>Caller: wait resolved when no running tasks
    Caller->>PromiseLock: clear()  -- clears pending state
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • Add JS DOC #1: Adds objectOmit and related object utilities in src/object.ts, directly overlapping with the object utility additions in this PR.

Poem

🐰
I hopped through tests both near and far,
Added picks, locks, and a promise-star.
Dependencies nudged up to the light—
Code hums softly into the night. ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'chore: update packages' is vague and generic, using non-descriptive language that doesn't convey meaningful information about the actual changes beyond a generic package update. Consider a more specific title that highlights key changes, such as 'chore: bump dependencies and add utility tests' or 'chore: update packages and extend test coverage for utilities'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update/packages

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
package.json (1)

50-50: Consider aligning @types/node version with actual Node.js version in use.

The project specifies "engines": { "node": ">=20" } but uses @types/node@^25.3.5. The @types/node major version should match your environment's Node.js major version.

If developers are running Node.js 20, 22, or 24 (rather than 25), they may encounter type definitions for APIs not available in their runtime. This typically doesn't cause runtime issues but could lead to confusion during development.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` at line 50, The `@types/node` devDependency semantic major
(currently "@types/node": "^25.3.5") does not match the project's declared Node
engine ("engines": { "node": ">=20" }); either align the types to your runtime
by changing the "@types/node" entry in package.json to the matching major (for
example set it to a 20.x range like "^20.0.0" if the team runs Node 20) or
update the engines field to require Node 25+ if you intentionally need
`@types/node`@25; after updating package.json run your package manager to refresh
lockfile (npm/yarn/pnpm) so the installed types match the declared version.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@package.json`:
- Line 54: The upgraded "eslint": "^10.0.3" in package.json conflicts with the
peerDependency of `@setemiojo/eslint-config` (which requires eslint@^9.10.0);
revert the eslint entry in package.json back to a 9.x range (e.g., "eslint":
"^9.10.0") so peer deps are satisfied, update the lockfile (npm install or yarn
install) to reflect the change, and run lint/tests; alternatively, if you prefer
to wait for an upstream fix, leave package.json unchanged and add a brief PR
note explaining that eslint must stay at ^9.x until `@setemiojo/eslint-config`
releases ESLint 10 support.

---

Nitpick comments:
In `@package.json`:
- Line 50: The `@types/node` devDependency semantic major (currently
"@types/node": "^25.3.5") does not match the project's declared Node engine
("engines": { "node": ">=20" }); either align the types to your runtime by
changing the "@types/node" entry in package.json to the matching major (for
example set it to a 20.x range like "^20.0.0" if the team runs Node 20) or
update the engines field to require Node 25+ if you intentionally need
`@types/node`@25; after updating package.json run your package manager to refresh
lockfile (npm/yarn/pnpm) so the installed types match the declared version.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9201350f-5528-47bb-9d02-4dab1b340a18

📥 Commits

Reviewing files that changed from the base of the PR and between 56c15c5 and 209609c.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • package.json

Comment thread package.json Outdated
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 9, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.71%. Comparing base (56c15c5) to head (9fe04d5).

Additional details and impacted files
@@             Coverage Diff             @@
##             main       #2       +/-   ##
===========================================
+ Coverage   85.13%   98.71%   +13.58%     
===========================================
  Files          14       13        -1     
  Lines         888      623      -265     
  Branches      269      117      -152     
===========================================
- Hits          756      615      -141     
+ Misses        132        8      -124     
Flag Coverage Δ
unittests 98.71% <ø> (+13.58%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Oluwasetemi Oluwasetemi merged commit 35ba0c3 into main Mar 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants