From 443bfdbf539e517e1b1a8172bcd1e8ab8cd20cba Mon Sep 17 00:00:00 2001 From: Arash Date: Thu, 24 Oct 2024 09:55:21 -0600 Subject: [PATCH 1/4] feat: neon connector --- docs/2.connectors/neon.md | 32 ++++++++++++-- examples/neon/index.ts | 41 ++++++++++++++++++ examples/neon/package.json | 12 ++++++ package.json | 6 ++- pnpm-lock.yaml | 81 +++++++++++++++++++++++++++++++----- src/connectors/neon.ts | 59 ++++++++++++++++++++++++++ test/connectors/neon.test.ts | 15 +++++++ 7 files changed, 230 insertions(+), 16 deletions(-) create mode 100644 examples/neon/index.ts create mode 100644 examples/neon/package.json create mode 100644 src/connectors/neon.ts create mode 100644 test/connectors/neon.test.ts diff --git a/docs/2.connectors/neon.md b/docs/2.connectors/neon.md index 695b676..3eadee4 100644 --- a/docs/2.connectors/neon.md +++ b/docs/2.connectors/neon.md @@ -6,9 +6,33 @@ icon: cbi:neon > Connect DB0 to Neon Serverless Postgres. -:read-more{to="https://neon.tech/"} +:read-more{to="https://neon.tech"} -::read-more{to="https://github.com/unjs/db0/issues/32"} -This connector is planned to be supported. Follow up via [unjs/db0#32](https://github.com/unjs/db0/issues/32). -:: +## Usage +For this connector, you need to install [`@neondatabase/serverless`](https://www.npmjs.com/package/@neondatabase/serverless) dependency: + +:pm-install{name="@neondatabase/serverless"} + +Use `neon` connector: + +```js +import { createDatabase } from "db0"; +import neonConnector from "db0/connectors/neon"; + +const db = createDatabase( + neonConnector({ + /* options */ + }), +); +``` + +## Options + +### `url` + +The URL of the Neon Serverless Postgres instance. + +**Type:** `string` + +:read-more{to="https://neon.tech/docs/serverless/serverless-driver#neon-function-configuration-options"} diff --git a/examples/neon/index.ts b/examples/neon/index.ts new file mode 100644 index 0000000..0d6f16b --- /dev/null +++ b/examples/neon/index.ts @@ -0,0 +1,41 @@ + +import { createDatabase } from "../../src"; +import neonConnector from "../../src/connectors/neon" +import dotenv from 'dotenv' + +dotenv.config({ + path: '../../.env' +}) + +async function main() { + const db = createDatabase(neonConnector({ + url: process.env.POSTGRESQL_URL!, + })); + + // create posts table if it doesn't exist + await db.sql`create table if not exists posts ( + id serial primary key, + title text, + content text + )`; + + // insert a new post + const currentDate = new Date().toISOString(); + await db.exec(`insert into posts (title, content) values ('Hello, world!', 'This post was created at ${currentDate}')`); + + // select the first post + const firstPost = await db.prepare(`SELECT * FROM posts ORDER BY id ASC LIMIT 1`).get(); + console.log('first Post:', firstPost.title); + + // select all posts + const res = await db.prepare(`SELECT * FROM posts`).all(); + console.log('total Posts:', res.length); + +} + +// eslint-disable-next-line unicorn/prefer-top-level-await +main().catch((error) => { + console.error(error); + // eslint-disable-next-line unicorn/no-process-exit + process.exit(1); +}); diff --git a/examples/neon/package.json b/examples/neon/package.json new file mode 100644 index 0000000..24a7f4a --- /dev/null +++ b/examples/neon/package.json @@ -0,0 +1,12 @@ +{ + "name": "db0-with-neon", + "private": true, + "scripts": { + "start": "jiti ./index.ts" + }, + "devDependencies": { + "@neondatabase/serverless": "^0.10.1", + "db0": "latest", + "jiti": "^1.21.0" + } +} diff --git a/package.json b/package.json index 0baa326..531d78b 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "devDependencies": { "@electric-sql/pglite": "^0.2.12", "@libsql/client": "^0.14.0", + "@neondatabase/serverless": "^0.10.1", "@planetscale/database": "^1.19.0", "@types/better-sqlite3": "^7.6.11", "@types/bun": "^1.1.11", @@ -74,11 +75,12 @@ "vitest": "^2.1.2" }, "peerDependencies": { + "@electric-sql/pglite": "*", "@libsql/client": "*", + "@neondatabase/serverless": "*", "better-sqlite3": "*", "drizzle-orm": "*", - "mysql2": "*", - "@electric-sql/pglite": "*" + "mysql2": "*" }, "peerDependenciesMeta": { "@libsql/client": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ada59b..5ae3069 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@libsql/client': specifier: ^0.14.0 version: 0.14.0 + '@neondatabase/serverless': + specifier: ^0.10.1 + version: 0.10.1 '@planetscale/database': specifier: ^1.19.0 version: 1.19.0 @@ -40,13 +43,13 @@ importers: version: 0.5.7(magicast@0.3.5) db0: specifier: ^0.2.0 - version: 0.2.0(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3) + version: 0.2.0(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3) dotenv: specifier: ^16.4.5 version: 16.4.5 drizzle-orm: specifier: ^0.34.1 - version: 0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) + version: 0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) eslint: specifier: ^9.12.0 version: 9.12.0(jiti@2.3.3) @@ -79,17 +82,29 @@ importers: devDependencies: db0: specifier: latest - version: 0.2.0(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.29.4(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3) + version: 0.2.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.29.4(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3) drizzle-kit: specifier: ^0.20.14 version: 0.20.14 drizzle-orm: specifier: ^0.29.4 - version: 0.29.4(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) + version: 0.29.4(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) jiti: specifier: ^1.21.0 version: 1.21.0 + examples/neon: + devDependencies: + '@neondatabase/serverless': + specifier: ^0.10.1 + version: 0.10.1 + db0: + specifier: latest + version: 0.2.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3) + jiti: + specifier: ^1.21.0 + version: 1.21.6 + packages: '@ampproject/remapping@2.3.0': @@ -874,6 +889,9 @@ packages: '@neon-rs/load@0.0.4': resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + '@neondatabase/serverless@0.10.1': + resolution: {integrity: sha512-Upn555uEYL/q8aqMdPSviggNWeeZLCl5FhCIs7A4hmshfoOAAfML+Sqbcxr+Re2WZN5+hpyM9JClImXnBuhuXw==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1139,6 +1157,9 @@ packages: '@types/pg@8.11.10': resolution: {integrity: sha512-LczQUW4dbOQzsH2RQ5qoeJ6qJPdrcM/DcMLoqWQkMLMsq83J5lAX3LXjdkWdpscFy67JSOWDnh7Ny/sPFykmkg==} + '@types/pg@8.11.6': + resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==} + '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -1586,6 +1607,26 @@ packages: mysql2: optional: true + db0@0.2.1: + resolution: {integrity: sha512-BWSFmLaCkfyqbSEZBQINMVNjCVfrogi7GQ2RSy1tmtfK9OXlsup6lUMwLsqSD7FbAjD04eWFdXowSHHUp6SE/Q==} + peerDependencies: + '@electric-sql/pglite': '*' + '@libsql/client': '*' + better-sqlite3: '*' + drizzle-orm: '*' + mysql2: '*' + peerDependenciesMeta: + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + mysql2: + optional: true + debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -4095,6 +4136,10 @@ snapshots: '@neon-rs/load@0.0.4': {} + '@neondatabase/serverless@0.10.1': + dependencies: + '@types/pg': 8.11.6 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4298,6 +4343,12 @@ snapshots: pg-protocol: 1.7.0 pg-types: 4.0.2 + '@types/pg@8.11.6': + dependencies: + '@types/node': 22.7.5 + pg-protocol: 1.7.0 + pg-types: 4.0.2 + '@types/resolve@1.20.2': {} '@types/unist@2.0.11': {} @@ -4839,20 +4890,28 @@ snapshots: data-uri-to-buffer@4.0.1: {} - db0@0.2.0(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.29.4(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3): + db0@0.2.0(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3): + optionalDependencies: + '@electric-sql/pglite': 0.2.12 + '@libsql/client': 0.14.0 + better-sqlite3: 11.3.0 + drizzle-orm: 0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) + mysql2: 3.11.3 + + db0@0.2.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.29.4(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3): optionalDependencies: '@electric-sql/pglite': 0.2.12 '@libsql/client': 0.14.0 better-sqlite3: 11.3.0 - drizzle-orm: 0.29.4(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) + drizzle-orm: 0.29.4(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) mysql2: 3.11.3 - db0@0.2.0(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3): + db0@0.2.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(better-sqlite3@11.3.0)(drizzle-orm@0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0))(mysql2@3.11.3): optionalDependencies: '@electric-sql/pglite': 0.2.12 '@libsql/client': 0.14.0 better-sqlite3: 11.3.0 - drizzle-orm: 0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) + drizzle-orm: 0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0) mysql2: 3.11.3 debug@4.3.4: @@ -4953,9 +5012,10 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.29.4(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0): + drizzle-orm@0.29.4(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0): optionalDependencies: '@libsql/client': 0.14.0 + '@neondatabase/serverless': 0.10.1 '@planetscale/database': 1.19.0 '@types/better-sqlite3': 7.6.11 '@types/pg': 8.11.10 @@ -4964,10 +5024,11 @@ snapshots: mysql2: 3.11.3 pg: 8.13.0 - drizzle-orm@0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0): + drizzle-orm@0.34.1(@electric-sql/pglite@0.2.12)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.1)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.11)(@types/pg@8.11.10)(better-sqlite3@11.3.0)(bun-types@1.1.30)(mysql2@3.11.3)(pg@8.13.0): optionalDependencies: '@electric-sql/pglite': 0.2.12 '@libsql/client': 0.14.0 + '@neondatabase/serverless': 0.10.1 '@planetscale/database': 1.19.0 '@types/better-sqlite3': 7.6.11 '@types/pg': 8.11.10 diff --git a/src/connectors/neon.ts b/src/connectors/neon.ts new file mode 100644 index 0000000..0f19462 --- /dev/null +++ b/src/connectors/neon.ts @@ -0,0 +1,59 @@ +import { neon, HTTPTransactionOptions, NeonQueryFunction } from '@neondatabase/serverless'; + +import type { Connector, Statement } from "../types"; + +export interface ConnectorOptions extends HTTPTransactionOptions { + /** + * The URL of the Neon Serverless Postgres instance. + * + * @required + */ + url: string; +} + +export default function neonConnector(opts: ConnectorOptions) { + let _connection: NeonQueryFunction; + const getConnection = async () => { + if (_connection) { + return _connection; + } + + const { url, ...transactionOptions } = opts; + + _connection = neon(url, { + ...transactionOptions, + }) + + return _connection; + }; + + return { + name: "neon", + dialect: "postgresql", + exec(sql: string) { + return getConnection().then((c) => c(sql)); + }, + prepare(sql: string) { + const stmt = { + _sql: sql, + _params: [], + bind(...params) { + if (params.length > 0) { + this._params = params; + } + return stmt; + }, + all(...params) { + return getConnection().then((c) => c(this._sql, params || this._params)); + }, + run(...params) { + return getConnection().then((c) => c(this._sql, params || this._params)); + }, + get(...params) { + return getConnection().then((c) => c(this._sql, params || this._params)).then((res) => res[0]); + }, + }; + return stmt; + }, + }; +} diff --git a/test/connectors/neon.test.ts b/test/connectors/neon.test.ts new file mode 100644 index 0000000..4691660 --- /dev/null +++ b/test/connectors/neon.test.ts @@ -0,0 +1,15 @@ +import { describe } from "vitest"; +import connector from "../../src/connectors/neon"; +import { testConnector } from "./_tests"; + +describe.runIf(process.env.POSTGRESQL_URL)( + "connectors: neon.test", + () => { + testConnector({ + dialect: "postgresql", + connector: connector({ + url: process.env.POSTGRESQL_URL!, + }), + }); + }, +); From 2dd0c859d2f9fa827b8a7e9e039f5ad7999d4930 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Fri, 24 Jan 2025 21:19:12 +0100 Subject: [PATCH 2/4] reduce diff --- examples/neon/index.ts | 41 -------------------------------------- examples/neon/package.json | 12 ----------- 2 files changed, 53 deletions(-) delete mode 100644 examples/neon/index.ts delete mode 100644 examples/neon/package.json diff --git a/examples/neon/index.ts b/examples/neon/index.ts deleted file mode 100644 index 0d6f16b..0000000 --- a/examples/neon/index.ts +++ /dev/null @@ -1,41 +0,0 @@ - -import { createDatabase } from "../../src"; -import neonConnector from "../../src/connectors/neon" -import dotenv from 'dotenv' - -dotenv.config({ - path: '../../.env' -}) - -async function main() { - const db = createDatabase(neonConnector({ - url: process.env.POSTGRESQL_URL!, - })); - - // create posts table if it doesn't exist - await db.sql`create table if not exists posts ( - id serial primary key, - title text, - content text - )`; - - // insert a new post - const currentDate = new Date().toISOString(); - await db.exec(`insert into posts (title, content) values ('Hello, world!', 'This post was created at ${currentDate}')`); - - // select the first post - const firstPost = await db.prepare(`SELECT * FROM posts ORDER BY id ASC LIMIT 1`).get(); - console.log('first Post:', firstPost.title); - - // select all posts - const res = await db.prepare(`SELECT * FROM posts`).all(); - console.log('total Posts:', res.length); - -} - -// eslint-disable-next-line unicorn/prefer-top-level-await -main().catch((error) => { - console.error(error); - // eslint-disable-next-line unicorn/no-process-exit - process.exit(1); -}); diff --git a/examples/neon/package.json b/examples/neon/package.json deleted file mode 100644 index 24a7f4a..0000000 --- a/examples/neon/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "db0-with-neon", - "private": true, - "scripts": { - "start": "jiti ./index.ts" - }, - "devDependencies": { - "@neondatabase/serverless": "^0.10.1", - "db0": "latest", - "jiti": "^1.21.0" - } -} From 1d3fea08dbf6c2e18a16145be098013e64c3b398 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Fri, 24 Jan 2025 21:19:20 +0100 Subject: [PATCH 3/4] update lock --- pnpm-lock.yaml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2fe2a26..6b893bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,18 +106,6 @@ importers: specifier: ^1.21.0 version: 1.21.7 - examples/neon: - devDependencies: - '@neondatabase/serverless': - specifier: ^0.10.1 - version: 0.10.4 - db0: - specifier: latest - version: 0.2.1(@electric-sql/pglite@0.2.16)(@libsql/client@0.14.0)(better-sqlite3@11.8.1)(drizzle-orm@0.38.4(@electric-sql/pglite@0.2.16)(@libsql/client@0.14.0)(@neondatabase/serverless@0.10.4)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.12)(@types/pg@8.11.11)(better-sqlite3@11.8.1)(bun-types@1.2.0)(mysql2@3.12.0)(pg@8.13.1)(sqlite3@5.1.7))(mysql2@3.12.0) - jiti: - specifier: ^1.21.0 - version: 1.21.7 - packages: '@ampproject/remapping@2.3.0': From 5250ad98bd80f21d20caaab001333aaf8e2dd139 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 20:23:19 +0000 Subject: [PATCH 4/4] chore: apply automated updates --- src/_connectors.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/_connectors.ts b/src/_connectors.ts index d9a8ae6..b0db018 100644 --- a/src/_connectors.ts +++ b/src/_connectors.ts @@ -8,12 +8,13 @@ import type { ConnectorOptions as LibSQLHttpOptions } from "db0/connectors/libsq import type { ConnectorOptions as LibSQLNodeOptions } from "db0/connectors/libsql/node"; import type { ConnectorOptions as LibSQLWebOptions } from "db0/connectors/libsql/web"; import type { ConnectorOptions as MySQL2Options } from "db0/connectors/mysql2"; +import type { ConnectorOptions as NeonOptions } from "db0/connectors/neon"; import type { ConnectorOptions as NodeSQLite3Options } from "db0/connectors/node-sqlite3"; import type { ConnectorOptions as PgliteOptions } from "db0/connectors/pglite"; import type { ConnectorOptions as PlanetscaleOptions } from "db0/connectors/planetscale"; import type { ConnectorOptions as PostgreSQLOptions } from "db0/connectors/postgresql"; -export type BuiltinConnectorName = "better-sqlite3" | "sqlite" | "bun-sqlite" | "bun" | "cloudflare-d1" | "libsql-core" | "libsql-http" | "libsql-node" | "libsql" | "libsql-web" | "mysql2" | "node-sqlite3" | "pglite" | "planetscale" | "postgresql"; +export type BuiltinConnectorName = "better-sqlite3" | "sqlite" | "bun-sqlite" | "bun" | "cloudflare-d1" | "libsql-core" | "libsql-http" | "libsql-node" | "libsql" | "libsql-web" | "mysql2" | "neon" | "node-sqlite3" | "pglite" | "planetscale" | "postgresql"; export type BuiltinConnectorOptions = { "better-sqlite3": BetterSQLite3Options; @@ -30,6 +31,7 @@ export type BuiltinConnectorOptions = { "libsql": LibSQLNodeOptions; "libsql-web": LibSQLWebOptions; "mysql2": MySQL2Options; + "neon": NeonOptions; "node-sqlite3": NodeSQLite3Options; "pglite": PgliteOptions; "planetscale": PlanetscaleOptions; @@ -51,6 +53,7 @@ export const builtinConnectors = Object.freeze({ "libsql": "db0/connectors/libsql/node", "libsql-web": "db0/connectors/libsql/web", "mysql2": "db0/connectors/mysql2", + "neon": "db0/connectors/neon", "node-sqlite3": "db0/connectors/node-sqlite3", "pglite": "db0/connectors/pglite", "planetscale": "db0/connectors/planetscale",