@duckdbfan/drizzle-duckdb 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { entityKind } from 'drizzle-orm/entity';
2
+ import type { MigrationConfig, MigrationMeta } from 'drizzle-orm/migrator';
3
+ import { PgDialect, PgSession } from 'drizzle-orm/pg-core';
4
+ import { type DriverValueEncoder, type QueryTypingsValue } from 'drizzle-orm';
5
+ export declare class DuckDBDialect extends PgDialect {
6
+ static readonly [entityKind]: string;
7
+ migrate(migrations: MigrationMeta[], session: PgSession, config: MigrationConfig): Promise<void>;
8
+ prepareTyping(encoder: DriverValueEncoder<unknown, unknown>): QueryTypingsValue;
9
+ }
@@ -0,0 +1,59 @@
1
+ import { entityKind } from 'drizzle-orm/entity';
2
+ import type { Logger } from 'drizzle-orm/logger';
3
+ import { PgDatabase } from 'drizzle-orm/pg-core/db';
4
+ import { PgDialect } from 'drizzle-orm/pg-core/dialect';
5
+ import { type ExtractTablesWithRelations, type RelationalSchemaConfig, type TablesRelationalConfig } from 'drizzle-orm/relations';
6
+ import { type DrizzleConfig, type DrizzleTypeError } from 'drizzle-orm/utils';
7
+ import type { DuckDBClient, DuckDBQueryResultHKT, DuckDBTransaction } from './session';
8
+ import { DuckDBSession } from './session.ts';
9
+ import { DuckDBDialect } from './dialect.ts';
10
+ import { PgSelectBuilder, type CreatePgSelectFromBuilderMode, type SelectedFields, type TableLikeHasEmptySelection } from 'drizzle-orm/pg-core/query-builders';
11
+ import { PgColumn, PgTable, type PgSession } from 'drizzle-orm/pg-core';
12
+ import { SQL, type ColumnsSelection } from 'drizzle-orm/sql/sql';
13
+ import { Subquery, ViewBaseConfig, type SQLWrapper } from 'drizzle-orm';
14
+ import { PgViewBase } from 'drizzle-orm/pg-core/view-base';
15
+ import type { GetSelectTableName, GetSelectTableSelection } from 'drizzle-orm/query-builders/select.types';
16
+ export interface PgDriverOptions {
17
+ logger?: Logger;
18
+ }
19
+ export declare class DuckDBDriver {
20
+ private client;
21
+ private dialect;
22
+ private options;
23
+ static readonly [entityKind]: string;
24
+ constructor(client: DuckDBClient, dialect: DuckDBDialect, options?: PgDriverOptions);
25
+ createSession(schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined): DuckDBSession<Record<string, unknown>, TablesRelationalConfig>;
26
+ }
27
+ export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: DuckDBClient, config?: DrizzleConfig<TSchema>): DuckDBDatabase<TSchema, ExtractTablesWithRelations<TSchema>>;
28
+ export declare class DuckDBDatabase<TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>> extends PgDatabase<DuckDBQueryResultHKT, TFullSchema, TSchema> {
29
+ readonly dialect: DuckDBDialect;
30
+ readonly session: DuckDBSession<TFullSchema, TSchema>;
31
+ static readonly [entityKind]: string;
32
+ constructor(dialect: DuckDBDialect, session: DuckDBSession<TFullSchema, TSchema>, schema: RelationalSchemaConfig<TSchema> | undefined);
33
+ select(): PgSelectBuilder<undefined>;
34
+ select<TSelection extends SelectedFields>(fields: TSelection): PgSelectBuilder<TSelection>;
35
+ transaction<T>(transaction: (tx: DuckDBTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
36
+ }
37
+ interface PgViewBaseInternal<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> extends PgViewBase<TName, TExisting, TSelectedFields> {
38
+ [ViewBaseConfig]?: {
39
+ selectedFields: SelectedFields;
40
+ };
41
+ }
42
+ export declare class DuckDBSelectBuilder<TSelection extends SelectedFields | undefined, TBuilderMode extends 'db' | 'qb' = 'db'> extends PgSelectBuilder<TSelection, TBuilderMode> {
43
+ private _fields;
44
+ private _session;
45
+ private _dialect;
46
+ private _withList;
47
+ private _distinct;
48
+ constructor(config: {
49
+ fields: TSelection;
50
+ session: PgSession | undefined;
51
+ dialect: PgDialect;
52
+ withList?: Subquery[];
53
+ distinct?: boolean | {
54
+ on: (PgColumn | SQLWrapper)[];
55
+ };
56
+ });
57
+ from<TFrom extends PgTable | Subquery | PgViewBaseInternal | SQL>(source: TableLikeHasEmptySelection<TFrom> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TFrom): CreatePgSelectFromBuilderMode<TBuilderMode, GetSelectTableName<TFrom>, TSelection extends undefined ? GetSelectTableSelection<TFrom> : TSelection, TSelection extends undefined ? 'single' : 'partial'>;
58
+ }
59
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './driver.ts';
2
+ export * from './session.ts';
3
+ export * from './columns.ts';