Skip to content

Add AnyOf assert#276

Open
josecarlosbrandao wants to merge 1 commit intofeature/add-one-of-assertfrom
feature/add-any-of-assert
Open

Add AnyOf assert#276
josecarlosbrandao wants to merge 1 commit intofeature/add-one-of-assertfrom
feature/add-any-of-assert

Conversation

@josecarlosbrandao
Copy link

@josecarlosbrandao josecarlosbrandao commented Feb 12, 2026

Add new assert to allow any of constraints (1 or more matches)

Added this here because https://github.com/uphold/paypal-client/pull/60 required this type of validation to have more readable code

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new AnyOf assert to validator.js-asserts to allow validating that a value matches at least one of multiple constraint sets (similar to existing OneOf, but allowing multiple matches).

Changes:

  • Introduced AnyOf assert implementation that short-circuits on first matching constraint set and aggregates violations otherwise.
  • Exported AnyOf from the library entrypoint and updated the exported-asserts ordering/count test.
  • Added TypeScript typings and a dedicated test suite for AnyOf.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
test/index.test.js Updates exported asserts count and expected ordering to include AnyOf.
test/asserts/any-of-assert.test.js Adds comprehensive tests for AnyOf behavior and violation reporting.
src/types/index.d.ts Adds TS typing for anyOf(...constraintSets) on the asserts interface.
src/index.js Exports the new AnyOf assert in stable alphabetical order.
src/asserts/any-of-assert.js Implements the new AnyOf assert using validator.validate with deepRequired.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

1 participant