loro-mirror
Version:
Type-safe state management synchronized with Loro CRDT via a declarative schema and bidirectional mirroring.
48 lines • 2.13 kB
TypeScript
/**
* Validators for schema definitions
*/
import { ContainerSchemaType, InferType, LoroListSchema, LoroMapSchema, LoroMovableListSchema, LoroTextSchemaType, LoroTreeSchema, RootSchemaType, SchemaType } from "./types";
/**
* Type guard for LoroMapSchema
*/
export declare function isLoroMapSchema<T extends Record<string, SchemaType>>(schema: SchemaType): schema is LoroMapSchema<T>;
/**
* Type guard for LoroListSchema
*/
export declare function isLoroListSchema<T extends SchemaType>(schema: SchemaType): schema is LoroListSchema<T>;
export declare function isListLikeSchema<T extends SchemaType>(schema: SchemaType): schema is LoroListSchema<T> | LoroMovableListSchema<T>;
export declare function isLoroMovableListSchema<T extends SchemaType>(schema: SchemaType): schema is LoroMovableListSchema<T>;
/**
* Type guard for RootSchemaType
*/
export declare function isRootSchemaType<T extends Record<string, ContainerSchemaType>>(schema: SchemaType): schema is RootSchemaType<T>;
/**
* Type guard for LoroTextSchemaType
*/
export declare function isLoroTextSchema(schema: SchemaType): schema is LoroTextSchemaType;
/**
* Type guard for LoroTreeSchema
*/
export declare function isLoroTreeSchema<T extends Record<string, SchemaType>>(schema: SchemaType): schema is LoroTreeSchema<T>;
/**
* Check if a schema is for a Loro container
*/
export declare function isContainerSchema(schema?: SchemaType): schema is ContainerSchemaType;
/**
* Validate a value against a schema
*/
export declare function validateSchema<S extends SchemaType>(schema: S, value: unknown): {
valid: boolean;
errors?: string[];
};
/**
* Get default value for a schema
* Based on the schema type, it might return a plain value or a wrapped value
*/
export declare function getDefaultValue<S extends SchemaType>(schema: S): InferType<S> | undefined;
/**
* Creates a properly typed value based on the schema
* This ensures consistency between schema types and runtime values
*/
export declare function createValueFromSchema<S extends SchemaType>(schema: S, value: unknown): InferType<S>;
//# sourceMappingURL=validators.d.ts.map