Hyperlinkv0.8.0-beta.28

Schema

Schema.isUniquefunctioneffect/Schema.ts:8435
<T>(annotations?: Annotations.Filter): SchemaAST.Filter<ReadonlyArray<T>>

Validates that all items in an array are unique according to Effect equality.

Details

JSON Schema: This check corresponds to the uniqueItems: true constraint in JSON Schema.

Arbitrary: When generating test data with fast-check, this applies a node-local unique: true constraint. Array generators translate it to fast-check uniqueArray using Effect equality.

Array checks
Source effect/Schema.ts:843518 lines
export function isUnique<T>(annotations?: Annotations.Filter) {
  const equivalence = Equal.asEquivalence<T>()
  return makeFilter<ReadonlyArray<T>>(
    (input) => Arr.dedupeWith(input, equivalence).length === input.length,
    {
      expected: "an array with unique items",
      meta: {
        _tag: "isUnique"
      },
      arbitrary: {
        constraint: {
          unique: true
        }
      },
      ...annotations
    }
  )
}
Referenced by 2 symbols