Sanity Library Reference Docs
    Preparing search index...

    Interface Rule

    interface Rule {
        valueOfField: (path: string | string[]) => FieldReference;
        all(children: Rule[]): Rule;
        assetRequired(): Rule;
        clone(): Rule;
        cloneWithRules(rules: RuleSpec[]): Rule;
        custom<T = unknown>(
            fn: CustomValidator<T>,
            options?: { bypassConcurrencyLimit?: boolean },
        ): Rule;
        either(children: Rule[]): Rule;
        email(): Rule;
        error(message?: string | LocalizedValidationMessages): Rule;
        fields(rules: FieldRules): Rule;
        greaterThan(num: number | FieldReference): Rule;
        info(message?: string | LocalizedValidationMessages): Rule;
        integer(): Rule;
        isRequired(): boolean;
        length(len: number | FieldReference): Rule;
        lessThan(num: number | FieldReference): Rule;
        lowercase(): Rule;
        max(len: string | number | FieldReference): Rule;
        media<
            T extends
                "sanity.fileAsset"
                | "sanity.imageAsset"
                | "sanity.videoAsset" =
                | "sanity.fileAsset"
                | "sanity.imageAsset"
                | "sanity.videoAsset",
        >(
            fn: MediaValidator<T>,
        ): Rule;
        merge(rule: Rule): Rule;
        min(len: string | number | FieldReference): Rule;
        negative(): Rule;
        optional(): Rule;
        positive(): Rule;
        precision(limit: number | FieldReference): Rule;
        reference(): Rule;
        regex(
            pattern: RegExp,
            name: string,
            options: { invert?: boolean; name?: string },
        ): Rule;
        regex(pattern: RegExp, options: { invert?: boolean; name?: string }): Rule;
        regex(pattern: RegExp, name: string): Rule;
        regex(pattern: RegExp): Rule;
        required(): Rule;
        reset(): this;
        type(
            targetType:
                | "string"
                | "number"
                | "boolean"
                | "object"
                | "date"
                | "array"
                | RuleTypeConstraint,
        ): Rule;
        unique(): Rule;
        uppercase(): Rule;
        uri(options?: UriValidationOptions): Rule;
        valid(value: unknown): Rule;
        validate(
            value: unknown,
            options: ValidationContext & {},
        ): Promise<ValidationMarker[]>;
        warning(message?: string | LocalizedValidationMessages): Rule;
    }
    Index

    Properties

    valueOfField: (path: string | string[]) => FieldReference

    Takes in a path and returns an object with a symbol.

    When the validation lib sees this symbol, it will use the provided path to get a value from the current field's parent and use that value as the input to the Rule.

    The path that's given is forwarded to lodash/get

    fields: [
    // ...
    {
    // ...
    name: 'highestTemperature',
    type: 'number',
    validation: (Rule) => Rule.positive().min(Rule.valueOfField('lowestTemperature')),
    // ...
    },
    ]

    Methods

    • Parameters

      Returns Rule

    • Returns Rule

    • Returns Rule

    • Parameters

      Returns Rule

    • Type Parameters

      • T = unknown

      Parameters

      Returns Rule

    • Parameters

      Returns Rule

    • Returns Rule

    • Returns Rule

    • Returns boolean

    • Returns Rule

    • Type Parameters

      • T extends "sanity.fileAsset" | "sanity.imageAsset" | "sanity.videoAsset" = "sanity.fileAsset" | "sanity.imageAsset" | "sanity.videoAsset"

      Parameters

      Returns Rule

    • Parameters

      Returns Rule

    • Returns Rule

    • Returns Rule

    • Returns Rule

    • Returns Rule

    • Parameters

      • pattern: RegExp
      • name: string
      • options: { invert?: boolean; name?: string }

      Returns Rule

    • Parameters

      • pattern: RegExp
      • options: { invert?: boolean; name?: string }

      Returns Rule

    • Parameters

      • pattern: RegExp
      • name: string

      Returns Rule

    • Parameters

      • pattern: RegExp

      Returns Rule

    • Returns Rule

    • Returns this

    • Parameters

      • targetType:
            | "string"
            | "number"
            | "boolean"
            | "object"
            | "date"
            | "array"
            | RuleTypeConstraint

      Returns Rule

    • Returns Rule

    • Returns Rule

    • Parameters

      • value: unknown

      Returns Rule