-
-
Notifications
You must be signed in to change notification settings - Fork 602
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of github.com:drizzle-team/drizzle-orm into beta
- Loading branch information
Showing
69 changed files
with
4,684 additions
and
304 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
- Fix `data is malformed` for views |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
- Updated internal versions for the drizzle-kit and drizzle-orm packages. Changes were introduced in the last minor release, and you are required to upgrade both packages to ensure they work as expected |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
- Updated internal versions for the drizzle-kit and drizzle-orm packages. Changes were introduced in the last minor release, and you are required to upgrade both packages to ensure they work as expected |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
- Fix issues with importing in several environments after updating the Drizzle driver implementation | ||
|
||
We've added approximately 240 tests to check the ESM and CJS builds for all the drivers we have. You can check them [here](https://github.com/drizzle-team/drizzle-orm/tree/main/integration-tests/js-tests/driver-init) | ||
|
||
- Fixed [[BUG]: Type Error in PgTransaction Missing $client Property After Upgrading to [email protected]](https://github.com/drizzle-team/drizzle-orm/issues/3140) | ||
- Fixed [[BUG]: New critical Build error drizzle 0.35.0 deploying on Cloudflare ](https://github.com/drizzle-team/drizzle-orm/issues/3137) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# New LibSQL driver modules | ||
|
||
Drizzle now has native support for all `@libsql/client` driver variations: | ||
|
||
1. `@libsql/client` - defaults to node import, automatically changes to web if target or platform is set for bundler, e.g. `esbuild --platform=browser` | ||
|
||
```ts | ||
import { drizzle } from 'drizzle-orm/libsql'; | ||
|
||
const db = drizzle({ connection: { | ||
url: process.env.DATABASE_URL, | ||
authToken: process.env.DATABASE_AUTH_TOKEN | ||
}}); | ||
``` | ||
|
||
2. `@libsql/client/node` node compatible module, supports :memory:, file, wss, http and turso connection protocols | ||
|
||
```ts | ||
import { drizzle } from 'drizzle-orm/libsql/node'; | ||
|
||
const db = drizzle({ connection: { | ||
url: process.env.DATABASE_URL, | ||
authToken: process.env.DATABASE_AUTH_TOKEN | ||
}}); | ||
``` | ||
|
||
3. `@libsql/client/web` module for fullstack web frameworks like next, nuxt, astro, etc. | ||
|
||
```ts | ||
import { drizzle } from 'drizzle-orm/libsql/web'; | ||
|
||
const db = drizzle({ connection: { | ||
url: process.env.DATABASE_URL, | ||
authToken: process.env.DATABASE_AUTH_TOKEN | ||
}}); | ||
``` | ||
|
||
4. `@libsql/client/http` module for http and https connection protocols | ||
|
||
```ts | ||
import { drizzle } from 'drizzle-orm/libsql/http'; | ||
|
||
const db = drizzle({ connection: { | ||
url: process.env.DATABASE_URL, | ||
authToken: process.env.DATABASE_AUTH_TOKEN | ||
}}); | ||
``` | ||
|
||
5. `@libsql/client/ws` module for ws and wss connection protocols | ||
|
||
```ts | ||
import { drizzle } from 'drizzle-orm/libsql/ws'; | ||
|
||
const db = drizzle({ connection: { | ||
url: process.env.DATABASE_URL, | ||
authToken: process.env.DATABASE_AUTH_TOKEN | ||
}}); | ||
``` | ||
|
||
6. `@libsql/client/sqlite3` module for :memory: and file connection protocols | ||
|
||
```ts | ||
import { drizzle } from 'drizzle-orm/libsql/wasm'; | ||
|
||
const db = drizzle({ connection: { | ||
url: process.env.DATABASE_URL, | ||
authToken: process.env.DATABASE_AUTH_TOKEN | ||
}}); | ||
``` | ||
|
||
7. `@libsql/client-wasm` Separate experimental package for WASM | ||
|
||
```ts | ||
import { drizzle } from 'drizzle-orm/libsql'; | ||
|
||
const db = drizzle({ connection: { | ||
url: process.env.DATABASE_URL, | ||
authToken: process.env.DATABASE_AUTH_TOKEN | ||
}}); | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
import type { Client, ResultSet } from '@libsql/client'; | ||
import type { BatchItem, BatchResponse } from '~/batch.ts'; | ||
import { entityKind } from '~/entity.ts'; | ||
import { DefaultLogger } from '~/logger.ts'; | ||
import { | ||
createTableRelationsHelpers, | ||
extractTablesRelationalConfig, | ||
type ExtractTablesWithRelations, | ||
type RelationalSchemaConfig, | ||
type TablesRelationalConfig, | ||
} from '~/relations.ts'; | ||
import { BaseSQLiteDatabase } from '~/sqlite-core/db.ts'; | ||
import { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts'; | ||
import type { DrizzleConfig } from '~/utils.ts'; | ||
import { LibSQLSession } from './session.ts'; | ||
|
||
export class LibSQLDatabase< | ||
TSchema extends Record<string, unknown> = Record<string, never>, | ||
> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> { | ||
static override readonly [entityKind]: string = 'LibSQLDatabase'; | ||
|
||
/** @internal */ | ||
declare readonly session: LibSQLSession<TSchema, ExtractTablesWithRelations<TSchema>>; | ||
|
||
async batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>( | ||
batch: T, | ||
): Promise<BatchResponse<T>> { | ||
return this.session.batch(batch) as Promise<BatchResponse<T>>; | ||
} | ||
} | ||
|
||
/** @internal */ | ||
export function construct< | ||
TSchema extends Record<string, unknown> = Record<string, never>, | ||
>(client: Client, config: DrizzleConfig<TSchema> = {}): LibSQLDatabase<TSchema> & { | ||
$client: Client; | ||
} { | ||
const dialect = new SQLiteAsyncDialect({ casing: config.casing }); | ||
let logger; | ||
if (config.logger === true) { | ||
logger = new DefaultLogger(); | ||
} else if (config.logger !== false) { | ||
logger = config.logger; | ||
} | ||
|
||
let schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined; | ||
if (config.schema) { | ||
const tablesConfig = extractTablesRelationalConfig( | ||
config.schema, | ||
createTableRelationsHelpers, | ||
); | ||
schema = { | ||
fullSchema: config.schema, | ||
schema: tablesConfig.tables, | ||
tableNamesMap: tablesConfig.tableNamesMap, | ||
}; | ||
} | ||
|
||
const session = new LibSQLSession(client, dialect, schema, { logger }, undefined); | ||
const db = new LibSQLDatabase('async', dialect, session, schema) as LibSQLDatabase<TSchema>; | ||
(<any> db).$client = client; | ||
|
||
return db as any; | ||
} |
Oops, something went wrong.