/** * Drizzle ORM Adapter — Spec 15 R2 * * Extracts table references and schema definitions from Drizzle ORM code: * * Schema: pgTable('users', { ... }), mysqlTable(...), sqliteTable(...) * Queries: db.select().from(users), db.insert(users).values(...), * db.update(users).set(...), db.delete(users) */ import type { OrmAdapter, OrmTableReference, OrmSchemaDefinition } from './types.js'; import type { AST, LanguageAdapter } from '../../languages/types.js'; export declare class DrizzleAdapter implements OrmAdapter { readonly name = "drizzle"; readonly fileExtensions: string[]; supportsFile(filePath: string): boolean; extractTableReferences(ast: AST, adapter: LanguageAdapter, sourceCode: string): OrmTableReference[]; /** * Spec 22 R4.2: Check whether the file imports from drizzle-orm. * * Scans import statement text for "drizzle-orm" — faster and more * reliable than AST traversal across language adapters. */ private fileImportsDrizzleOrm; /** * Try to extract a table reference from a Drizzle query chain. * * Pattern: db.select().from(users) or db.insert(users).values(...) * The table identifier is the argument to .from(), or the argument to * insert()/update()/delete() when they take a table directly. * * Spec 22 R4.2: Each pattern requires companion Drizzle methods in the * same expression to avoid matching generic .from()/.insert()/.delete() * calls (e.g. Array.from(map), .insert(record), .delete(id)). * - .from(identifier) requires .select() in the expression * - .insert(identifier) requires .values() in the expression * - .update(identifier) already requires .set() — no change needed * - .delete(identifier) requires .where() in the expression */ private extractQueryTable; extractSchemaDefinitions(ast: AST, adapter: LanguageAdapter, sourceCode: string): OrmSchemaDefinition[]; /** * Extract table name + columns from pgTable/mysqlTable/sqliteTable calls. * * Pattern: pgTable('tableName', { column: type('name'), ... }) * - First arg: string literal → table name * - Second arg: object literal → column definitions */ private extractTableDefinition; /** * Parse Drizzle column definitions from the table builder's object argument. * * Pattern: { columnName: type('col_name').notNull(), ... } * We extract column name + type name. */ private parseColumnDefinitions; } //# sourceMappingURL=drizzleAdapter.d.ts.map