UNPKG

loro-mirror

Version:

Type-safe state management synchronized with Loro CRDT via a declarative schema and bidirectional mirroring.

48 lines 2.13 kB
/** * 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