validate(validatorName, data) {
    const validator = DATA_VALIDATORS[validatorName];
    let errors = [];

    if (validator) {
      errors = (validator.validate(data) ?? []).map((compiledError) => {
        try {
          return ValidationError.create(compiledError);
        } catch (err) {
          console.log({ compiledError });
          throw err;
        }
      });
    } else {
      console.error(`Unknown validator: ${validatorName}`);
    }

    setTimeout(() => {
      if (errors.length) {
        for (const callback of this.callbacks) {
          callback(errors);
        }
      }
    }, 0);
  }
Perform validation and return errors in a form of an array
@param {keyof typeof DATA_VALIDATORS} validatorName
@param {Object} data