Class ObjectPredicate<T>

Type Parameters

  • T extends object = object

Hierarchy

  • Predicate<T>
    • ObjectPredicate

Accessors

Methods

  • Test all the values in the object deeply to match the provided predicate.

    Type Parameters

    • T

    Parameters

    • predicate: Predicate<T>

      The predicate that should be applied against every value in the object.

    Returns ObjectPredicate<T>

  • Test an object to match the shape exactly. This means that will fail if it comes across unexpected properties. The shape comparison is deep.

    The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.

    Example

    import ow from 'ow';

    ow({unicorn: '🦄'}, ow.object.exactShape({
    unicorn: ow.string
    }));

    Type Parameters

    Parameters

    • shape: S

      Shape to test the object against.

    Returns ObjectPredicate<TypeOfShape<S>>

  • Test if the value matches a custom validation function. The validation function should return true if the value passes the function. If the function either returns false or a string, the function fails and the string will be used as error message.

    Parameters

    • validator: ((value: T) => string | boolean)

      Validation function.

        • (value: T): string | boolean
        • Parameters

          • value: T

          Returns string | boolean

    Returns ObjectPredicate<T>

  • Provide a new error message to be thrown when the validation fails.

    Example

    ow('🌈', 'unicorn', ow.string.equals('🦄').message('Expected unicorn, got rainbow'));
    //=> ArgumentError: Expected unicorn, got rainbow

    Example

    ow('🌈', ow.string.minLength(5).message((value, label) => `Expected ${label}, to have a minimum length of 5, got \`${value}\``));
    //=> ArgumentError: Expected string, to be have a minimum length of 5, got `🌈`

    Parameters

    • newMessage: string | ValidatorMessageBuilder<T>

      Either a string containing the new message or a function returning the new message.

    Returns ObjectPredicate<T>

  • Test an object to match the shape partially. This means that it ignores unexpected properties. The shape comparison is deep.

    The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.

    Example

    import ow from 'ow';

    const object = {
    unicorn: '🦄',
    rainbow: '🌈'
    };

    ow(object, ow.object.partialShape({
    unicorn: ow.string
    }));

    Type Parameters

    Parameters

    • shape: S

      Shape to test the object against.

    Returns ObjectPredicate<TypeOfShape<S>>

  • Test if the value matches a custom validation function. The validation function should return an object containing a validator and message. If the validator is false, the validation fails and the message will be used as error message. If the message is a function, the function is invoked with the label as argument to let you further customize the error message.

    Parameters

    • customValidator: CustomValidator<T>

      Custom validation function.

    Returns ObjectPredicate<T>

  • Test all the values in the object to match the provided predicate.

    Type Parameters

    • T

    Parameters

    • predicate: BasePredicate<T>

      The predicate that should be applied against every value in the object.

    Returns ObjectPredicate<T>