@typesql/kysely 0.1.5 → 0.2.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @typesql/kysely
2
2
 
3
+ ## 0.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - The README is shorter: install, one example and links to the docs site, which now has the details it used to repeat.
8
+
9
+ - Updated dependencies:
10
+ - @typesql/core@0.6.0
11
+
12
+ ## 0.2.0
13
+
14
+ ### Minor Changes
15
+
16
+ - `NoResultError`, `Executor` and `TransactionalSql` are no longer re-exported (from `@typesql/drizzle` also `Sql`, `Query`, `RowType`, `ParamsType`, `DefaultTypeMap` and `TypeMap`); import them from `@typesql/core`.
17
+
18
+ ### Patch Changes
19
+
20
+ - Updated dependencies:
21
+ - @typesql/core@0.5.0
22
+
3
23
  ## 0.1.5
4
24
 
5
25
  ### Patch Changes
package/README.md CHANGED
@@ -1,209 +1,52 @@
1
1
  # @typesql/kysely
2
2
 
3
- Use the `DB` interface you already have for [Kysely](https://kysely.dev) as a TypeSQL schema:
4
- the one generated by [kysely-codegen](https://github.com/RobinBlomberg/kysely-codegen), by
5
- [prisma-kysely](https://github.com/valtyr/prisma-kysely), or written by hand. The conversion is
6
- type-level only; nothing is generated and no database is contacted.
3
+ Write [TypeSQL](https://www.npmjs.com/package/@typesql/core) queries against the `DB` interface you already have for [Kysely](https://kysely.dev), and run them on your Kysely instance. The interface can come from [kysely-codegen](https://github.com/RobinBlomberg/kysely-codegen), [prisma-kysely](https://github.com/valtyr/prisma-kysely), or be written by hand.
4
+
5
+ ## Install
7
6
 
8
7
  ```sh
9
- pnpm add @typesql/core @typesql/kysely kysely
8
+ npm install @typesql/core @typesql/kysely kysely
10
9
  ```
11
10
 
12
- [Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/PTAEBUE8AcFMGUCKAZUB3AlgFwBagNKQDOsANpKABQACWMsRAjqcANbFmQCUAdKAJoB7AK4AnAh3KgAIgCFQGAHZZYogGYBDAMawq7EuQC0WwQBNYAc1iLQIrNGFZbogFAhQODYtOG0o7CqKXApEoLi6RFo4sAC2GgA0oF6moKIaaKBIqKLCiqGCNpAi4oQGFEpEWF46fAASggBuqmHRqQzCpFhEPC4YMdCCok4A3hJliQAKgpUWogzSGBqksFpYiXRwoADCgqTCMYpQcOv0oADi1qoaKikAvqBqooIxoABE+pyvANy9-YMjoCmu1A90ezze0As31+AyGoFGWjm1wQzBBDyeL1etHoTBYH3I0LcYHxkGMZks1lsjgcazC-hiMVgphcG10AEllAAOUAAXm2u32h3oAB5Kv5FBZEgAjDAWJROAA+oEU+ylzSVYqUktAMrlylASpVMTV4g1WHFFgAfD9WRA+gwqv1efy9gcjrBhdJkYkvSoDaBNRKfcj-YGrTbTgBZQRmZ2vTzQaCQV7+15EDSmQny1SaHQyeTDFygUDCEiiIgALnhReLClMVYuiiuN2FRpN1prxdiGgwpCrYZ+tdAMRj9dA0djho6pEHtcRsGRpgA+tcG5c0i3wPbKhp+h3i7dZwNKpXq0OMGPG82mcKOVhOfvaxpHDhBkuL1W26pZ8WsNhlv25paj+oAOFKpAYEQ0SXuui7ClKMbLF4j6Hi4twuC4Jh5E4phSs6TYZKUnCerIlqUKMpiLMsqyfrAGRTDMcxEAsSwrFg5GgYhtH0YhlDBLc-FcD8WGVAGqJ8vOyLwMwJFkbhQkYe44CtIwwiqBQUrCL25jiGogzoJ4TjYKApiCAw6BkKQiRZA8+nhG0lSJFEKysEySQWD22EtBEu66FU4EMD0Ik4WkahdM66Q9jhUo8AYbEAGIYpQrzHl0ry8HFqyUAA2q8F6vIkrx-lgyyvAAurwaDRHMyVgRBUFMgVbw8k1mikCQvCwAAHisjiwHxPyYQUolITpCEaKIKR8rilAAAbwAAosgC1bOAJY8N2vaJMIPAjmYTkiMolDQDwF7BAAgvAnEnvEnZDvdD2PQ9aSKKwfGgAA8gAagtABKVAfb90h-aAsj8KAJi5OxJ1nTIC3wFsF1XdApDaLAd1PZjtbxb9H2RiWZahMIoDLfFa0AFIfWyABy13hdAn20ydz64G+F7Ojt7PndT0igTwdWQdBGNY5jADqtR-Qt617VNoAACQAIzCyLj1nLjACqEyg+DnOmLNhUJkm6XCcNTgva5suRcZo2qONk0bT1Wh9QNRJDgAegA-IpYAckQF66BoYycHSXjpqsGAFNKSgpIHuJhIIChOFgCcxBgXU6lppA6Uk3iZCgoCqaoGCBS4VvRTw5qh9of4FHxDu9SolAaEQkCKFoVDml1wQ8paZ5JGgUV0l1PDCNApjIuAGgBbV0xpRlsDsaMAsNWO5pqSClXVf1rws6+ojvpmhUtYkCudY7zsKcWZcQ0iKjSaQsmUJ3XBzcDy3gFLON43ToTi5LSQvjZrLRWoBua82ph9Nay9oL61AKfeuTtG4KQEoNGa80lorTWuzL++NSyqF-hLX6UsZbOkVrAneEpRDJiEqAdwqgniiE-IIJwgcGhLHXoINQ3lhyjlANYfYLggA) <!-- playground:kysely --> to hover the types and edit the SQL, with nothing to install.
11
+ ## Usage
13
12
 
14
13
  ```ts
15
14
  import { createSql } from "@typesql/kysely";
16
- import type { DB } from "./db"; // kysely-codegen output
17
-
18
- const sql = createSql<DB>(db); // db: your Kysely<DB> instance, or a Transaction<DB>
15
+ import type { DB } from "./db"; // the interface you pass to new Kysely<DB>()
19
16
 
20
- const q = sql(
21
- `SELECT u.id, u.email, p.title, p.views
22
- FROM users u JOIN posts p ON p.author_id = u.id
23
- WHERE u.id = $1 AND p.published = $2`,
24
- 1, true,
25
- );
26
- // ^? Query<{ id: number; email: string; title: string; views: string }, [number | null, boolean | null]>
17
+ const sql = createSql<DB>(db); // db: your Kysely<DB> instance, or a transaction
27
18
 
28
- const rows = await q.execute();
19
+ const posts = await sql(
20
+ `SELECT u.email, p.title
21
+ FROM users u JOIN posts p ON p.author_id = u.id
22
+ WHERE u.id = $1`,
23
+ 1,
24
+ ).execute();
25
+ // { email: string; title: string }[]
29
26
 
30
27
  await sql.transaction(async (tx) => {
31
28
  await tx("UPDATE posts SET published = true WHERE author_id = $1", 1).execute();
32
29
  });
33
30
  ```
34
31
 
35
- ## API
32
+ [Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/PTAEBUE8AcFMGUCKAZUB3AlgFwBagNKQDOsANpKABQACWMsRAjqcANbFmQCUAdKAJoB7AK4AnAh3KgAIgCFQGAHZZYogGYBDAMawq7EuQC0WwQBNYAc1iLQIrNGFZbogFAhQODYtOG0o7CqKXApEoLi6RFo4sAC2GgA0oF6moKIaaKBIqKLCiqGCNpAi4oQGFEpEWF46fAASggBuqmHRqQzCpFhEPC4uGDHQgqJOAN6gWqKwGirwzKAAvqBqooIxoABEtPRMLPqc6wDcfQNDoy4AkHRwoADCgqTCMYpQcPEXV7oA4taq07Cmb3OpU4gIACoJKhZJkRpBgNKRYFosG9FstVhs9uRDsdBsNQGNwfcFksVmt1tALNi3GBMZBjGZLNZbI4HMiwv4YjF-i4PqAAJLKAAcoAAvLd7o9nvQADwXSr+RQWQEAIwwFiUTgAPqBFI9lc1tfKlEqLqr1cpQNrdTF9eJDVgFRYXAA+I688D9BhVAai8UPJ4vWDS6R-RIhlSW0BGxVhv6R6MWV08+igACygjMvvWnmg0Eg60j6yIGlMVI1qk0Ohk8hGF2EJFERAAXPiLucMKYW99FL8VKZpdbbUnzudYhoMKQWwmjiOYhnO2n55HdaRSDPzhMpn2APrTLs-NJ96UermVDQDYfzGeDSrN1sjjv7nuH-7SgVYQXD84aRw4Ibbx8dT1VR1ywbAESnB1jXXBxlVIDAiGiBdu17V9lQzBEvEvI55l6Ew8icUxlV9HsMmBchg1kZ1KFrc5TDhBEkRbUjQHBSFoVheFESwGjQEGe5mNgDJCVIShgnmLgUS4I58MqKM5jFTc-lmUhKOoojpN6dxwFaRhhFUChlWECdzHENQhnQTwnGwUBTEEBh0DIUhEiyJYLPCNpKkSKJEVYf4kgsccCJaCJz10Ko4IYHpZMItI1C6X10nHQjlQuHgDG4gAxUlKHJCEunWLg0oypFKAAbXWDt1kSdYwKwBF1gAXSK84eDQaJJly2D4MQ-5qo2EV+s0UgSBanhYAAD0RRxYDEo4XBi0BMNM9CNFEFIxR2SgLgAA3gABRZB9pucBQGEca4gnRJzrnMxvJEZRKGgHgO2CABBeA+Pyog3lAP7-oBwGgeB-60kUVgxNAAB5AA1faACUqCh+HpAR0BZH4cYHp457Xpkfb4Bud7PugUhtFgFwQap4HMvhqHUzOhtQmEUAjsy06ACkob5AA5L7bz46G+een9cH-DtfXOiW3p56Q+J4bqEKQynqdVv6AHVagR-azp4W6NtAAASABGFW1epz46YAVVBdHMal0wdsBbMNFzfM3k0xawb8g2kps5bVFW9bxqmrQZrm6kAYAPQAfi0sABSIDtdA0CQynZLxiyRDACkSVVvCSeTSDCQQFCcLBS5iDAJtAIyTOaZJMhQUA9NUDAopcP2Up4B1M+0MCCjEkPppUSgNCISBFC0KgHQm4IRWde8u-ZCa2x4YRoFMP5wA0SKuu+wq15IHixkV3qFwdfSFha1r2tUWb1lFv9RAA0sasGxJjZv4ew9HzTvzQMlcYkxlLMDUpQWeXBtojh2qjI64Ada03pvzBKmttZJF-OLA2JtQAyzljzKGp0z5ISdm2Y2gJeCTRHrNTSEl5pbT2odY6p0JZIIZvWVQoQ0Hwx1vrX0JsnYbC8FCfM0lQDuFUCsUQzFBBOFTg0eEV9BBqBCqAPh1hHguCAA) <!-- playground:kysely --> to hover the types and edit the SQL, with nothing to install.
36
33
 
37
- | Export | What it is |
38
- |---|---|
39
- | `createSql<DB, TM = DefaultTypeMap, Overrides = {}, Options = {}>(db, options?)` | core's `createSql<FromKysely<DB, Overrides, Options>, TM>()` with the queries running on `db`; `{ rowKeys: "camelCase" }` gives `CamelCasePlugin`-style row keys |
40
- | `q.execute()`, `q.executeTakeFirst()`, `q.executeTakeFirstOrThrow()`, `q.executeCount()` | `Promise<Row[]>`, `Promise<Row \| undefined>`, `Promise<Row>` (`NoResultError` on 0 rows), `Promise<number>` (`numAffectedRows`; for other statements the number of rows returned, 0 for DDL) |
41
- | `sql.transaction(fn)` | `db.transaction().execute(...)` with `tx` bound to the transaction; on a `Transaction`, and for `tx.transaction(fn)`, a savepoint |
42
- | `FromKysely<DB, Overrides = {}, Options = {}>` | the converted schema type, for use with core's `createSql<Schema, TM>()` or the adapters' `createSql<Schema>(client)` |
43
- | `KyselySql<DB, TM, Overrides, Options, Keys>` | the type `createSql` returns |
44
- | `executor(db)` | an `Executor` for `q.execute(executor)` and core's `createSql(executor)`, also bypassing plugins |
45
- | `InferColumn<T>` | the descriptor inferred for one Kysely column type (handy to check a mapping) |
46
- | `SnakeCase<S>` | `CamelCasePlugin`'s default camelCase → snake_case mapping, at the type level |
47
- | `KyselyOverrides`, `TableOverride`, `ColumnOverride`, `KyselyOptions`, `KyselyExecutor` | parameter types |
34
+ ## Pin column types
48
35
 
49
- `TM` is the type map for the driver Kysely runs on. Kysely's `PostgresDialect` uses `pg`, so
50
- `PgTypeMap` from `@typesql/pg` is the exact choice (`Buffer` for `bytea`, interval methods); core's
51
- `DefaultTypeMap` already matches `pg` otherwise:
36
+ Kysely describes columns with TypeScript types, so TypeSQL guesses the Postgres type: `number` is `int4`, `string` is `text`, `Date` is `timestamptz`. Rows come out right either way, but division, aggregates and date arithmetic can differ. Pin the columns where it matters:
52
37
 
53
38
  ```ts
54
- import type { PgTypeMap } from "@typesql/pg";
55
- import { createSql, type FromKysely } from "@typesql/kysely";
56
- import { createSql as createCoreSql } from "@typesql/core";
57
-
58
- const sql = createSql<DB, PgTypeMap>(db);
59
- const same = createCoreSql<FromKysely<DB>, PgTypeMap>(); // types only, no client
60
- ```
61
-
62
- Queries are sent as `CompiledQuery.raw(q.text, q.values)` through
63
- `db.withoutPlugins().executeQuery(...)`. Plugins are bypassed on purpose: TypeSQL's row types
64
- describe what Postgres returns (`created_at`), and a result transformer such as
65
- `CamelCasePlugin` would rename the keys (use `{ rowKeys: "camelCase" }` for camelCase rows).
66
- Logging, the dialect and the connection pool are unaffected. Inside a Kysely transaction,
67
- `createSql<DB>(trx)` binds a `sql` to it, so builder and SQL queries share the transaction.
68
-
69
- ## How columns are converted
70
-
71
- Kysely describes a column by its TS type; TypeSQL needs a Postgres type name. The TS shape
72
- is read back as follows (for `ColumnType<S, I, U>` the select type `S` decides, the insert type
73
- `I` breaks ties):
74
-
75
- | Kysely column type | Postgres type | Notes |
76
- |---|---|---|
77
- | `number` | `int4` | also what codegen emits for `int2`, `float4`, `float8`, `oid`: override those |
78
- | `string` | `text` | also `varchar`, `uuid`, `time`, `money`, `inet`, …: override if it matters |
79
- | `boolean` | `bool` | |
80
- | `bigint` | `int8` | |
81
- | `Date` | `timestamptz` | |
82
- | `Buffer` / `Uint8Array` | `bytea` | |
83
- | `Int8` = `ColumnType<string, bigint \| number \| string, …>` | `int8` | `bigint` in the insert type |
84
- | `Numeric` = `ColumnType<string, number \| string, …>` | `numeric` | `number` in the insert type |
85
- | `Timestamp` = `ColumnType<Date, Date \| string, …>` | `timestamptz` | codegen uses `Timestamp` for `date`, `timestamp` and `timestamptz` alike |
86
- | `Interval` (an object with `days`) | `interval` | |
87
- | `Point` (`{ x, y }`) / `Circle` (`{ x, y, radius }`) | `point` / `circle` | |
88
- | `Json` / `JsonValue`, `unknown`, `JSONColumnType<T>`, any other object | `jsonb` | always nullable (see below) |
89
- | `T[]`, `ArrayType<T>` | element type + `[]` | `number[][]` is `int4[]` too |
90
- | `"a" \| "b"` (string-literal union, codegen enums, prisma-kysely enums, TS string enums) | an enum | registered in `$types`, see [Enums](#enums) |
91
- | `T \| null` | nullable | |
92
- | `Generated<T>` (kysely's or codegen's), `GeneratedAlways<T>` | has a default | optional in `INSERT`; `GeneratedAlways<Int8>` stays `int8` |
93
- | `"auth.users"` key | `Schema["auth"]["users"]` | query it as `auth.users` |
94
- | `"public.users"` key | `Schema["users"]` | |
95
-
96
- Rows then come out through the type map, so `int8` and `numeric` columns are `string`, as
97
- kysely-codegen declares them and as `pg` returns them.
98
-
99
- ## Overrides
100
-
101
- The mapping is a best guess. The third type argument (`Overrides`) pins the exact Postgres type of any
102
- column, keyed by the table key and the column key as they appear in your `DB` interface:
39
+ import type { DefaultTypeMap } from "@typesql/core";
103
40
 
104
- ```ts
105
- const sql = createSql<DB, DefaultTypeMap, {
106
- users: {
107
- id: "int8"; // just a type name: nullability and default are kept
108
- score: "float8";
109
- birthday: "date";
110
- created_at: { type: "timestamp"; hasDefault: true }; // or a partial descriptor
111
- };
112
- "auth.users": { id: "uuid" };
113
- active_users: { $view: true }; // a view: INSERT/UPDATE/DELETE are rejected
114
- $types: { mood: Mood; "auth.role": AuthRole }; // enum names, see below
115
- }>(db);
41
+ const sql = createSql<DB, DefaultTypeMap, { posts: { score: "float8" } }>(db);
116
42
  ```
117
43
 
118
- A descriptor may set any of `type`, `nullable` and `hasDefault`; the others stay inferred.
119
- Declare the overrides with a `type` alias or inline, not an `interface` (an interface has no
120
- index signature, so it does not satisfy the `KyselyOverrides` constraint).
44
+ For an interface generated with `kysely-codegen --camel-case`, pass `{ camelCase: true }` as the fourth type argument.
121
45
 
122
- Worth overriding:
46
+ ## Documentation
123
47
 
124
- - `float4`/`float8` columns (inferred `int4`): `score / 2` is integer division for `int4`, and
125
- `sum`/`avg` result types differ.
126
- - `date` and `timestamp` columns (inferred `timestamptz`): `date - date` is an `int4` number of
127
- days, `timestamptz - date` an `interval`.
128
- - `uuid`, `varchar`, `time`, `inet`… (inferred `text`): row and parameter types are `string`
129
- either way; override when you use functions or operators that exist for that type only.
130
- - `json` columns (inferred `jsonb`).
48
+ See [From Kysely, Drizzle or Prisma](https://typesql.karsli.net/guide/orms#kysely) for how columns are converted, overrides, enums and camelCase, and [Limits](https://typesql.karsli.net/guide/limits#orm-schemas) for what the conversion can't tell.
131
49
 
132
- ## Enums
133
-
134
- A column whose type is a union of string literals becomes an enum column. Its values go into the
135
- schema's `$types`, so rows and parameters have the literal union (`"happy" | "sad"`), and a
136
- string literal in SQL is accepted where Postgres accepts it.
137
-
138
- Kysely types do not carry the enum's Postgres name, so by default each column gets its own name,
139
- `table.column` (`users.mood`, `auth.users.role`). That is enough for reading and filtering, but
140
- two columns of the same enum are then different types: `SELECT mood FROM users UNION SELECT mood
141
- FROM posts` is rejected, like it would be for two distinct Postgres enums. Name your enums once
142
- under `$types` and every column whose values are **exactly** that union gets the name:
143
-
144
- ```ts
145
- import type { Mood, AuthRole } from "./db"; // kysely-codegen exports one alias per enum
146
-
147
- createSql<DB, DefaultTypeMap, { $types: { mood: Mood; "auth.role": AuthRole } }>(db);
148
- ```
149
-
150
- If two `$types` entries have the same values the column keeps its derived name; set the column's
151
- type explicitly (`{ users: { mood: "mood" } }`). A column override with a non-builtin name also
152
- registers the column's union under that name; an override with a built-in name (`"text"`) drops
153
- the union.
154
-
155
- ## camelCase
156
-
157
- If the interface was generated with `kysely-codegen --camel-case` (and the app uses
158
- `CamelCasePlugin`), pass `{ camelCase: true }` as the options. Table and column keys are mapped
159
- back to the database's snake_case names the way `CamelCasePlugin` does by default (`createdAt` →
160
- `created_at`, `userID` → `user_id`), so the SQL you write and the rows you get use the real names:
161
-
162
- ```ts
163
- const sql = createSql<DB, DefaultTypeMap, {}, { camelCase: true }>(db);
164
- const q = sql("SELECT author_id, created_at FROM blog_posts WHERE id = $1", 1);
165
- // ^? Query<{ author_id: number; created_at: Date }, [number | null]>
166
- ```
167
-
168
- Overrides still use the interface's (camelCase) keys. The plugin's non-default options
169
- (`upperCase`, `underscoreBeforeDigits`, `underscoreBetweenUppercaseLetters`) are not modelled.
170
-
171
- For camelCase **rows**, add `{ rowKeys: "camelCase" }`. The top-level keys are renamed with
172
- `CamelCasePlugin`'s default snake_case → camelCase mapping, in the row types and at runtime.
173
- The plugin itself stays bypassed, so keys inside JSON values are left alone:
174
-
175
- ```ts
176
- const sql = createSql<DB, DefaultTypeMap, {}, { camelCase: true }>(db, { rowKeys: "camelCase" });
177
- const post = await sql("SELECT author_id, created_at FROM blog_posts WHERE id = $1", 1).executeTakeFirstOrThrow();
178
- // ^? { authorId: number; createdAt: Date }
179
- ```
50
+ ## License
180
51
 
181
- ## Limitations
182
-
183
- - **The TS → Postgres mapping is lossy.** `number`, `string` and `Date` each stand for several
184
- Postgres types; see [Overrides](#overrides). Row types are still right for the inferred type
185
- (a `float8` inferred as `int4` is `number` either way); the difference shows in expression
186
- typing (division, aggregates, operators that exist for one type only).
187
- - **JSON columns are always nullable.** kysely-codegen's `JsonValue` (and prisma-kysely's
188
- `unknown`) include `null`, so `Json` and `Json | null` cannot be told apart. The row type is
189
- `unknown` either way; only `INSERT` stops requiring the column. Override with
190
- `{ nullable: false }` to get the not-null check back.
191
- - **JSON shapes are not kept.** `JSONColumnType<{ a: number }>` becomes `jsonb`, read as
192
- `unknown` (the type map decides; TypeSQL has no per-column TS types).
193
- - **Views look like tables.** Kysely interfaces do not mark views; mark them with `$view: true`
194
- to have writes rejected.
195
- - **Defaults come from `Generated`/`GeneratedAlways` only.** A column with a default that the
196
- interface declares as a plain type is required in `INSERT`; override `{ hasDefault: true }`.
197
- - kysely-codegen options that change the select types (`--date-parser string`,
198
- `--numeric-parser number`, …) change the inference accordingly (e.g. dates as `string` become
199
- `text`): override the affected columns.
200
- - Domains, ranges, `tsvector`, network and geometric types other than `point`/`circle` are
201
- emitted by codegen as `string` and become `text`.
202
-
203
- The conversion is a flat mapped type per table with a fixed number of conditional types per
204
- column; converting a 50-table, 600-column schema costs about 20k type instantiations (~10 ms),
205
- next to the 100k+ that core spends on its first query.
206
-
207
- ## Examples
208
-
209
- [`examples/basic.ts`](examples/basic.ts) walks through the features above; it is type-checked with the package (`pnpm typecheck`).
52
+ [MIT](LICENSE)
package/dist/client.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ import type { Executor } from "@typesql/core";
2
+ import { type SqlDriver } from "@typesql/core/adapter";
1
3
  import { CompiledQuery, type QueryResult } from "kysely";
2
- import { type Executor, type SqlDriver } from "@typesql/core";
3
4
  /**
4
5
  * What the adapter uses from a `Kysely<DB>` or `Transaction<DB>`. Queries run through
5
6
  * `withoutPlugins()`: TypeSQL's row types describe what the driver returns, so result
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,IAAI;QAAE,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;IACxF,WAAW,IAAI;QAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;IACnF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAcD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,cAAc,GAAG,QAAQ,CAKrD;AAWD,yDAAyD;AACzD,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,cAAc,CAA6B,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC9B,cAAc,IAAI;QACjB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KAClE,CAAC;IACF,WAAW,IAAI;QACd,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;KAChE,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CAChC;AAwBD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,cAAc,GAAG,QAAQ,CAKrD;AAmBD,yDAAyD;AACzD,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,cAAc,CAA6B,CAAC"}
package/dist/client.js CHANGED
@@ -1,14 +1,18 @@
1
+ import { runTransaction } from "@typesql/core/adapter";
1
2
  import { CompiledQuery } from "kysely";
2
- import { runTransaction } from "@typesql/core";
3
3
  function run(db, text, values) {
4
- return db.withoutPlugins().executeQuery(CompiledQuery.raw(text, Array.from(values)));
4
+ return db
5
+ .withoutPlugins()
6
+ .executeQuery(CompiledQuery.raw(text, Array.from(values)));
5
7
  }
6
8
  /**
7
9
  * Kysely reports `numAffectedRows` for INSERT/UPDATE/DELETE/MERGE only; for other statements the
8
10
  * count is the rows returned (SELECT), or 0 (DDL), as Postgres' command tag says.
9
11
  */
10
12
  function rowCount(result) {
11
- return result.numAffectedRows === undefined ? result.rows.length : Number(result.numAffectedRows);
13
+ return result.numAffectedRows === undefined
14
+ ? result.rows.length
15
+ : Number(result.numAffectedRows);
12
16
  }
13
17
  /**
14
18
  * An `Executor` for core's `q.execute()`: runs queries on a Kysely instance (or transaction),
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,cAAc,EAAiC,MAAM,eAAe,CAAC;AAc9E,SAAS,GAAG,CAAI,EAAkB,EAAE,IAAY,EAAE,MAA0B;IAC1E,OAAO,EAAE,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAqB,CAAC,CAAC;AAC3G,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,MAA4B;IAC5C,OAAO,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACpG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAkB;IACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAU,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAI,EAAkB,EAAE,KAAa,EAAE,EAAuC;IAChG,IAAI,CAAC,EAAE,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,cAAc,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACpH,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,MAAM,GAA8B,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"client.js","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAoB,MAAM,QAAQ,CAAC;AAkBzD,SAAS,GAAG,CACX,EAAkB,EAClB,IAAY,EACZ,MAA0B;IAE1B,OAAO,EAAE;SACP,cAAc,EAAE;SAChB,YAAY,CACZ,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAqB,CAC/D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,MAA4B;IAC7C,OAAO,MAAM,CAAC,eAAe,KAAK,SAAS;QAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;QACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAkB;IAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAU,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1D,CAAC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CACnB,EAAkB,EAClB,KAAa,EACb,EAAuC;IAEvC,IAAI,CAAC,EAAE,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,cAAc,CACpB,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,EACrC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACZ,EAAE,SAAS,EAAE,WAAW,KAAK,GAAG,CAAC,EAAE,EAAE,CACrC,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,MAAM,GAA8B,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { ColDesc, PgScalarName, View } from "@typesql/core";
1
+ import type { View } from "@typesql/core";
2
+ import type { ColDesc, PgScalarName } from "@typesql/core/engine";
2
3
  /**
3
4
  * Converting a Kysely `DB` interface (kysely-codegen, prisma-kysely or hand-written) into a
4
5
  * TypeSQL schema. Kysely describes columns with TS types, TypeSQL with Postgres type names, so
@@ -111,15 +112,13 @@ type InnerIns<S, I> = S extends {
111
112
  type Ins<T> = T extends {
112
113
  readonly __insert__: infer I;
113
114
  } ? I : T;
114
- type HasDefault<T> = [
115
- Extract<T, {
116
- readonly __insert__: unknown;
117
- }>
118
- ] extends [never] ? false : undefined extends Ins<T> ? true : [Exclude<Ins<T>, null>] extends [never] ? true : false;
115
+ type HasDefault<T> = [Extract<T, {
116
+ readonly __insert__: unknown;
117
+ }>] extends [
118
+ never
119
+ ] ? false : undefined extends Ins<T> ? true : [Exclude<Ins<T>, null>] extends [never] ? true : false;
119
120
  /** The string-literal union of an enum column (or of its array elements), else never. */
120
- type LiteralUnion<S> = [
121
- S
122
- ] extends [string] ? (string extends S ? never : S) : [S] extends [readonly (infer E)[]] ? ([NonNullable<E>] extends [string] ? (string extends NonNullable<E> ? never : NonNullable<E>) : never) : never;
121
+ type LiteralUnion<S> = [S] extends [string] ? string extends S ? never : S : [S] extends [readonly (infer E)[]] ? [NonNullable<E>] extends [string] ? string extends NonNullable<E> ? never : NonNullable<E> : never : never;
123
122
  /**
124
123
  * Postgres type name from a non-null select type `S` and insert hint `H`. `E` is the name to
125
124
  * use for a string-literal union (an enum). An array select type is a Postgres array unless
@@ -127,24 +126,20 @@ type LiteralUnion<S> = [
127
126
  */
128
127
  type PgTypeOf<S, H, E extends string> = unknown extends S ? "jsonb" : [S] extends [never] ? "text" : [S] extends [readonly (infer El)[]] ? IsJsonInsert<H> extends true ? "jsonb" : `${ScalarOf<ArrayElem<NonNullable<El>>, ArrayElem<ArrayElem<H>>, E>}[]` : ScalarOf<S, H, E>;
129
128
  /** Insert type with no array in it (`string`, `RawBuilder`); `never` (`GeneratedAlways`) tells nothing. */
130
- type IsJsonInsert<H> = [
131
- H
132
- ] extends [never] ? false : [Extract<H, readonly unknown[]>] extends [never] ? true : false;
129
+ type IsJsonInsert<H> = [H] extends [never] ? false : [Extract<H, readonly unknown[]>] extends [never] ? true : false;
133
130
  /** Element type of an array (one more level for multi-dimensional arrays: Postgres types them alike). */
134
131
  type ArrayElem<T> = T extends readonly (infer E)[] ? E : T;
135
- type ScalarOf<S, H, E extends string> = unknown extends S ? "jsonb" : [S] extends [string] ? (string extends S ? StringKind<H> : E) : [S] extends [number] ? "int4" : [S] extends [bigint] ? "int8" : [S] extends [boolean] ? "bool" : [S] extends [Date] ? "timestamptz" : [S] extends [Uint8Array] ? "bytea" : [S] extends [readonly unknown[]] ? "jsonb" : [S] extends [object] ? ObjectKind<S> : "jsonb";
132
+ type ScalarOf<S, H, E extends string> = unknown extends S ? "jsonb" : [S] extends [string] ? string extends S ? StringKind<H> : E : [S] extends [number] ? "int4" : [S] extends [bigint] ? "int8" : [S] extends [boolean] ? "bool" : [S] extends [Date] ? "timestamptz" : [S] extends [Uint8Array] ? "bytea" : [S] extends [readonly unknown[]] ? "jsonb" : [S] extends [object] ? ObjectKind<S> : "jsonb";
136
133
  /** kysely-codegen selects `int8` and `numeric` as `string`; the insert type tells them apart. */
137
- type StringKind<H> = [
138
- H
139
- ] extends [never] ? "text" : bigint extends H ? "int8" : number extends H ? "numeric" : "text";
134
+ type StringKind<H> = [H] extends [never] ? "text" : bigint extends H ? "int8" : number extends H ? "numeric" : "text";
140
135
  /** Index signatures (`Record<string, …>`) are jsonb: their `keyof` is `string`, which every key check would match. */
141
136
  type ObjectKind<S> = string extends keyof S ? "jsonb" : "days" extends keyof S ? "interval" : "radius" extends keyof S ? "circle" : "x" | "y" extends keyof S ? "point" : "jsonb";
142
137
  /** Name of a `$types` entry whose union is exactly `U` (when exactly one matches), else `Default`. */
143
- type EnumName<U, Reg, Default extends string> = RegistryMatch<U, Reg> extends infer N extends string ? ([N] extends [never] ? Default : IsSingle<N> extends true ? N : Default) : Default;
138
+ type EnumName<U, Reg, Default extends string> = RegistryMatch<U, Reg> extends infer N extends string ? [N] extends [never] ? Default : IsSingle<N> extends true ? N : Default : Default;
144
139
  type RegistryMatch<U, Reg> = {
145
- [N in keyof Reg & string]: [U] extends [Reg[N]] ? ([Reg[N]] extends [U] ? N : never) : never;
140
+ [N in keyof Reg & string]: [U] extends [Reg[N]] ? [Reg[N]] extends [U] ? N : never : never;
146
141
  }[keyof Reg & string];
147
- type IsSingle<N, All = N> = N extends unknown ? ([Exclude<All, N>] extends [never] ? true : false) : never;
142
+ type IsSingle<N, All = N> = N extends unknown ? [Exclude<All, N>] extends [never] ? true : false : never;
148
143
  type OverrideType<V> = V extends string ? V : V extends {
149
144
  readonly type: infer X extends string;
150
145
  } ? X : never;
@@ -154,12 +149,16 @@ type ColumnTypeName<T, V, Reg, Default extends string> = [
154
149
  ] extends [never] ? PgTypeOf<NonNullable<Sel<T>>, Exclude<Hint<T>, null | undefined>, EnumName<LiteralUnion<NonNullable<Sel<T>>>, Reg, Default>> : OverrideType<V>;
155
150
  type Column<T, V, Reg, Default extends string> = {
156
151
  readonly type: ColumnTypeName<T, V, Reg, Default>;
157
- readonly nullable: [V] extends [{
158
- readonly nullable: infer B extends boolean;
159
- }] ? B : null extends Sel<T> ? true : false;
160
- readonly hasDefault: [V] extends [{
161
- readonly hasDefault: infer B extends boolean;
162
- }] ? B : HasDefault<T>;
152
+ readonly nullable: [V] extends [
153
+ {
154
+ readonly nullable: infer B extends boolean;
155
+ }
156
+ ] ? B : null extends Sel<T> ? true : false;
157
+ readonly hasDefault: [V] extends [
158
+ {
159
+ readonly hasDefault: infer B extends boolean;
160
+ }
161
+ ] ? B : HasDefault<T>;
163
162
  };
164
163
  type BaseName<T extends string> = T extends `${infer B}[]` ? B : T;
165
164
  /** `[name, values]` when a column's type is an enum (not a built-in type) and its values are a literal union. */
@@ -1 +1 @@
1
- {"version":3,"file":"from-kysely.d.ts","sources":["../src/from-kysely.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"from-kysely.d.ts","sources":["../src/from-kysely.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- import { type DefaultTypeMap, type RowKeys, type TransactionalSql } from "@typesql/core";
1
+ import type { DefaultTypeMap, RowKeys, TransactionalSql } from "@typesql/core";
2
2
  import { type KyselyExecutor } from "./client.js";
3
3
  import type { FromKysely, KyselyOptions, KyselyOverrides } from "./from-kysely.js";
4
- export { NoResultError, type Executor, type TransactionalSql } from "@typesql/core";
5
- export type { FromKysely, KyselyOverrides, KyselyOptions, TableOverride, ColumnOverride, InferColumn, SnakeCase } from "./from-kysely.js";
6
4
  export { executor, type KyselyExecutor } from "./client.js";
5
+ export type { ColumnOverride, FromKysely, InferColumn, KyselyOptions, KyselyOverrides, SnakeCase, TableOverride, } from "./from-kysely.js";
7
6
  /** What `createSql<DB>(db)` returns: core's `Sql` over `FromKysely<DB, ...>`, with `transaction(fn)`. */
8
7
  export type KyselySql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}, Keys extends RowKeys = "preserve"> = TransactionalSql<FromKysely<DB, Overrides, Options>, TM, Keys>;
9
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,cAAc,EAAE,KAAK,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClI,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpF,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1I,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5D,yGAAyG;AACzG,MAAM,MAAM,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,cAAc,EAAE,SAAS,SAAS,eAAe,GAAG,EAAE,EAAE,OAAO,SAAS,aAAa,GAAG,EAAE,EAAE,IAAI,SAAS,OAAO,GAAG,UAAU,IAC1J,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,cAAc,EAAE,SAAS,SAAS,eAAe,GAAG,EAAE,EAAE,OAAO,SAAS,aAAa,GAAG,EAAE,EAC3H,EAAE,EAAE,cAAc,GAAG,SAAS,EAC9B,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACzC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACtD,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,cAAc,EAAE,SAAS,SAAS,eAAe,GAAG,EAAE,EAAE,OAAO,SAAS,aAAa,GAAG,EAAE,EAC3H,EAAE,CAAC,EAAE,cAAc,EACnB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,GAC1C,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EACd,OAAO,EAEP,gBAAgB,EAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,SAAS,EACT,aAAa,GACb,MAAM,kBAAkB,CAAC;AAE1B,yGAAyG;AACzG,MAAM,MAAM,SAAS,CACpB,EAAE,EACF,EAAE,GAAG,cAAc,EACnB,SAAS,SAAS,eAAe,GAAG,EAAE,EACtC,OAAO,SAAS,aAAa,GAAG,EAAE,EAClC,IAAI,SAAS,OAAO,GAAG,UAAU,IAC9B,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CACxB,EAAE,EACF,EAAE,GAAG,cAAc,EACnB,SAAS,SAAS,eAAe,GAAG,EAAE,EACtC,OAAO,SAAS,aAAa,GAAG,EAAE,EAElC,EAAE,EAAE,cAAc,GAAG,SAAS,EAC9B,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACxC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACtD,wBAAgB,SAAS,CACxB,EAAE,EACF,EAAE,GAAG,cAAc,EACnB,SAAS,SAAS,eAAe,GAAG,EAAE,EACtC,OAAO,SAAS,aAAa,GAAG,EAAE,EAElC,EAAE,CAAC,EAAE,cAAc,EACnB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,GACzC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
- import { createTransactionalSql } from "@typesql/core";
1
+ import { createTransactionalSql } from "@typesql/core/adapter";
2
2
  import { driver } from "./client.js";
3
- export { NoResultError } from "@typesql/core";
4
3
  export { executor } from "./client.js";
5
4
  export function createSql(db, options) {
6
5
  return createTransactionalSql(db, driver, options);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA6E,MAAM,eAAe,CAAC;AAClI,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAwC,MAAM,eAAe,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAAuB,MAAM,aAAa,CAAC;AA6B5D,MAAM,UAAU,SAAS,CACvB,EAAmB,EACnB,OAAoB;IAEpB,OAAO,sBAAsB,CAAyD,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7G,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAO1D,OAAO,EAAE,QAAQ,EAAuB,MAAM,aAAa,CAAC;AAqD5D,MAAM,UAAU,SAAS,CAMxB,EAAmB,EACnB,OAAoB;IAEpB,OAAO,sBAAsB,CAI3B,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typesql/kysely",
3
- "version": "0.1.5",
3
+ "version": "0.2.1",
4
4
  "description": "Use Kysely database interfaces (kysely-codegen, prisma-kysely) as a TypeSQL schema.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,7 +28,7 @@
28
28
  "access": "public"
29
29
  },
30
30
  "dependencies": {
31
- "@typesql/core": "0.4.0"
31
+ "@typesql/core": "0.6.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "kysely": ">=0.27"
package/src/client.ts CHANGED
@@ -1,5 +1,6 @@
1
+ import type { Executor } from "@typesql/core";
2
+ import { runTransaction, type SqlDriver } from "@typesql/core/adapter";
1
3
  import { CompiledQuery, type QueryResult } from "kysely";
2
- import { runTransaction, type Executor, type SqlDriver } from "@typesql/core";
3
4
 
4
5
  /**
5
6
  * What the adapter uses from a `Kysely<DB>` or `Transaction<DB>`. Queries run through
@@ -8,13 +9,25 @@ import { runTransaction, type Executor, type SqlDriver } from "@typesql/core";
8
9
  * { rowKeys: "camelCase" })` renames the top-level keys instead, in the types too).
9
10
  */
10
11
  export interface KyselyExecutor {
11
- withoutPlugins(): { executeQuery<R>(query: CompiledQuery<R>): Promise<QueryResult<R>> };
12
- transaction(): { execute<T>(fn: (trx: KyselyExecutor) => Promise<T>): Promise<T> };
13
- readonly isTransaction: boolean;
12
+ withoutPlugins(): {
13
+ executeQuery<R>(query: CompiledQuery<R>): Promise<QueryResult<R>>;
14
+ };
15
+ transaction(): {
16
+ execute<T>(fn: (trx: KyselyExecutor) => Promise<T>): Promise<T>;
17
+ };
18
+ readonly isTransaction: boolean;
14
19
  }
15
20
 
16
- function run<R>(db: KyselyExecutor, text: string, values: readonly unknown[]): Promise<QueryResult<R>> {
17
- return db.withoutPlugins().executeQuery(CompiledQuery.raw(text, Array.from(values)) as CompiledQuery<R>);
21
+ function run<R>(
22
+ db: KyselyExecutor,
23
+ text: string,
24
+ values: readonly unknown[],
25
+ ): Promise<QueryResult<R>> {
26
+ return db
27
+ .withoutPlugins()
28
+ .executeQuery(
29
+ CompiledQuery.raw(text, Array.from(values)) as CompiledQuery<R>,
30
+ );
18
31
  }
19
32
 
20
33
  /**
@@ -22,7 +35,9 @@ function run<R>(db: KyselyExecutor, text: string, values: readonly unknown[]): P
22
35
  * count is the rows returned (SELECT), or 0 (DDL), as Postgres' command tag says.
23
36
  */
24
37
  function rowCount(result: QueryResult<unknown>): number {
25
- return result.numAffectedRows === undefined ? result.rows.length : Number(result.numAffectedRows);
38
+ return result.numAffectedRows === undefined
39
+ ? result.rows.length
40
+ : Number(result.numAffectedRows);
26
41
  }
27
42
 
28
43
  /**
@@ -30,19 +45,27 @@ function rowCount(result: QueryResult<unknown>): number {
30
45
  * without its plugins, and resolves to `{ rows, rowCount }` so `q.executeCount()` works.
31
46
  */
32
47
  export function executor(db: KyselyExecutor): Executor {
33
- return async (text, values) => {
34
- const result = await run<unknown>(db, text, values);
35
- return { rows: result.rows, rowCount: rowCount(result) };
36
- };
48
+ return async (text, values) => {
49
+ const result = await run<unknown>(db, text, values);
50
+ return { rows: result.rows, rowCount: rowCount(result) };
51
+ };
37
52
  }
38
53
 
39
54
  /**
40
55
  * Run `fn` inside `db.transaction().execute()`. A Kysely `Transaction` cannot start another one,
41
56
  * so inside one `fn` runs in a savepoint.
42
57
  */
43
- function transaction<T>(db: KyselyExecutor, depth: number, fn: (trx: KyselyExecutor) => Promise<T>): Promise<T> {
44
- if (!db.isTransaction) return db.transaction().execute(fn);
45
- return runTransaction((statement) => run(db, statement, []), () => fn(db), { savepoint: `typesql_${depth + 1}` });
58
+ function transaction<T>(
59
+ db: KyselyExecutor,
60
+ depth: number,
61
+ fn: (trx: KyselyExecutor) => Promise<T>,
62
+ ): Promise<T> {
63
+ if (!db.isTransaction) return db.transaction().execute(fn);
64
+ return runTransaction(
65
+ (statement) => run(db, statement, []),
66
+ () => fn(db),
67
+ { savepoint: `typesql_${depth + 1}` },
68
+ );
46
69
  }
47
70
 
48
71
  /** How `createSql(db)` runs queries and transactions. */
@@ -1,4 +1,5 @@
1
- import type { ColDesc, PgScalarName, View } from "@typesql/core";
1
+ import type { View } from "@typesql/core";
2
+ import type { ColDesc, PgScalarName } from "@typesql/core/engine";
2
3
 
3
4
  /**
4
5
  * Converting a Kysely `DB` interface (kysely-codegen, prisma-kysely or hand-written) into a
@@ -21,7 +22,9 @@ import type { ColDesc, PgScalarName, View } from "@typesql/core";
21
22
  export type ColumnOverride = string | Partial<ColDesc>;
22
23
 
23
24
  /** Overrides for one table: column key → `ColumnOverride`, plus `$view: true` for a view. */
24
- export type TableOverride = { readonly [column: string]: ColumnOverride | boolean };
25
+ export type TableOverride = {
26
+ readonly [column: string]: ColumnOverride | boolean;
27
+ };
25
28
 
26
29
  /**
27
30
  * Overrides for `FromKysely`, keyed by the `DB` interface's own table keys (`"auth.users"`,
@@ -56,52 +59,82 @@ export type KyselyOptions = { readonly camelCase?: boolean };
56
59
  * `"auth.users"` becomes `Schema["auth"]["users"]`; `"public.users"` becomes `Schema["users"]`.
57
60
  * String-literal unions become enums registered in `Schema["$types"]` (see `KyselyOverrides`).
58
61
  */
59
- export type FromKysely<DB, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}> = {
60
- -readonly [K in (keyof DB & string) | "$types" as OuterKey<K, Options>]-?: K extends "$types"
61
- ? EnumRegistry<DB, Overrides, Options>
62
- : K extends `public.${string}` ? TableOf<DB, K, Overrides, Options>
63
- : K extends `${infer S}.${string}` ? NamespaceOf<DB, S, Overrides, Options>
64
- : TableOf<DB, K, Overrides, Options>;
62
+ export type FromKysely<
63
+ DB,
64
+ Overrides extends KyselyOverrides = {},
65
+ Options extends KyselyOptions = {},
66
+ > = {
67
+ -readonly [K in (keyof DB & string) | "$types" as OuterKey<
68
+ K,
69
+ Options
70
+ >]-?: K extends "$types"
71
+ ? EnumRegistry<DB, Overrides, Options>
72
+ : K extends `public.${string}`
73
+ ? TableOf<DB, K, Overrides, Options>
74
+ : K extends `${infer S}.${string}`
75
+ ? NamespaceOf<DB, S, Overrides, Options>
76
+ : TableOf<DB, K, Overrides, Options>;
65
77
  };
66
78
 
67
79
  /** Kysely's default snake_case mapping (`CamelCasePlugin`'s `createSnakeCaseMapper()`), at the type level. */
68
80
  export type SnakeCase<S extends string> =
69
- S extends Lowercase<S> ? S
70
- : S extends `${infer H}${infer R}` ? SnakeRest<R, IsUpper<H>, Lowercase<H>>
71
- : S;
81
+ S extends Lowercase<S>
82
+ ? S
83
+ : S extends `${infer H}${infer R}`
84
+ ? SnakeRest<R, IsUpper<H>, Lowercase<H>>
85
+ : S;
72
86
 
73
87
  /**
74
88
  * Postgres type name, nullability and default inferred from one Kysely column type (no
75
89
  * overrides; string-literal unions are reported as `"enum"`, or `"enum[]"`).
76
90
  */
77
91
  export type InferColumn<T> = {
78
- readonly type: PgTypeOf<NonNullable<Sel<T>>, Exclude<Hint<T>, null | undefined>, "enum">;
79
- readonly nullable: null extends Sel<T> ? true : false;
80
- readonly hasDefault: HasDefault<T>;
92
+ readonly type: PgTypeOf<
93
+ NonNullable<Sel<T>>,
94
+ Exclude<Hint<T>, null | undefined>,
95
+ "enum"
96
+ >;
97
+ readonly nullable: null extends Sel<T> ? true : false;
98
+ readonly hasDefault: HasDefault<T>;
81
99
  };
82
100
 
83
101
  // ───────────────────────────── keys and namespaces ─────────────────────────────
84
102
 
85
- type Sn<S extends string, Opt> = Opt extends { readonly camelCase: true } ? SnakeCase<S> : S;
103
+ type Sn<S extends string, Opt> = Opt extends { readonly camelCase: true }
104
+ ? SnakeCase<S>
105
+ : S;
86
106
 
87
107
  type IsUpper<C extends string> = C extends Lowercase<C> ? false : true;
88
- type SnakeRest<S extends string, PrevUpper extends boolean, Acc extends string> =
89
- S extends `${infer C}${infer R}`
90
- ? SnakeRest<R, IsUpper<C>, `${Acc}${IsUpper<C> extends true ? (PrevUpper extends true ? Lowercase<C> : `_${Lowercase<C>}`) : C}`>
91
- : Acc;
108
+ type SnakeRest<
109
+ S extends string,
110
+ PrevUpper extends boolean,
111
+ Acc extends string,
112
+ > = S extends `${infer C}${infer R}`
113
+ ? SnakeRest<
114
+ R,
115
+ IsUpper<C>,
116
+ `${Acc}${IsUpper<C> extends true ? (PrevUpper extends true ? Lowercase<C> : `_${Lowercase<C>}`) : C}`
117
+ >
118
+ : Acc;
92
119
 
93
120
  /** Top-level key of a `DB` key: `"auth.users"` → `auth`, `"public.users"` → `users`. */
94
- type OuterKey<K extends string, Opt> =
95
- K extends "$types" ? K
96
- : K extends `public.${infer T}` ? Sn<T, Opt>
97
- : K extends `${infer S}.${string}` ? Sn<S, Opt>
98
- : Sn<K, Opt>;
121
+ type OuterKey<K extends string, Opt> = K extends "$types"
122
+ ? K
123
+ : K extends `public.${infer T}`
124
+ ? Sn<T, Opt>
125
+ : K extends `${infer S}.${string}`
126
+ ? Sn<S, Opt>
127
+ : Sn<K, Opt>;
99
128
 
100
129
  /** SQL name of a table key, schema-qualified unless `public`: used to name derived enums. */
101
- type SqlTableName<K extends string, Opt> = K extends `public.${infer T}` ? Sn<T, Opt> : Sn<K, Opt>;
130
+ type SqlTableName<K extends string, Opt> = K extends `public.${infer T}`
131
+ ? Sn<T, Opt>
132
+ : Sn<K, Opt>;
102
133
 
103
134
  type NamespaceOf<DB, S extends string, O, Opt> = {
104
- -readonly [K in keyof DB & `${S}.${string}` as K extends `${S}.${infer T}` ? Sn<T, Opt> : never]-?: TableOf<DB, K, O, Opt>;
135
+ -readonly [K in keyof DB & `${S}.${string}` as K extends `${S}.${infer T}`
136
+ ? Sn<T, Opt>
137
+ : never]-?: TableOf<DB, K, O, Opt>;
105
138
  };
106
139
 
107
140
  type TableOverrides<O, K> = K extends keyof O ? O[K] : undefined;
@@ -110,15 +143,33 @@ type ColumnOverrideOf<TO, C> = C extends keyof TO ? TO[C] : undefined;
110
143
  /** User enum registry (`Overrides["$types"]`), or `{}`. */
111
144
  type Registry<O> = O extends { readonly $types: infer R } ? R : {};
112
145
 
113
- type TableOf<DB, K extends string, O, Opt> =
114
- K extends keyof DB
115
- ? TableOverrides<O, K> extends { readonly $view: true }
116
- ? View<Columns<DB[K], TableOverrides<O, K>, SqlTableName<K, Opt>, Registry<O>, Opt>>
117
- : Columns<DB[K], TableOverrides<O, K>, SqlTableName<K, Opt>, Registry<O>, Opt>
118
- : never;
146
+ type TableOf<DB, K extends string, O, Opt> = K extends keyof DB
147
+ ? TableOverrides<O, K> extends { readonly $view: true }
148
+ ? View<
149
+ Columns<
150
+ DB[K],
151
+ TableOverrides<O, K>,
152
+ SqlTableName<K, Opt>,
153
+ Registry<O>,
154
+ Opt
155
+ >
156
+ >
157
+ : Columns<
158
+ DB[K],
159
+ TableOverrides<O, K>,
160
+ SqlTableName<K, Opt>,
161
+ Registry<O>,
162
+ Opt
163
+ >
164
+ : never;
119
165
 
120
166
  type Columns<Tbl, TO, TName extends string, Reg, Opt> = {
121
- -readonly [C in keyof Tbl & string as Sn<C, Opt>]-?: Column<Tbl[C], ColumnOverrideOf<TO, C>, Reg, `${TName}.${Sn<C, Opt>}`>;
167
+ -readonly [C in keyof Tbl & string as Sn<C, Opt>]-?: Column<
168
+ Tbl[C],
169
+ ColumnOverrideOf<TO, C>,
170
+ Reg,
171
+ `${TName}.${Sn<C, Opt>}`
172
+ >;
122
173
  };
123
174
 
124
175
  // ───────────────────────────── columns ─────────────────────────────
@@ -127,91 +178,159 @@ type Columns<Tbl, TO, TName extends string, Reg, Opt> = {
127
178
  type Sel<T> = T extends { readonly __select__: infer S } ? InnerSel<S> : T;
128
179
  type InnerSel<S> = S extends { readonly __select__: infer S2 } ? S2 : S;
129
180
  /** Insert type of the innermost `ColumnType`: tells `Int8`/`Numeric` apart from plain strings. */
130
- type Hint<T> = T extends { readonly __select__: infer S; readonly __insert__: infer I } ? InnerIns<S, I> : T;
181
+ type Hint<T> = T extends {
182
+ readonly __select__: infer S;
183
+ readonly __insert__: infer I;
184
+ }
185
+ ? InnerIns<S, I>
186
+ : T;
131
187
  type InnerIns<S, I> = S extends { readonly __insert__: infer I2 } ? I2 : I;
132
188
  /** Outer insert type: `undefined` in it (`Generated`) or `never` (`GeneratedAlways`) means a default. */
133
189
  type Ins<T> = T extends { readonly __insert__: infer I } ? I : T;
134
190
 
135
- type HasDefault<T> =
136
- [Extract<T, { readonly __insert__: unknown }>] extends [never] ? false
137
- : undefined extends Ins<T> ? true
138
- : [Exclude<Ins<T>, null>] extends [never] ? true
139
- : false;
191
+ type HasDefault<T> = [Extract<T, { readonly __insert__: unknown }>] extends [
192
+ never,
193
+ ]
194
+ ? false
195
+ : undefined extends Ins<T>
196
+ ? true
197
+ : [Exclude<Ins<T>, null>] extends [never]
198
+ ? true
199
+ : false;
140
200
 
141
201
  /** The string-literal union of an enum column (or of its array elements), else never. */
142
- type LiteralUnion<S> =
143
- [S] extends [string] ? (string extends S ? never : S)
144
- : [S] extends [readonly (infer E)[]] ? ([NonNullable<E>] extends [string] ? (string extends NonNullable<E> ? never : NonNullable<E>) : never)
145
- : never;
202
+ type LiteralUnion<S> = [S] extends [string]
203
+ ? string extends S
204
+ ? never
205
+ : S
206
+ : [S] extends [readonly (infer E)[]]
207
+ ? [NonNullable<E>] extends [string]
208
+ ? string extends NonNullable<E>
209
+ ? never
210
+ : NonNullable<E>
211
+ : never
212
+ : never;
146
213
 
147
214
  /**
148
215
  * Postgres type name from a non-null select type `S` and insert hint `H`. `E` is the name to
149
216
  * use for a string-literal union (an enum). An array select type is a Postgres array unless
150
217
  * the insert type has no array in it: `JSONColumnType<string[]>` inserts as `string`.
151
218
  */
152
- type PgTypeOf<S, H, E extends string> =
153
- unknown extends S ? "jsonb"
154
- : [S] extends [never] ? "text"
155
- : [S] extends [readonly (infer El)[]]
156
- ? IsJsonInsert<H> extends true ? "jsonb" : `${ScalarOf<ArrayElem<NonNullable<El>>, ArrayElem<ArrayElem<H>>, E>}[]`
157
- : ScalarOf<S, H, E>;
219
+ type PgTypeOf<S, H, E extends string> = unknown extends S
220
+ ? "jsonb"
221
+ : [S] extends [never]
222
+ ? "text"
223
+ : [S] extends [readonly (infer El)[]]
224
+ ? IsJsonInsert<H> extends true
225
+ ? "jsonb"
226
+ : `${ScalarOf<ArrayElem<NonNullable<El>>, ArrayElem<ArrayElem<H>>, E>}[]`
227
+ : ScalarOf<S, H, E>;
158
228
 
159
229
  /** Insert type with no array in it (`string`, `RawBuilder`); `never` (`GeneratedAlways`) tells nothing. */
160
- type IsJsonInsert<H> =
161
- [H] extends [never] ? false
162
- : [Extract<H, readonly unknown[]>] extends [never] ? true
163
- : false;
230
+ type IsJsonInsert<H> = [H] extends [never]
231
+ ? false
232
+ : [Extract<H, readonly unknown[]>] extends [never]
233
+ ? true
234
+ : false;
164
235
 
165
236
  /** Element type of an array (one more level for multi-dimensional arrays: Postgres types them alike). */
166
237
  type ArrayElem<T> = T extends readonly (infer E)[] ? E : T;
167
238
 
168
- type ScalarOf<S, H, E extends string> =
169
- unknown extends S ? "jsonb"
170
- : [S] extends [string] ? (string extends S ? StringKind<H> : E)
171
- : [S] extends [number] ? "int4"
172
- : [S] extends [bigint] ? "int8"
173
- : [S] extends [boolean] ? "bool"
174
- : [S] extends [Date] ? "timestamptz"
175
- : [S] extends [Uint8Array] ? "bytea"
176
- : [S] extends [readonly unknown[]] ? "jsonb"
177
- : [S] extends [object] ? ObjectKind<S>
178
- : "jsonb"; // mixed unions such as kysely-codegen's `JsonValue`
239
+ type ScalarOf<S, H, E extends string> = unknown extends S
240
+ ? "jsonb"
241
+ : [S] extends [string]
242
+ ? string extends S
243
+ ? StringKind<H>
244
+ : E
245
+ : [S] extends [number]
246
+ ? "int4"
247
+ : [S] extends [bigint]
248
+ ? "int8"
249
+ : [S] extends [boolean]
250
+ ? "bool"
251
+ : [S] extends [Date]
252
+ ? "timestamptz"
253
+ : [S] extends [Uint8Array]
254
+ ? "bytea"
255
+ : [S] extends [readonly unknown[]]
256
+ ? "jsonb"
257
+ : [S] extends [object]
258
+ ? ObjectKind<S>
259
+ : "jsonb"; // mixed unions such as kysely-codegen's `JsonValue`
179
260
 
180
261
  /** kysely-codegen selects `int8` and `numeric` as `string`; the insert type tells them apart. */
181
- type StringKind<H> =
182
- [H] extends [never] ? "text"
183
- : bigint extends H ? "int8"
184
- : number extends H ? "numeric"
185
- : "text";
262
+ type StringKind<H> = [H] extends [never]
263
+ ? "text"
264
+ : bigint extends H
265
+ ? "int8"
266
+ : number extends H
267
+ ? "numeric"
268
+ : "text";
186
269
 
187
270
  /** Index signatures (`Record<string, …>`) are jsonb: their `keyof` is `string`, which every key check would match. */
188
- type ObjectKind<S> =
189
- string extends keyof S ? "jsonb"
190
- : "days" extends keyof S ? "interval"
191
- : "radius" extends keyof S ? "circle"
192
- : "x" | "y" extends keyof S ? "point"
193
- : "jsonb";
271
+ type ObjectKind<S> = string extends keyof S
272
+ ? "jsonb"
273
+ : "days" extends keyof S
274
+ ? "interval"
275
+ : "radius" extends keyof S
276
+ ? "circle"
277
+ : "x" | "y" extends keyof S
278
+ ? "point"
279
+ : "jsonb";
194
280
 
195
281
  /** Name of a `$types` entry whose union is exactly `U` (when exactly one matches), else `Default`. */
196
282
  type EnumName<U, Reg, Default extends string> =
197
- RegistryMatch<U, Reg> extends infer N extends string ? ([N] extends [never] ? Default : IsSingle<N> extends true ? N : Default) : Default;
283
+ RegistryMatch<U, Reg> extends infer N extends string
284
+ ? [N] extends [never]
285
+ ? Default
286
+ : IsSingle<N> extends true
287
+ ? N
288
+ : Default
289
+ : Default;
198
290
  type RegistryMatch<U, Reg> = {
199
- [N in keyof Reg & string]: [U] extends [Reg[N]] ? ([Reg[N]] extends [U] ? N : never) : never;
291
+ [N in keyof Reg & string]: [U] extends [Reg[N]]
292
+ ? [Reg[N]] extends [U]
293
+ ? N
294
+ : never
295
+ : never;
200
296
  }[keyof Reg & string];
201
- type IsSingle<N, All = N> = N extends unknown ? ([Exclude<All, N>] extends [never] ? true : false) : never;
202
-
203
- type OverrideType<V> = V extends string ? V : V extends { readonly type: infer X extends string } ? X : never;
297
+ type IsSingle<N, All = N> = N extends unknown
298
+ ? [Exclude<All, N>] extends [never]
299
+ ? true
300
+ : false
301
+ : never;
302
+
303
+ type OverrideType<V> = V extends string
304
+ ? V
305
+ : V extends { readonly type: infer X extends string }
306
+ ? X
307
+ : never;
204
308
 
205
309
  /** Final type name of a column: the override's, else the inferred one. */
206
- type ColumnTypeName<T, V, Reg, Default extends string> =
207
- [OverrideType<V>] extends [never]
208
- ? PgTypeOf<NonNullable<Sel<T>>, Exclude<Hint<T>, null | undefined>, EnumName<LiteralUnion<NonNullable<Sel<T>>>, Reg, Default>>
209
- : OverrideType<V>;
310
+ type ColumnTypeName<T, V, Reg, Default extends string> = [
311
+ OverrideType<V>,
312
+ ] extends [never]
313
+ ? PgTypeOf<
314
+ NonNullable<Sel<T>>,
315
+ Exclude<Hint<T>, null | undefined>,
316
+ EnumName<LiteralUnion<NonNullable<Sel<T>>>, Reg, Default>
317
+ >
318
+ : OverrideType<V>;
210
319
 
211
320
  type Column<T, V, Reg, Default extends string> = {
212
- readonly type: ColumnTypeName<T, V, Reg, Default>;
213
- readonly nullable: [V] extends [{ readonly nullable: infer B extends boolean }] ? B : null extends Sel<T> ? true : false;
214
- readonly hasDefault: [V] extends [{ readonly hasDefault: infer B extends boolean }] ? B : HasDefault<T>;
321
+ readonly type: ColumnTypeName<T, V, Reg, Default>;
322
+ readonly nullable: [V] extends [
323
+ { readonly nullable: infer B extends boolean },
324
+ ]
325
+ ? B
326
+ : null extends Sel<T>
327
+ ? true
328
+ : false;
329
+ readonly hasDefault: [V] extends [
330
+ { readonly hasDefault: infer B extends boolean },
331
+ ]
332
+ ? B
333
+ : HasDefault<T>;
215
334
  };
216
335
 
217
336
  // ───────────────────────────── enums ─────────────────────────────
@@ -219,20 +338,39 @@ type Column<T, V, Reg, Default extends string> = {
219
338
  type BaseName<T extends string> = T extends `${infer B}[]` ? B : T;
220
339
 
221
340
  /** `[name, values]` when a column's type is an enum (not a built-in type) and its values are a literal union. */
222
- type EnumEntry<T, V, Reg, Default extends string> =
223
- [LiteralUnion<NonNullable<Sel<T>>>] extends [never] ? never
224
- : BaseName<ColumnTypeName<T, V, Reg, Default>> extends infer N extends string
225
- ? N extends PgScalarName ? never : [N, LiteralUnion<NonNullable<Sel<T>>>]
226
- : never;
341
+ type EnumEntry<T, V, Reg, Default extends string> = [
342
+ LiteralUnion<NonNullable<Sel<T>>>,
343
+ ] extends [never]
344
+ ? never
345
+ : BaseName<ColumnTypeName<T, V, Reg, Default>> extends infer N extends string
346
+ ? N extends PgScalarName
347
+ ? never
348
+ : [N, LiteralUnion<NonNullable<Sel<T>>>]
349
+ : never;
227
350
 
228
351
  type TableEnums<Tbl, TO, TName extends string, Reg, Opt> = {
229
- [C in keyof Tbl & string]-?: EnumEntry<Tbl[C], ColumnOverrideOf<TO, C>, Reg, `${TName}.${Sn<C, Opt>}`>;
352
+ [C in keyof Tbl & string]-?: EnumEntry<
353
+ Tbl[C],
354
+ ColumnOverrideOf<TO, C>,
355
+ Reg,
356
+ `${TName}.${Sn<C, Opt>}`
357
+ >;
230
358
  }[keyof Tbl & string];
231
359
 
232
360
  type EnumEntries<DB, O, Opt> =
233
- | { [N in keyof Registry<O> & string]: [N, Registry<O>[N]] }[keyof Registry<O> & string]
234
- | { [K in keyof DB & string]-?: TableEnums<DB[K], TableOverrides<O, K>, SqlTableName<K, Opt>, Registry<O>, Opt> }[keyof DB & string];
361
+ | {
362
+ [N in keyof Registry<O> & string]: [N, Registry<O>[N]];
363
+ }[keyof Registry<O> & string]
364
+ | {
365
+ [K in keyof DB & string]-?: TableEnums<
366
+ DB[K],
367
+ TableOverrides<O, K>,
368
+ SqlTableName<K, Opt>,
369
+ Registry<O>,
370
+ Opt
371
+ >;
372
+ }[keyof DB & string];
235
373
 
236
374
  type EnumRegistry<DB, O, Opt> = {
237
- [E in EnumEntries<DB, O, Opt> as E[0]]: E[1];
375
+ [E in EnumEntries<DB, O, Opt> as E[0]]: E[1];
238
376
  };
package/src/index.ts CHANGED
@@ -1,14 +1,36 @@
1
- import { createTransactionalSql, type DefaultTypeMap, type RowKeys, type SqlOptions, type TransactionalSql } from "@typesql/core";
1
+ import type {
2
+ DefaultTypeMap,
3
+ RowKeys,
4
+ SqlOptions,
5
+ TransactionalSql,
6
+ } from "@typesql/core";
7
+ import { createTransactionalSql } from "@typesql/core/adapter";
2
8
  import { driver, type KyselyExecutor } from "./client.js";
3
- import type { FromKysely, KyselyOptions, KyselyOverrides } from "./from-kysely.js";
9
+ import type {
10
+ FromKysely,
11
+ KyselyOptions,
12
+ KyselyOverrides,
13
+ } from "./from-kysely.js";
4
14
 
5
- export { NoResultError, type Executor, type TransactionalSql } from "@typesql/core";
6
- export type { FromKysely, KyselyOverrides, KyselyOptions, TableOverride, ColumnOverride, InferColumn, SnakeCase } from "./from-kysely.js";
7
15
  export { executor, type KyselyExecutor } from "./client.js";
16
+ export type {
17
+ ColumnOverride,
18
+ FromKysely,
19
+ InferColumn,
20
+ KyselyOptions,
21
+ KyselyOverrides,
22
+ SnakeCase,
23
+ TableOverride,
24
+ } from "./from-kysely.js";
8
25
 
9
26
  /** What `createSql<DB>(db)` returns: core's `Sql` over `FromKysely<DB, ...>`, with `transaction(fn)`. */
10
- export type KyselySql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}, Keys extends RowKeys = "preserve"> =
11
- TransactionalSql<FromKysely<DB, Overrides, Options>, TM, Keys>;
27
+ export type KyselySql<
28
+ DB,
29
+ TM = DefaultTypeMap,
30
+ Overrides extends KyselyOverrides = {},
31
+ Options extends KyselyOptions = {},
32
+ Keys extends RowKeys = "preserve",
33
+ > = TransactionalSql<FromKysely<DB, Overrides, Options>, TM, Keys>;
12
34
 
13
35
  /**
14
36
  * `createSql` from core with a Kysely `DB` interface as the schema:
@@ -25,17 +47,36 @@ export type KyselySql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides
25
47
  *
26
48
  * const sql = createSql<DB, DefaultTypeMap, {}, { camelCase: true }>(db, { rowKeys: "camelCase" });
27
49
  */
28
- export function createSql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}>(
29
- db: KyselyExecutor | undefined,
30
- options: { readonly rowKeys: "camelCase" },
50
+ export function createSql<
51
+ DB,
52
+ TM = DefaultTypeMap,
53
+ Overrides extends KyselyOverrides = {},
54
+ Options extends KyselyOptions = {},
55
+ >(
56
+ db: KyselyExecutor | undefined,
57
+ options: { readonly rowKeys: "camelCase" },
31
58
  ): KyselySql<DB, TM, Overrides, Options, "camelCase">;
32
- export function createSql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}>(
33
- db?: KyselyExecutor,
34
- options?: { readonly rowKeys?: "preserve" },
59
+ export function createSql<
60
+ DB,
61
+ TM = DefaultTypeMap,
62
+ Overrides extends KyselyOverrides = {},
63
+ Options extends KyselyOptions = {},
64
+ >(
65
+ db?: KyselyExecutor,
66
+ options?: { readonly rowKeys?: "preserve" },
35
67
  ): KyselySql<DB, TM, Overrides, Options>;
36
- export function createSql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}>(
37
- db?: KyselyExecutor,
38
- options?: SqlOptions,
68
+ export function createSql<
69
+ DB,
70
+ TM = DefaultTypeMap,
71
+ Overrides extends KyselyOverrides = {},
72
+ Options extends KyselyOptions = {},
73
+ >(
74
+ db?: KyselyExecutor,
75
+ options?: SqlOptions,
39
76
  ): KyselySql<DB, TM, Overrides, Options, RowKeys> {
40
- return createTransactionalSql<FromKysely<DB, Overrides, Options>, TM, KyselyExecutor>(db, driver, options);
77
+ return createTransactionalSql<
78
+ FromKysely<DB, Overrides, Options>,
79
+ TM,
80
+ KyselyExecutor
81
+ >(db, driver, options);
41
82
  }