Skip to content

Commit 16291ae

Browse files
DominicGBauerDominicGBauer
andauthored
chore: move kysely out of beta (#387)
Co-authored-by: DominicGBauer <[email protected]>
1 parent 7589720 commit 16291ae

File tree

2 files changed

+12
-123
lines changed

2 files changed

+12
-123
lines changed

.changeset/wise-coats-wash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@powersync/kysely-driver': major
3+
---
4+
5+
Move kysely out of Beta

packages/kysely-driver/README.md

Lines changed: 7 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22

33
This package (`packages/kysely-driver`) brings the benefits of an ORM through our maintained [Kysely](https://kysely.dev/) driver to [PowerSync](https://powersync.com).
44

5-
## Beta Release
6-
7-
The `kysely-driver` package is currently in a beta release.
8-
95
## Getting started
106

117
Set up the PowerSync Database and wrap it with Kysely.
@@ -25,6 +21,10 @@ export const powerSyncDb = new PowerSyncDatabase({
2521
});
2622

2723
export const db = wrapPowerSyncWithKysely(powerSyncDb);
24+
25+
const result = await db.selectFrom('users').selectAll().execute();
26+
27+
// [{ id: '1', name: 'user1' }, { id: '2', name: 'user2' }]
2828
```
2929

3030
With typing for TypeScript:
@@ -34,7 +34,7 @@ import { wrapPowerSyncWithKysely } from '@powersync/kysely-driver';
3434
import { PowerSyncDatabase } from "@powersync/web";
3535

3636
// Define schema as in: https://docs.powersync.com/usage/installation/client-side-setup/define-your-schema
37-
import { appSchema } from "./schema";
37+
import { appSchema, Database } from "./schema";
3838

3939
export const powerSyncDb = new PowerSyncDatabase({
4040
database: {
@@ -45,128 +45,12 @@ export const powerSyncDb = new PowerSyncDatabase({
4545

4646
// `db` now automatically contains types for defined tables
4747
export const db = wrapPowerSyncWithKysely<Database>(powerSyncDb)
48-
```
49-
50-
For more information on Kysely typing, see [here](https://kysely.dev/docs/getting-started#types).
5148

52-
Now you are able to use Kysely queries:
53-
54-
### Select
55-
56-
- In Kysely
57-
58-
```js
5949
const result = await db.selectFrom('users').selectAll().execute();
6050

6151
// [{ id: '1', name: 'user1' }, { id: '2', name: 'user2' }]
6252
```
6353

64-
- In PowerSync
65-
66-
```js
67-
const result = await powerSyncDb.getAll('SELECT * from users');
68-
69-
// [{ id: '1', name: 'user1' }, { id: '2', name: 'user2' }]
70-
```
71-
72-
### Insert
73-
74-
- In Kysely
75-
76-
```js
77-
await db.insertInto('users').values({ id: '1', name: 'John' }).execute();
78-
const result = await db.selectFrom('users').selectAll().execute();
79-
80-
// [{ id: '1', name: 'John' }]
81-
```
82-
83-
- In PowerSync
84-
85-
```js
86-
await powerSyncDb.execute('INSERT INTO users (id, name) VALUES(1, ?)', ['John']);
87-
const result = await powerSyncDb.getAll('SELECT * from users');
88-
89-
// [{ id: '1', name: 'John' }]
90-
```
91-
92-
### Delete
93-
94-
- In Kysely
95-
96-
```js
97-
await db.insertInto('users').values({ id: '2', name: 'Ben' }).execute();
98-
await db.deleteFrom('users').where('name', '=', 'Ben').execute();
99-
const result = await db.selectFrom('users').selectAll().execute();
100-
101-
// []
102-
```
103-
104-
- In PowerSync
105-
106-
```js
107-
await powerSyncDb.execute('INSERT INTO users (id, name) VALUES(2, ?)', ['Ben']);
108-
await powerSyncDb.execute(`DELETE FROM users WHERE name = ?`, ['Ben']);
109-
const result = await powerSyncDb.getAll('SELECT * from users');
110-
111-
// []
112-
```
113-
114-
### Update
115-
116-
- In Kysely
117-
118-
```js
119-
await db.insertInto('users').values({ id: '3', name: 'Lucy' }).execute();
120-
await db.updateTable('users').where('name', '=', 'Lucy').set('name', 'Lucy Smith').execute();
121-
const result = await db.selectFrom('users').select('name').executeTakeFirstOrThrow();
122-
123-
// 'Lucy Smith'
124-
```
125-
126-
- In PowerSync
127-
128-
```js
129-
await powerSyncDb.execute('INSERT INTO users (id, name) VALUES(3, ?)', ['Lucy']);
130-
await powerSyncDb.execute('UPDATE users SET name = ? WHERE name = ?', ['Lucy Smith', 'Lucy']);
131-
const result = await powerSyncDb.get('SELECT name FROM users WHERE name = ?', ['Lucy Smith'])
132-
133-
// 'Lucy Smith'
134-
```
135-
136-
### Transaction
137-
138-
- In Kysely
139-
140-
```js
141-
await db.transaction().execute(async (transaction) => {
142-
await transaction.insertInto('users').values({ id: '4', name: 'James' }).execute();
143-
await transaction.updateTable('users').where('name', '=', 'James').set('name', 'James Smith').execute();
144-
});
145-
const result = await db.selectFrom('users').select('name').executeTakeFirstOrThrow();
146-
147-
// 'James Smith'
148-
```
149-
150-
- In Kysely also using raw SQL
151-
152-
```js
153-
await db.transaction().execute(async (transaction) => {
154-
await sql`INSERT INTO users (id, name) VALUES ('4', 'James');`.execute(transaction)
155-
await transaction.updateTable('users').where('name', '=', 'James').set('name', 'James Smith').execute();
156-
});
157-
const result = await db.selectFrom('users').select('name').executeTakeFirstOrThrow();
158-
159-
// 'James Smith'
160-
```
161-
162-
- In PowerSync
163-
164-
```js
165-
await powerSyncDb.writeTransaction((transaction) => {
166-
await transaction.execute('INSERT INTO users (id, name) VALUES(4, ?)', ['James']);
167-
await transaction.execute("UPDATE users SET name = ? WHERE name = ?", ['James Smith', 'James']);
168-
})
169-
const result = await powerSyncDb.get('SELECT name FROM users WHERE name = ?', ['James Smith'])
54+
For more information on Kysely typing, see [here](https://kysely.dev/docs/getting-started#types).
17055

171-
// 'James Smith'
172-
```
56+
For more information on how to use Kysely queries in PowerSync, see [here](https://docs.powersync.com/client-sdk-references/javascript-web/javascript-orm/kysely#usage-examples).

0 commit comments

Comments
 (0)