UNPKG

@rjsf/utils

Version:
61 lines (60 loc) 3.79 kB
import { ErrorSchema } from './types.js'; /** The `ErrorSchemaBuilder<T>` is used to build an `ErrorSchema<T>` since the definition of the `ErrorSchema` type is * designed for reading information rather than writing it. Use this class to add, replace or clear errors in an error * schema by using either dotted path or an array of path names. Once you are done building the `ErrorSchema`, you can * get the result and/or reset all the errors back to an initial set and start again. */ export default class ErrorSchemaBuilder<T = any> { /** The error schema being built * * @private */ private errorSchema; /** Construct an `ErrorSchemaBuilder` with an optional initial set of errors in an `ErrorSchema`. * * @param [initialSchema] - The optional set of initial errors, that will be cloned into the class */ constructor(initialSchema?: ErrorSchema<T>); /** Returns the `ErrorSchema` that has been updated by the methods of the `ErrorSchemaBuilder` */ get ErrorSchema(): ErrorSchema<T>; /** Will get an existing `ErrorSchema` at the specified `pathOfError` or create and return one. * * @param [pathOfError] - The optional path into the `ErrorSchema` at which to add the error(s) * @returns - The error block for the given `pathOfError` or the root if not provided * @private */ private getOrCreateErrorBlock; /** Resets all errors in the `ErrorSchemaBuilder` back to the `initialSchema` if provided, otherwise an empty set. * * @param [initialSchema] - The optional set of initial errors, that will be cloned into the class * @returns - The `ErrorSchemaBuilder` object for chaining purposes */ resetAllErrors(initialSchema?: ErrorSchema<T>): this; /** Adds the `errorOrList` to the list of errors in the `ErrorSchema` at either the root level or the location within * the schema described by the `pathOfError`. For more information about how to specify the path see the * [eslint lodash plugin docs](https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/path-style.md). * * @param errorOrList - The error or list of errors to add into the `ErrorSchema` * @param [pathOfError] - The optional path into the `ErrorSchema` at which to add the error(s) * @returns - The `ErrorSchemaBuilder` object for chaining purposes */ addErrors(errorOrList: string | string[], pathOfError?: string | (string | number)[]): this; /** Sets/replaces the `errorOrList` as the error(s) in the `ErrorSchema` at either the root level or the location * within the schema described by the `pathOfError`. For more information about how to specify the path see the * [eslint lodash plugin docs](https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/path-style.md). * * @param errorOrList - The error or list of errors to set into the `ErrorSchema` * @param [pathOfError] - The optional path into the `ErrorSchema` at which to set the error(s) * @returns - The `ErrorSchemaBuilder` object for chaining purposes */ setErrors(errorOrList: string | string[], pathOfError?: string | (string | number)[]): this; /** Clears the error(s) in the `ErrorSchema` at either the root level or the location within the schema described by * the `pathOfError`. For more information about how to specify the path see the * [eslint lodash plugin docs](https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/path-style.md). * * @param [pathOfError] - The optional path into the `ErrorSchema` at which to clear the error(s) * @returns - The `ErrorSchemaBuilder` object for chaining purposes */ clearErrors(pathOfError?: string | (string | number)[]): this; }