A set of constants for the built-in violations in a Slate schema.
npx @tessl/cli install tessl/npm-slate-schema-violations@0.1.0Slate Schema Violations provides a comprehensive set of named string constants for schema validation violations in the Slate rich text editor framework. These constants represent different types of validation errors that can occur when validating document structure against a Slate schema.
npm install slate-schema-violationsimport {
CHILD_REQUIRED,
NODE_TYPE_INVALID,
PARENT_OBJECT_INVALID
} from "slate-schema-violations";For importing all constants:
import * as violations from "slate-schema-violations";CommonJS:
const {
CHILD_REQUIRED,
NODE_TYPE_INVALID,
PARENT_OBJECT_INVALID
} = require("slate-schema-violations");import { CHILD_REQUIRED, NODE_TYPE_INVALID } from "slate-schema-violations";
// Use in schema validation logic
function validateNode(node, schema) {
if (!node.type) {
throw new Error(NODE_TYPE_INVALID);
}
if (schema.children && !node.children) {
throw new Error(CHILD_REQUIRED);
}
// Additional validation logic...
}
// Use in error handling
function handleValidationError(error) {
switch (error.code) {
case CHILD_REQUIRED:
return "Required child node is missing";
case NODE_TYPE_INVALID:
return "Node type is invalid";
default:
return "Unknown validation error";
}
}Constants for validating child node relationships and structure.
const CHILD_OBJECT_INVALID = 'child_object_invalid';
const CHILD_REQUIRED = 'child_required';
const CHILD_TYPE_INVALID = 'child_type_invalid';
const CHILD_UNKNOWN = 'child_unknown';Constants for validating specific positional child nodes.
const FIRST_CHILD_OBJECT_INVALID = 'first_child_object_invalid';
const FIRST_CHILD_TYPE_INVALID = 'first_child_type_invalid';
const LAST_CHILD_OBJECT_INVALID = 'last_child_object_invalid';
const LAST_CHILD_TYPE_INVALID = 'last_child_type_invalid';Constants for validating sibling node relationships.
const NEXT_SIBLING_OBJECT_INVALID = 'next_sibling_object_invalid';
const NEXT_SIBLING_TYPE_INVALID = 'next_sibling_type_invalid';
const PREVIOUS_SIBLING_OBJECT_INVALID = 'previous_sibling_object_invalid';
const PREVIOUS_SIBLING_TYPE_INVALID = 'previous_sibling_type_invalid';Constants for validating individual node properties and structure.
const NODE_DATA_INVALID = 'node_data_invalid';
const NODE_IS_VOID_INVALID = 'node_is_void_invalid';
const NODE_MARK_INVALID = 'node_mark_invalid';
const NODE_OBJECT_INVALID = 'node_object_invalid';
const NODE_TEXT_INVALID = 'node_text_invalid';
const NODE_TYPE_INVALID = 'node_type_invalid';Constants for validating parent-child relationships.
const PARENT_OBJECT_INVALID = 'parent_object_invalid';
const PARENT_TYPE_INVALID = 'parent_type_invalid';Complete list of all exported constants:
// Child validation
export const CHILD_OBJECT_INVALID = 'child_object_invalid';
export const CHILD_REQUIRED = 'child_required';
export const CHILD_TYPE_INVALID = 'child_type_invalid';
export const CHILD_UNKNOWN = 'child_unknown';
// First/Last child validation
export const FIRST_CHILD_OBJECT_INVALID = 'first_child_object_invalid';
export const FIRST_CHILD_TYPE_INVALID = 'first_child_type_invalid';
export const LAST_CHILD_OBJECT_INVALID = 'last_child_object_invalid';
export const LAST_CHILD_TYPE_INVALID = 'last_child_type_invalid';
// Sibling validation
export const NEXT_SIBLING_OBJECT_INVALID = 'next_sibling_object_invalid';
export const NEXT_SIBLING_TYPE_INVALID = 'next_sibling_type_invalid';
export const PREVIOUS_SIBLING_OBJECT_INVALID = 'previous_sibling_object_invalid';
export const PREVIOUS_SIBLING_TYPE_INVALID = 'previous_sibling_type_invalid';
// Node property validation
export const NODE_DATA_INVALID = 'node_data_invalid';
export const NODE_IS_VOID_INVALID = 'node_is_void_invalid';
export const NODE_MARK_INVALID = 'node_mark_invalid';
export const NODE_OBJECT_INVALID = 'node_object_invalid';
export const NODE_TEXT_INVALID = 'node_text_invalid';
export const NODE_TYPE_INVALID = 'node_type_invalid';
// Parent validation
export const PARENT_OBJECT_INVALID = 'parent_object_invalid';
export const PARENT_TYPE_INVALID = 'parent_type_invalid';