Skip to main content
Interfaces for documents in VectoriaDB.

DocumentMetadata

Base interface for document metadata. Your custom metadata must extend this.
interface DocumentMetadata {
  /**
   * Unique identifier for the document
   */
  id: string;

  /**
   * Additional metadata fields (flexible)
   */
  [key: string]: any;
}

Example

interface ToolDocument extends DocumentMetadata {
  toolName: string;
  owner: string;
  tags: string[];
  risk: 'safe' | 'destructive';
  deprecated?: boolean;
}

const db = new VectoriaDB<ToolDocument>();

DocumentEmbedding

Stored document with embedding vector.
interface DocumentEmbedding<T extends DocumentMetadata = DocumentMetadata> {
  /**
   * Unique identifier
   */
  id: string;

  /**
   * Vector representation (384 dimensions by default)
   */
  vector: Float32Array;

  /**
   * Associated metadata
   */
  metadata: T;

  /**
   * Original text used for embedding
   */
  text: string;

  /**
   * Timestamp when created
   */
  createdAt: Date;
}

Example

const doc = db.get('users:list');

if (doc) {
  console.log(doc.id);          // 'users:list'
  console.log(doc.text);        // 'List all users...'
  console.log(doc.metadata);    // { id: 'users:list', toolName: 'list', ... }
  console.log(doc.createdAt);   // Date object
  console.log(doc.vector);      // Float32Array(384)
}

DocumentData

Input format for document embedding generation.
interface DocumentData {
  /**
   * Main text content
   */
  text: string;

  /**
   * Additional metadata (optional)
   */
  metadata?: Record<string, any>;
}

Type Safety

VectoriaDB uses TypeScript generics for type-safe metadata:
interface MyDocument extends DocumentMetadata {
  title: string;
  category: string;
}

const db = new VectoriaDB<MyDocument>();

// TypeScript enforces metadata shape
await db.add('id', 'text', {
  id: 'id',
  title: 'My Title',
  category: 'docs',
  // TypeScript error if you add wrong fields
});

// Search results have typed metadata
const results = await db.search('query');
results[0].metadata.title; // string
results[0].metadata.category; // string

Configuration

Config interfaces

Search

Search interfaces

add()

Adding documents