connectToLibSQL() — drizzle-orm Function Reference
Architecture documentation for the connectToLibSQL() function in connections.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 66435e24_fdd6_97b9_c062_1bb68ffdb73d["connectToLibSQL()"] 4e02c2bb_54a8_1500_813e_2cafd1ad4f59["connections.ts"] 66435e24_fdd6_97b9_c062_1bb68ffdb73d -->|defined in| 4e02c2bb_54a8_1500_813e_2cafd1ad4f59 7aefe3aa_a868_e43f_09eb_fcf0004526d1["checkPackage()"] 66435e24_fdd6_97b9_c062_1bb68ffdb73d -->|calls| 7aefe3aa_a868_e43f_09eb_fcf0004526d1 a7e5f36c_3b28_1510_a488_f9186cbffe48["normaliseSQLiteUrl()"] 66435e24_fdd6_97b9_c062_1bb68ffdb73d -->|calls| a7e5f36c_3b28_1510_a488_f9186cbffe48 414ec951_dc1c_5030_4563_03e41560a793["prepareSqliteParams()"] 66435e24_fdd6_97b9_c062_1bb68ffdb73d -->|calls| 414ec951_dc1c_5030_4563_03e41560a793 style 66435e24_fdd6_97b9_c062_1bb68ffdb73d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-kit/src/cli/connections.ts lines 1281–1359
export const connectToLibSQL = async (credentials: LibSQLCredentials): Promise<
& LibSQLDB
& {
packageName: '@libsql/client';
migrate: (config: MigrationConfig) => Promise<void>;
proxy: Proxy;
transactionProxy: TransactionProxy;
}
> => {
if (await checkPackage('@libsql/client')) {
const { createClient } = await import('@libsql/client');
const { drizzle } = await import('drizzle-orm/libsql');
const { migrate } = await import('drizzle-orm/libsql/migrator');
const client = createClient({
url: normaliseSQLiteUrl(credentials.url, 'libsql'),
authToken: credentials.authToken,
});
const drzl = drizzle(client);
const migrateFn = async (config: MigrationConfig) => {
return migrate(drzl, config);
};
const db: LibSQLDB = {
query: async <T>(sql: string, params?: any[]) => {
const res = await client.execute({ sql, args: params || [] });
return res.rows as T[];
},
run: async (query: string) => {
await client.execute(query);
},
batchWithPragma: async (queries: string[]) => {
await client.migrate(queries);
},
};
type Transaction = Awaited<ReturnType<typeof client.transaction>>;
const proxy = async (params: ProxyParams) => {
const preparedParams = prepareSqliteParams(params.params || []);
const result = await client.execute({
sql: params.sql,
args: preparedParams,
});
if (params.mode === 'array') {
return result.rows.map((row) => Object.values(row));
} else {
return result.rows;
}
};
const transactionProxy: TransactionProxy = async (queries) => {
const results: (any[] | Error)[] = [];
let transaction: Transaction | null = null;
try {
transaction = await client.transaction();
for (const query of queries) {
const result = await transaction.execute(query.sql);
results.push(result.rows);
}
await transaction.commit();
} catch (error) {
results.push(error as Error);
await transaction?.rollback();
} finally {
transaction?.close();
}
return results;
};
return { ...db, packageName: '@libsql/client', proxy, transactionProxy, migrate: migrateFn };
}
console.log(
"Please install '@libsql/client' for Drizzle Kit to connect to LibSQL databases",
);
process.exit(1);
};
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does connectToLibSQL() do?
connectToLibSQL() is a function in the drizzle-orm codebase, defined in drizzle-kit/src/cli/connections.ts.
Where is connectToLibSQL() defined?
connectToLibSQL() is defined in drizzle-kit/src/cli/connections.ts at line 1281.
What does connectToLibSQL() call?
connectToLibSQL() calls 3 function(s): checkPackage, normaliseSQLiteUrl, prepareSqliteParams.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free