Vana SDK - v2.2.2
    Preparing search index...

    Class SchemaValidator

    Data schema validation utility class

    Index

    Methods

    • Validates a data schema definition against the Vana meta-schema

      Parameters

      • schema: unknown

        The data schema definition to validate

      Returns asserts schema is DataSchema

      SchemaValidationError if invalid

      const validator = new SchemaValidator();

      const schema = {
      name: "User Profile",
      version: "1.0.0",
      dialect: "json",
      schema: {
      type: "object",
      properties: {
      name: { type: "string" },
      age: { type: "number" }
      }
      }
      };

      validator.validateDataSchemaAgainstMetaSchema(schema); // throws if invalid
    • Validates data against a JSON Schema

      Parameters

      • data: unknown

        The data to validate

      • schema: DataSchema | Schema

        The schema containing the validation rules (must have been validated or fetched from chain)

      Returns void

      SchemaValidationError if invalid

      const validator = new SchemaValidator();

      // Works with Schema from schemas.get()
      const schema = await vana.schemas.get(1);
      validator.validateDataAgainstSchema(userData, schema);

      // Also works with pre-validated DataSchema object
      const dataSchema = validator.validateDataSchemaAgainstMetaSchema({
      name: "User Profile",
      version: "1.0.0",
      dialect: "json",
      schema: { type: "object", properties: { name: { type: "string" } } }
      });
      validator.validateDataAgainstSchema(userData, dataSchema);
    • Validates a SQLite DDL string for basic syntax Note: This is a basic validation, full SQL parsing would require a proper SQL parser

      Parameters

      • ddl: string

        The DDL string to validate

      • OptionaldialectVersion: string

        Optional SQLite version (e.g., "3" for SQLite v3)

      Returns void

      SchemaValidationError if invalid

    • Fetches and validates a data schema from a URL

      Parameters

      • url: string

        The URL to fetch the data schema from

      • OptionaldownloadRelayer: { proxyDownload: (url: string) => Promise<Blob> }

        Optional download relayer for CORS bypass

        • proxyDownload: (url: string) => Promise<Blob>

          Function to proxy downloads through application server

      Returns Promise<DataSchema>

      The validated data schema

      SchemaValidationError if invalid or fetch fails

      const validator = new SchemaValidator();
      const schema = await validator.fetchAndValidateSchema("https://example.com/schema.json");