@typesql/kysely 0.2.8 → 0.3.0

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,27 @@
1
1
  # @typesql/kysely
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Breaking: TypeSQL is split into a dialect-neutral core and a PostgreSQL dialect. `@typesql/core` keeps what dialects share (`createSql`, queries, fragments, executors, row keys, transactions, migrations, the schema markers `Col`, `Nullable`, `Generated`, `View`, … and the type cache) and adds a dialect contract. PostgreSQL moves to `@typesql/core/postgres`: create a `sql` with `createSql<DB>(postgres, executor?)`, import `Json`, `PgCatalog`, `migrations()`, type maps and the function catalog from `@typesql/core/postgres` (which also re-exports the schema markers), and the engine types from `@typesql/core/postgres/engine` (was `@typesql/core/engine`). The Kysely, Drizzle and Prisma packages take the dialect the same way and read the schema from the client's type: `createSql(postgres, db)` (`createSql<DB>(postgres, db)` still picks a schema explicitly). `typesql introspect` and the Prisma generator import the column helpers from `@typesql/core/postgres` by default.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies:
12
+ - @typesql/core@0.8.0
13
+
14
+ ## 0.2.9
15
+
16
+ ### Patch Changes
17
+
18
+ - Validate packages against PostgreSQL behavior and built outputs instead of hand-written test suites.
19
+
20
+ - Reorganize core internals and remove source comments and inline API documentation without changing SQL behavior.
21
+
22
+ - Updated dependencies:
23
+ - @typesql/core@0.7.6
24
+
3
25
  ## 0.2.8
4
26
 
5
27
  ### Patch Changes
package/README.md CHANGED
@@ -12,9 +12,10 @@ npm install @typesql/core @typesql/kysely kysely
12
12
 
13
13
  ```ts
14
14
  import { createSql } from "@typesql/kysely";
15
- import type { DB } from "./db"; // the interface you pass to new Kysely<DB>()
15
+ import { postgres } from "@typesql/core/postgres";
16
+ import type { DB } from "./db";
16
17
 
17
- const sql = createSql<DB>(db); // db: your Kysely<DB> instance, or a transaction
18
+ const sql = createSql(postgres, db);
18
19
 
19
20
  const posts = await sql(
20
21
  `SELECT u.email, p.title
@@ -22,23 +23,22 @@ const posts = await sql(
22
23
  WHERE u.id = $1`,
23
24
  1,
24
25
  ).execute();
25
- // { email: string; title: string }[]
26
26
 
27
27
  await sql.transaction(async (tx) => {
28
28
  await tx("UPDATE posts SET published = true WHERE author_id = $1", 1).execute();
29
29
  });
30
30
  ```
31
31
 
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.
32
+ [Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/JYWwDg9gTgLgBAbzpAzjA5lApiuBfOAMyghDgCIABGATzBwEcAbAegGNosXUNsVyA3AChQkWIjhtsAQxhYAys3xESZKrXopmLANY0UWJjUEjw0eAiEBIDVjgBhCEwCuIAHYAVOlgA0123AA4lhuWFCyWAAmflYA0vqGNDEAChBomDgAIsDSTFhsMH4ExKQUegZGJqLmEqlOyiVqYOgmQgEAkm4wABxwALwOTq6e3gA81mhQwG7oMQBGwOjT8AA+cG6uc2Fwa5PTs9YLS10765vbuzBTM0IAfMIBHqA4MNLg-YMu7l70o5kRPjg-zkpz2M0BwLsl2u6HubW8cAAshAIJEPuQABbSMBgYyncgoaSRVrLMKEaRsOyZABCiGszgMUBQAC46VYrMBIqzgqFwnJIqMNiAtlA4eysCBpMAmKywehhOyQCiuUjlacNkwmAqrFIsBFIgB9WTckJhfWjJ4gF5vMBivAKngstkclU8s380adHpiqzSZwwDHQA2c1lCkXamDAGB5WVXfbasDOOZMYAoDFRE2881zFF5aRuO3CPBCIQcNxoOCROYfUIAdzg8QqND+1NuAApLFZIjk8gVQ1h66l0nxsrl8jAO8hc-3B7m2wBKfDzorz4RlitaJgfXURRRMNs8DIoQFV1cl9fwSLhQgwXADaS1qWXubWAB0FXHADFVG3yI7yPOb4fgUbYANrkJy5CAuQkbRlg5AALqAVYr61um2C-omyapumxLQX0UFELkBjIa+WAAB75P6WALsIpYQOW8B5pEYQ5tIUBogMm5ttYAAG8gAKIADICfYHhwM4ZGStKgKSUqqKAhwzhdAer6couACC8hTmgx5CHABmGUZxkmaZhnhG4OgLnAADyABqAkAEpwG2NmOZkTlwNSACakgQMpE5gGpkSLh58j2Jp2lgEwFJYPpZkJSZn6OTZiISYyuDOHAImfuJABSNntAAcjpt7ILZJVBX6AZBpyHySXVGlFZkyCvlhKZplE8WJT1cAAOoABJOQJEmvvJnFwAAJAAjN1vUJYEKUAKrJF5vkNZEvExJi2K4lBQhnhecAWToUQfA+T5wMxrEQOxkRkZRbDUbRJYXVGlZzK+Vz5oSBTAAxC4PVRchttIKA0G4bAuVc5GLn0txsm98Aw9YKHOGAkQRB40jJjRf5pLeAGo++WATkg7U4RmcBXM4dh4MhKFoWEePVYGUDBnhFAEYC00M0DT0g2evqPu9O5yHuB4E0egIw-OPHsrxHkiR4I3JalpW4INw1wKztUTTNcBNS1RU2eJFOdZtMRWNNMTzvzz1nvTdHcfxwmieJdVq2lDJhJrQ2OSN40fDNW0UPmmDGGeQA) <span data-playground="kysely"></span> to hover the types and edit the SQL, with nothing to install.
33
33
 
34
34
  ## Pin column types
35
35
 
36
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:
37
37
 
38
38
  ```ts
39
- import type { DefaultTypeMap } from "@typesql/core";
39
+ import type { DefaultTypeMap } from "@typesql/core/postgres";
40
40
 
41
- const sql = createSql<DB, DefaultTypeMap, { posts: { score: "float8" } }>(db);
41
+ const sql = createSql<DB, DefaultTypeMap, { posts: { score: "float8" } }>(postgres, db);
42
42
  ```
43
43
 
44
44
  For an interface generated with `kysely-codegen --camel-case`, pass `{ camelCase: true }` as the fourth type argument.
package/dist/client.d.ts CHANGED
@@ -1,12 +1,6 @@
1
1
  import type { Executor } from "@typesql/core";
2
2
  import { type SqlDriver } from "@typesql/core/adapter";
3
3
  import { CompiledQuery, type QueryResult } from "kysely";
4
- /**
5
- * What the adapter uses from a `Kysely<DB>` or `Transaction<DB>`. Queries run through
6
- * `withoutPlugins()`: TypeSQL's row types describe what the driver returns, so result
7
- * transformers such as `CamelCasePlugin` must not rename the columns (`createSql(db,
8
- * { rowKeys: "camelCase" })` renames the top-level keys instead, in the types too).
9
- */
10
4
  export interface KyselyExecutor {
11
5
  withoutPlugins(): {
12
6
  executeQuery<R>(query: CompiledQuery<R>): Promise<QueryResult<R>>;
@@ -16,11 +10,6 @@ export interface KyselyExecutor {
16
10
  };
17
11
  readonly isTransaction: boolean;
18
12
  }
19
- /**
20
- * An `Executor` for core's `q.execute()`: runs queries on a Kysely instance (or transaction),
21
- * without its plugins, and resolves to `{ rows, rowCount }` so `q.executeCount()` works.
22
- */
23
13
  export declare function executor(db: KyselyExecutor): Executor;
24
- /** How `createSql(db)` runs queries and transactions. */
25
14
  export declare const driver: SqlDriver<KyselyExecutor>;
26
15
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","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,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;AAoBD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,cAAc,GAAG,QAAQ,CAKrD;AAeD,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,cAAc,CAA6B,CAAC"}
package/dist/client.js CHANGED
@@ -5,34 +5,21 @@ function run(db, text, values) {
5
5
  .withoutPlugins()
6
6
  .executeQuery(CompiledQuery.raw(text, Array.from(values)));
7
7
  }
8
- /**
9
- * Kysely reports `numAffectedRows` for INSERT/UPDATE/DELETE/MERGE only; for other statements the
10
- * count is the rows returned (SELECT), or 0 (DDL), as Postgres' command tag says.
11
- */
12
8
  function rowCount(result) {
13
9
  return result.numAffectedRows === undefined
14
10
  ? result.rows.length
15
11
  : Number(result.numAffectedRows);
16
12
  }
17
- /**
18
- * An `Executor` for core's `q.execute()`: runs queries on a Kysely instance (or transaction),
19
- * without its plugins, and resolves to `{ rows, rowCount }` so `q.executeCount()` works.
20
- */
21
13
  export function executor(db) {
22
14
  return async (text, values) => {
23
15
  const result = await run(db, text, values);
24
16
  return { rows: result.rows, rowCount: rowCount(result) };
25
17
  };
26
18
  }
27
- /**
28
- * Run `fn` inside `db.transaction().execute()`. A Kysely `Transaction` cannot start another one,
29
- * so inside one `fn` runs in a savepoint.
30
- */
31
19
  function transaction(db, depth, fn) {
32
20
  if (!db.isTransaction)
33
21
  return db.transaction().execute(fn);
34
22
  return runTransaction((statement) => run(db, statement, []), () => fn(db), { savepoint: `typesql_${depth + 1}` });
35
23
  }
36
- /** How `createSql(db)` runs queries and transactions. */
37
24
  export const driver = { executor, transaction };
38
25
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","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
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAoB,MAAM,QAAQ,CAAC;AAYzD,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,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,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,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,MAAM,CAAC,MAAM,MAAM,GAA8B,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
@@ -1,69 +1,19 @@
1
- import type { View } from "@typesql/core";
2
- import type { ColDesc, PgScalarName } from "@typesql/core/engine";
3
- /**
4
- * Converting a Kysely `DB` interface (kysely-codegen, prisma-kysely or hand-written) into a
5
- * TypeSQL schema. Kysely describes columns with TS types, TypeSQL with Postgres type names, so
6
- * the conversion reads the TS shape back into a type name. That is lossy (`number` may be
7
- * `int4` or `float8`); `Overrides` pins the exact type per column.
8
- *
9
- * Every alias here is flat: one mapped type per table and a fixed number of conditionals per
10
- * column, with no recursion over the schema (only `SnakeCase` recurses, per identifier, when
11
- * `camelCase` is on).
12
- */
13
- /**
14
- * Per-column override: a Postgres type name (`"int8"`, `"uuid"`, `"mood"`, `"text[]"`), or a
15
- * partial descriptor (`{ type?: "float8"; nullable?: false; hasDefault?: true }`). Unset
16
- * fields keep the inferred value.
17
- */
1
+ import type { View } from "@typesql/core/postgres";
2
+ import type { ColDesc, PgScalarName } from "@typesql/core/postgres/engine";
18
3
  export type ColumnOverride = string | Partial<ColDesc>;
19
- /** Overrides for one table: column key → `ColumnOverride`, plus `$view: true` for a view. */
20
4
  export type TableOverride = {
21
5
  readonly [column: string]: ColumnOverride | boolean;
22
6
  };
23
- /**
24
- * Overrides for `FromKysely`, keyed by the `DB` interface's own table keys (`"auth.users"`,
25
- * `users`) and column keys (as spelled in the interface, before any `camelCase` mapping).
26
- *
27
- * {
28
- * users: { id: "int8"; score: "float8"; created_at: { type: "timestamp"; hasDefault: false } };
29
- * active_users: { $view: true };
30
- * $types: { mood: Mood; "auth.role": AuthRole };
31
- * }
32
- *
33
- * `$view: true` declares a table key as a view (read-only). `$types` names enums: a column whose
34
- * values are exactly one entry's union gets that entry's name (so the same enum is one type
35
- * across tables, as in Postgres).
36
- */
37
7
  export type KyselyOverrides = {
38
8
  readonly [table: string]: TableOverride;
39
9
  };
40
- /**
41
- * Options for `FromKysely`.
42
- * - `camelCase: true`: the interface was generated with `kysely-codegen --camel-case` (or is used
43
- * with `CamelCasePlugin`); keys are mapped back to snake_case the way `CamelCasePlugin` does by
44
- * default (`createdAt` → `created_at`, `userID` → `user_id`). SQL text uses the real names.
45
- */
46
10
  export type KyselyOptions = {
47
11
  readonly camelCase?: boolean;
48
12
  };
49
- /**
50
- * A TypeSQL schema from a Kysely `DB` interface.
51
- *
52
- * type Schema = FromKysely<DB, { users: { id: "int8" } }>;
53
- * const sql = createSql<Schema>(); // TypeSQL's createSql
54
- *
55
- * `"auth.users"` becomes `Schema["auth"]["users"]`; `"public.users"` becomes `Schema["users"]`.
56
- * String-literal unions become enums registered in `Schema["$types"]` (see `KyselyOverrides`).
57
- */
58
13
  export type FromKysely<DB, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}> = {
59
14
  -readonly [K in (keyof DB & string) | "$types" as OuterKey<K, Options>]-?: K extends "$types" ? EnumRegistry<DB, Overrides, Options> : K extends `public.${string}` ? TableOf<DB, K, Overrides, Options> : K extends `${infer S}.${string}` ? NamespaceOf<DB, S, Overrides, Options> : TableOf<DB, K, Overrides, Options>;
60
15
  };
61
- /** Kysely's default snake_case mapping (`CamelCasePlugin`'s `createSnakeCaseMapper()`), at the type level. */
62
16
  export type SnakeCase<S extends string> = S extends Lowercase<S> ? S : S extends `${infer H}${infer R}` ? SnakeRest<R, IsUpper<H>, Lowercase<H>> : S;
63
- /**
64
- * Postgres type name, nullability and default inferred from one Kysely column type (no
65
- * overrides; string-literal unions are reported as `"enum"`, or `"enum[]"`).
66
- */
67
17
  export type InferColumn<T> = {
68
18
  readonly type: PgTypeOf<NonNullable<Sel<T>>, Exclude<Hint<T>, null | undefined>, "enum">;
69
19
  readonly nullable: null extends Sel<T> ? true : false;
@@ -74,16 +24,13 @@ type Sn<S extends string, Opt> = Opt extends {
74
24
  } ? SnakeCase<S> : S;
75
25
  type IsUpper<C extends string> = C extends Lowercase<C> ? false : true;
76
26
  type SnakeRest<S extends string, PrevUpper extends boolean, Acc extends string> = S extends `${infer C}${infer R}` ? SnakeRest<R, IsUpper<C>, `${Acc}${IsUpper<C> extends true ? (PrevUpper extends true ? Lowercase<C> : `_${Lowercase<C>}`) : C}`> : Acc;
77
- /** Top-level key of a `DB` key: `"auth.users"` → `auth`, `"public.users"` → `users`. */
78
27
  type OuterKey<K extends string, Opt> = K extends "$types" ? K : K extends `public.${infer T}` ? Sn<T, Opt> : K extends `${infer S}.${string}` ? Sn<S, Opt> : Sn<K, Opt>;
79
- /** SQL name of a table key, schema-qualified unless `public`: used to name derived enums. */
80
28
  type SqlTableName<K extends string, Opt> = K extends `public.${infer T}` ? Sn<T, Opt> : Sn<K, Opt>;
81
29
  type NamespaceOf<DB, S extends string, O, Opt> = {
82
30
  -readonly [K in keyof DB & `${S}.${string}` as K extends `${S}.${infer T}` ? Sn<T, Opt> : never]-?: TableOf<DB, K, O, Opt>;
83
31
  };
84
32
  type TableOverrides<O, K> = K extends keyof O ? O[K] : undefined;
85
33
  type ColumnOverrideOf<TO, C> = C extends keyof TO ? TO[C] : undefined;
86
- /** User enum registry (`Overrides["$types"]`), or `{}`. */
87
34
  type Registry<O> = O extends {
88
35
  readonly $types: infer R;
89
36
  } ? R : {};
@@ -93,14 +40,12 @@ type TableOf<DB, K extends string, O, Opt> = K extends keyof DB ? TableOverrides
93
40
  type Columns<Tbl, TO, TName extends string, Reg, Opt> = {
94
41
  -readonly [C in keyof Tbl & string as Sn<C, Opt>]-?: Column<Tbl[C], ColumnOverrideOf<TO, C>, Reg, `${TName}.${Sn<C, Opt>}`>;
95
42
  };
96
- /** Select type of a column: `ColumnType<S, …>` → S (one nested `ColumnType` is unwrapped, e.g. `GeneratedAlways<Int8>`). */
97
43
  type Sel<T> = T extends {
98
44
  readonly __select__: infer S;
99
45
  } ? InnerSel<S> : T;
100
46
  type InnerSel<S> = S extends {
101
47
  readonly __select__: infer S2;
102
48
  } ? S2 : S;
103
- /** Insert type of the innermost `ColumnType`: tells `Int8`/`Numeric` apart from plain strings. */
104
49
  type Hint<T> = T extends {
105
50
  readonly __select__: infer S;
106
51
  readonly __insert__: infer I;
@@ -108,7 +53,6 @@ type Hint<T> = T extends {
108
53
  type InnerIns<S, I> = S extends {
109
54
  readonly __insert__: infer I2;
110
55
  } ? I2 : I;
111
- /** Outer insert type: `undefined` in it (`Generated`) or `never` (`GeneratedAlways`) means a default. */
112
56
  type Ins<T> = T extends {
113
57
  readonly __insert__: infer I;
114
58
  } ? I : T;
@@ -117,24 +61,13 @@ type HasDefault<T> = [Extract<T, {
117
61
  }>] extends [
118
62
  never
119
63
  ] ? false : undefined extends Ins<T> ? true : [Exclude<Ins<T>, null>] extends [never] ? true : false;
120
- /** The string-literal union of an enum column (or of its array elements), else never. */
121
64
  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;
122
- /**
123
- * Postgres type name from a non-null select type `S` and insert hint `H`. `E` is the name to
124
- * use for a string-literal union (an enum). An array select type is a Postgres array unless
125
- * the insert type has no array in it: `JSONColumnType<string[]>` inserts as `string`.
126
- */
127
65
  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>;
128
- /** Insert type with no array in it (`string`, `RawBuilder`); `never` (`GeneratedAlways`) tells nothing. */
129
66
  type IsJsonInsert<H> = [H] extends [never] ? false : [Extract<H, readonly unknown[]>] extends [never] ? true : false;
130
- /** Element type of an array (one more level for multi-dimensional arrays: Postgres types them alike). */
131
67
  type ArrayElem<T> = T extends readonly (infer E)[] ? E : T;
132
68
  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";
133
- /** kysely-codegen selects `int8` and `numeric` as `string`; the insert type tells them apart. */
134
69
  type StringKind<H> = [H] extends [never] ? "text" : bigint extends H ? "int8" : number extends H ? "numeric" : "text";
135
- /** Index signatures (`Record<string, …>`) are jsonb: their `keyof` is `string`, which every key check would match. */
136
70
  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";
137
- /** Name of a `$types` entry whose union is exactly `U` (when exactly one matches), else `Default`. */
138
71
  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;
139
72
  type RegistryMatch<U, Reg> = {
140
73
  [N in keyof Reg & string]: [U] extends [Reg[N]] ? [Reg[N]] extends [U] ? N : never : never;
@@ -143,7 +76,6 @@ type IsSingle<N, All = N> = N extends unknown ? [Exclude<All, N>] extends [never
143
76
  type OverrideType<V> = V extends string ? V : V extends {
144
77
  readonly type: infer X extends string;
145
78
  } ? X : never;
146
- /** Final type name of a column: the override's, else the inferred one. */
147
79
  type ColumnTypeName<T, V, Reg, Default extends string> = [
148
80
  OverrideType<V>
149
81
  ] extends [never] ? PgTypeOf<NonNullable<Sel<T>>, Exclude<Hint<T>, null | undefined>, EnumName<LiteralUnion<NonNullable<Sel<T>>>, Reg, Default>> : OverrideType<V>;
@@ -161,7 +93,6 @@ type Column<T, V, Reg, Default extends string> = {
161
93
  ] ? B : HasDefault<T>;
162
94
  };
163
95
  type BaseName<T extends string> = T extends `${infer B}[]` ? B : T;
164
- /** `[name, values]` when a column's type is an enum (not a built-in type) and its values are a literal union. */
165
96
  type EnumEntry<T, V, Reg, Default extends string> = [
166
97
  LiteralUnion<NonNullable<Sel<T>>>
167
98
  ] extends [never] ? never : BaseName<ColumnTypeName<T, V, Reg, Default>> extends infer N extends string ? N extends PgScalarName ? never : [N, LiteralUnion<NonNullable<Sel<T>>>] : never;
@@ -1 +1 @@
1
- {"version":3,"file":"from-kysely.d.ts","sourceRoot":"","sources":["../src/from-kysely.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAElE;;;;;;;;;GASG;AAIH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvD,6FAA6F;AAC7F,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC;CACpD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,CACrB,EAAE,EACF,SAAS,SAAS,eAAe,GAAG,EAAE,EACtC,OAAO,SAAS,aAAa,GAAG,EAAE,IAC/B;IACH,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,QAAQ,IAAI,QAAQ,CACzD,CAAC,EACD,OAAO,CACP,CAAC,CAAC,GAAG,CAAC,SAAS,QAAQ,GACrB,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,GACpC,CAAC,SAAS,UAAU,MAAM,EAAE,GAC3B,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAClC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,GAC/B,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GACtC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC;CACvC,CAAC;AAEF,8GAA8G;AAC9G,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IACrC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GACnB,CAAC,GACD,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC/B,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GACtC,CAAC,CAAC;AAEP;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CACtB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,EAClC,MAAM,CACN,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC;AAIF,KAAK,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS;IAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CAAE,GACtE,SAAS,CAAC,CAAC,CAAC,GACZ,CAAC,CAAC;AAEL,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACvE,KAAK,SAAS,CACb,CAAC,SAAS,MAAM,EAChB,SAAS,SAAS,OAAO,EACzB,GAAG,SAAS,MAAM,IACf,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACjC,SAAS,CACT,CAAC,EACD,OAAO,CAAC,CAAC,CAAC,EACV,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,SAAS,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CACrG,GACA,GAAG,CAAC;AAEP,wFAAwF;AACxF,KAAK,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,QAAQ,GACtD,CAAC,GACD,CAAC,SAAS,UAAU,MAAM,CAAC,EAAE,GAC5B,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GACV,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,GAC/B,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GACV,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEhB,6FAA6F;AAC7F,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,UAAU,MAAM,CAAC,EAAE,GACrE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GACV,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEd,KAAK,WAAW,CAAC,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI;IAChD,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,MAAM,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,GACvE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GACV,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;CACnC,CAAC;AAEF,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACjE,KAAK,gBAAgB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAEtE,2DAA2D;AAC3D,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AAEnE,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,MAAM,EAAE,GAC5D,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GACpD,IAAI,CACJ,OAAO,CACN,EAAE,CAAC,CAAC,CAAC,EACL,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EACpB,QAAQ,CAAC,CAAC,CAAC,EACX,GAAG,CACH,CACD,GACA,OAAO,CACP,EAAE,CAAC,CAAC,CAAC,EACL,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EACpB,QAAQ,CAAC,CAAC,CAAC,EACX,GAAG,CACH,GACD,KAAK,CAAC;AAET,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,SAAS,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IACvD,CAAC,UAAU,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAC1D,GAAG,CAAC,CAAC,CAAC,EACN,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EACvB,GAAG,EACH,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACxB;CACD,CAAC;AAIF,4HAA4H;AAC5H,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3E,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACxE,kGAAkG;AAClG,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;CAC7B,GACE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACd,CAAC,CAAC;AACL,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3E,yGAAyG;AACzG,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjE,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,SAAS;IAC3E,KAAK;CACL,GACE,KAAK,GACL,SAAS,SAAS,GAAG,CAAC,CAAC,CAAC,GACvB,IAAI,GACJ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACtC,IAAI,GACJ,KAAK,CAAC;AAEX,yFAAyF;AACzF,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GACxC,MAAM,SAAS,CAAC,GACf,KAAK,GACL,CAAC,GACF,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GACjC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAChC,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,GAC5B,KAAK,GACL,WAAW,CAAC,CAAC,CAAC,GACf,KAAK,GACN,KAAK,CAAC;AAEV;;;;GAIG;AACH,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,OAAO,SAAS,CAAC,GACtD,OAAO,GACP,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAClB,MAAM,GACN,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAClC,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,OAAO,GACP,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GACxE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEvB,2GAA2G;AAC3G,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACvC,KAAK,GACL,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC/C,IAAI,GACJ,KAAK,CAAC;AAEV,yGAAyG;AACzG,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3D,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,OAAO,SAAS,CAAC,GACtD,OAAO,GACP,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GACnB,MAAM,SAAS,CAAC,GACf,UAAU,CAAC,CAAC,CAAC,GACb,CAAC,GACF,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GACnB,MAAM,GACN,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GACnB,MAAM,GACN,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GACpB,MAAM,GACN,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GACjB,aAAa,GACb,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GACvB,OAAO,GACP,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,GAC/B,OAAO,GACP,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GACnB,UAAU,CAAC,CAAC,CAAC,GACb,OAAO,CAAC;AAEnB,iGAAiG;AACjG,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACrC,MAAM,GACN,MAAM,SAAS,CAAC,GACf,MAAM,GACN,MAAM,SAAS,CAAC,GACf,SAAS,GACT,MAAM,CAAC;AAEZ,sHAAsH;AACtH,KAAK,UAAU,CAAC,CAAC,IAAI,MAAM,SAAS,MAAM,CAAC,GACxC,OAAO,GACP,MAAM,SAAS,MAAM,CAAC,GACrB,UAAU,GACV,QAAQ,SAAS,MAAM,CAAC,GACvB,QAAQ,GACR,GAAG,GAAG,GAAG,SAAS,MAAM,CAAC,GACxB,OAAO,GACP,OAAO,CAAC;AAEd,sGAAsG;AACtG,KAAK,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,SAAS,MAAM,IAC3C,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GACjD,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAClB,OAAO,GACP,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GACvB,CAAC,GACD,OAAO,GACT,OAAO,CAAC;AACZ,KAAK,aAAa,CAAC,CAAC,EAAE,GAAG,IAAI;KAC3B,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC5C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACnB,CAAC,GACD,KAAK,GACN,KAAK;CACR,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC;AACtB,KAAK,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,OAAO,GAC1C,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAChC,IAAI,GACJ,KAAK,GACN,KAAK,CAAC;AAET,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACpC,CAAC,GACD,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAClD,CAAC,GACD,KAAK,CAAC;AAEV,0EAA0E;AAC1E,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,SAAS,MAAM,IAAI;IACxD,YAAY,CAAC,CAAC,CAAC;CACf,SAAS,CAAC,KAAK,CAAC,GACd,QAAQ,CACR,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,EAClC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CACzD,GACA,YAAY,CAAC,CAAC,CAAC,CAAC;AAEnB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,SAAS,MAAM,IAAI;IAChD,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QAC9B;YAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,OAAO,CAAA;SAAE;KAC9C,GACE,CAAC,GACD,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,GAClB,IAAI,GACJ,KAAK,CAAC;IACV,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;QAChC;YAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,OAAO,CAAA;SAAE;KAChD,GACE,CAAC,GACD,UAAU,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAIF,KAAK,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAEnE,iHAAiH;AACjH,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,SAAS,MAAM,IAAI;IACnD,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,SAAS,CAAC,KAAK,CAAC,GACd,KAAK,GACL,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAC1E,CAAC,SAAS,YAAY,GACrB,KAAK,GACL,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,SAAS,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;KACzD,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,SAAS,CACrC,GAAG,CAAC,CAAC,CAAC,EACN,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,EACvB,GAAG,EACH,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACxB;CACD,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC;AAEtB,KAAK,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,IACxB;KACC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAC7B;KACC,CAAC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,UAAU,CACrC,EAAE,CAAC,CAAC,CAAC,EACL,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EACpB,QAAQ,CAAC,CAAC,CAAC,EACX,GAAG,CACH;CACA,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AAExB,KAAK,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI;KAC9B,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC"}
1
+ {"version":3,"file":"from-kysely.d.ts","sourceRoot":"","sources":["../src/from-kysely.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,29 +1,22 @@
1
- import type { DefaultTypeMap, RowKeys, TransactionalSql } from "@typesql/core";
1
+ import type { RowKeys } from "@typesql/core";
2
+ import type { DefaultTypeMap, PostgresDialect, TransactionalSql } from "@typesql/core/postgres";
3
+ import type { ControlledTransaction, Kysely, Transaction } from "kysely";
2
4
  import { type KyselyExecutor } from "./client.js";
3
5
  import type { FromKysely, KyselyOptions, KyselyOverrides } from "./from-kysely.js";
4
6
  export { executor, type KyselyExecutor } from "./client.js";
5
7
  export type { ColumnOverride, FromKysely, InferColumn, KyselyOptions, KyselyOverrides, SnakeCase, TableOverride, } from "./from-kysely.js";
6
- /** What `createSql<DB>(db)` returns: core's `Sql` over `FromKysely<DB, ...>`, with `transaction(fn)`. */
7
8
  export type KyselySql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}, Keys extends RowKeys = "preserve"> = TransactionalSql<FromKysely<DB, Overrides, Options>, TM, Keys>;
8
- /**
9
- * `createSql` from core with a Kysely `DB` interface as the schema:
10
- * `createSql<DB>(db)` is `createSql<FromKysely<DB>, DefaultTypeMap>()` bound to `db`.
11
- *
12
- * const sql = createSql<DB>(db);
13
- * const sql = createSql<DB, PgTypeMap, { users: { id: "int8" } }>(db);
14
- * const sql = createSql<DB, DefaultTypeMap, {}, { camelCase: true }>(db);
15
- *
16
- * The queries' `execute*` methods run on `db` (a `Kysely` instance or transaction), bypassing
17
- * its plugins, and `sql.transaction(fn)` runs `fn` with a `sql` bound to one transaction.
18
- * `{ rowKeys: "camelCase" }` camelCases the rows' top-level keys as `CamelCasePlugin` does, in
19
- * the types and at runtime, without touching JSON values:
20
- *
21
- * const sql = createSql<DB, DefaultTypeMap, {}, { camelCase: true }>(db, { rowKeys: "camelCase" });
22
- */
23
- export declare function createSql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}>(db: KyselyExecutor | undefined, options: {
9
+ export type KyselyDB<K> = K extends ControlledTransaction<infer DB, any> ? DB : K extends Transaction<infer DB> ? DB : K extends Kysely<infer DB> ? DB : never;
10
+ export declare function createSql<K extends KyselyExecutor & Kysely<any>>(dialect: PostgresDialect, db: K, options: {
11
+ readonly rowKeys: "camelCase";
12
+ }): KyselySql<KyselyDB<K>, DefaultTypeMap, {}, {}, "camelCase">;
13
+ export declare function createSql<K extends KyselyExecutor & Kysely<any>>(dialect: PostgresDialect, db: K, options?: {
14
+ readonly rowKeys?: "preserve";
15
+ }): KyselySql<KyselyDB<K>>;
16
+ export declare function createSql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}>(dialect: PostgresDialect, db: KyselyExecutor | undefined, options: {
24
17
  readonly rowKeys: "camelCase";
25
18
  }): KyselySql<DB, TM, Overrides, Options, "camelCase">;
26
- export declare function createSql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}>(db?: KyselyExecutor, options?: {
19
+ export declare function createSql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}>(dialect: PostgresDialect, db?: KyselyExecutor, options?: {
27
20
  readonly rowKeys?: "preserve";
28
21
  }): KyselySql<DB, TM, Overrides, Options>;
29
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACzE,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,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,MAAM,MAAM,QAAQ,CAAC,CAAC,IACrB,CAAC,SAAS,qBAAqB,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,GAC3C,EAAE,GACF,CAAC,SAAS,WAAW,CAAC,MAAM,EAAE,CAAC,GAC9B,EAAE,GACF,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GACzB,EAAE,GACF,KAAK,CAAC;AAEZ,wBAAgB,SAAS,CAAC,CAAC,SAAS,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,EAC/D,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,CAAC,EACL,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACxC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AAC/D,wBAAgB,SAAS,CAAC,CAAC,SAAS,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,EAC/D,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,CAAC,EACL,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,GACzC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,wBAAgB,SAAS,CACxB,EAAE,EACF,EAAE,GAAG,cAAc,EACnB,SAAS,SAAS,eAAe,GAAG,EAAE,EACtC,OAAO,SAAS,aAAa,GAAG,EAAE,EAElC,OAAO,EAAE,eAAe,EACxB,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,OAAO,EAAE,eAAe,EACxB,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,7 +1,7 @@
1
1
  import { createTransactionalSql } from "@typesql/core/adapter";
2
2
  import { driver } from "./client.js";
3
3
  export { executor } from "./client.js";
4
- export function createSql(db, options) {
5
- return createTransactionalSql(db, driver, options);
4
+ export function createSql(dialect, db, options) {
5
+ return createTransactionalSql(dialect, db, driver, options);
6
6
  }
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAO/D,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAO1D,OAAO,EAAE,QAAQ,EAAuB,MAAM,aAAa,CAAC;AA0D5D,MAAM,UAAU,SAAS,CACxB,OAAwB,EACxB,EAAmB,EACnB,OAAoB;IAEpB,OAAO,sBAAsB,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typesql/kysely",
3
- "version": "0.2.8",
3
+ "version": "0.3.0",
4
4
  "description": "Use Kysely database interfaces (kysely-codegen, prisma-kysely) as a TypeSQL schema.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,18 +28,15 @@
28
28
  "access": "public"
29
29
  },
30
30
  "dependencies": {
31
- "@typesql/core": "0.7.5"
31
+ "@typesql/core": "0.8.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "kysely": ">=0.27"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/pg": "^8.23.1",
38
37
  "kysely": "^0.29.6",
39
- "pg": "^8.23.1",
40
38
  "tsrs": "0.18.0-ts7.1.0-dev.20260929",
41
- "typescript": "7.1.0-beta",
42
- "vitest": "^5.0.4"
39
+ "typescript": "7.1.0-beta"
43
40
  },
44
41
  "homepage": "https://typesql.karsli.net/adapters/kysely",
45
42
  "bugs": {
@@ -61,7 +58,6 @@
61
58
  ],
62
59
  "scripts": {
63
60
  "build": "tsrs -p tsconfig.build.json",
64
- "typecheck": "tsrs -p tsconfig.json --noEmit",
65
- "test": "vitest run"
61
+ "typecheck": "tsrs -p tsconfig.json --noEmit"
66
62
  }
67
63
  }
package/src/client.ts CHANGED
@@ -2,12 +2,6 @@ import type { Executor } from "@typesql/core";
2
2
  import { runTransaction, type SqlDriver } from "@typesql/core/adapter";
3
3
  import { CompiledQuery, type QueryResult } from "kysely";
4
4
 
5
- /**
6
- * What the adapter uses from a `Kysely<DB>` or `Transaction<DB>`. Queries run through
7
- * `withoutPlugins()`: TypeSQL's row types describe what the driver returns, so result
8
- * transformers such as `CamelCasePlugin` must not rename the columns (`createSql(db,
9
- * { rowKeys: "camelCase" })` renames the top-level keys instead, in the types too).
10
- */
11
5
  export interface KyselyExecutor {
12
6
  withoutPlugins(): {
13
7
  executeQuery<R>(query: CompiledQuery<R>): Promise<QueryResult<R>>;
@@ -30,20 +24,12 @@ function run<R>(
30
24
  );
31
25
  }
32
26
 
33
- /**
34
- * Kysely reports `numAffectedRows` for INSERT/UPDATE/DELETE/MERGE only; for other statements the
35
- * count is the rows returned (SELECT), or 0 (DDL), as Postgres' command tag says.
36
- */
37
27
  function rowCount(result: QueryResult<unknown>): number {
38
28
  return result.numAffectedRows === undefined
39
29
  ? result.rows.length
40
30
  : Number(result.numAffectedRows);
41
31
  }
42
32
 
43
- /**
44
- * An `Executor` for core's `q.execute()`: runs queries on a Kysely instance (or transaction),
45
- * without its plugins, and resolves to `{ rows, rowCount }` so `q.executeCount()` works.
46
- */
47
33
  export function executor(db: KyselyExecutor): Executor {
48
34
  return async (text, values) => {
49
35
  const result = await run<unknown>(db, text, values);
@@ -51,10 +37,6 @@ export function executor(db: KyselyExecutor): Executor {
51
37
  };
52
38
  }
53
39
 
54
- /**
55
- * Run `fn` inside `db.transaction().execute()`. A Kysely `Transaction` cannot start another one,
56
- * so inside one `fn` runs in a savepoint.
57
- */
58
40
  function transaction<T>(
59
41
  db: KyselyExecutor,
60
42
  depth: number,
@@ -68,5 +50,4 @@ function transaction<T>(
68
50
  );
69
51
  }
70
52
 
71
- /** How `createSql(db)` runs queries and transactions. */
72
53
  export const driver: SqlDriver<KyselyExecutor> = { executor, transaction };
@@ -1,64 +1,16 @@
1
- import type { View } from "@typesql/core";
2
- import type { ColDesc, PgScalarName } from "@typesql/core/engine";
3
-
4
- /**
5
- * Converting a Kysely `DB` interface (kysely-codegen, prisma-kysely or hand-written) into a
6
- * TypeSQL schema. Kysely describes columns with TS types, TypeSQL with Postgres type names, so
7
- * the conversion reads the TS shape back into a type name. That is lossy (`number` may be
8
- * `int4` or `float8`); `Overrides` pins the exact type per column.
9
- *
10
- * Every alias here is flat: one mapped type per table and a fixed number of conditionals per
11
- * column, with no recursion over the schema (only `SnakeCase` recurses, per identifier, when
12
- * `camelCase` is on).
13
- */
14
-
15
- // ───────────────────────────── public types ─────────────────────────────
16
-
17
- /**
18
- * Per-column override: a Postgres type name (`"int8"`, `"uuid"`, `"mood"`, `"text[]"`), or a
19
- * partial descriptor (`{ type?: "float8"; nullable?: false; hasDefault?: true }`). Unset
20
- * fields keep the inferred value.
21
- */
1
+ import type { View } from "@typesql/core/postgres";
2
+ import type { ColDesc, PgScalarName } from "@typesql/core/postgres/engine";
3
+
22
4
  export type ColumnOverride = string | Partial<ColDesc>;
23
5
 
24
- /** Overrides for one table: column key → `ColumnOverride`, plus `$view: true` for a view. */
25
6
  export type TableOverride = {
26
7
  readonly [column: string]: ColumnOverride | boolean;
27
8
  };
28
9
 
29
- /**
30
- * Overrides for `FromKysely`, keyed by the `DB` interface's own table keys (`"auth.users"`,
31
- * `users`) and column keys (as spelled in the interface, before any `camelCase` mapping).
32
- *
33
- * {
34
- * users: { id: "int8"; score: "float8"; created_at: { type: "timestamp"; hasDefault: false } };
35
- * active_users: { $view: true };
36
- * $types: { mood: Mood; "auth.role": AuthRole };
37
- * }
38
- *
39
- * `$view: true` declares a table key as a view (read-only). `$types` names enums: a column whose
40
- * values are exactly one entry's union gets that entry's name (so the same enum is one type
41
- * across tables, as in Postgres).
42
- */
43
10
  export type KyselyOverrides = { readonly [table: string]: TableOverride };
44
11
 
45
- /**
46
- * Options for `FromKysely`.
47
- * - `camelCase: true`: the interface was generated with `kysely-codegen --camel-case` (or is used
48
- * with `CamelCasePlugin`); keys are mapped back to snake_case the way `CamelCasePlugin` does by
49
- * default (`createdAt` → `created_at`, `userID` → `user_id`). SQL text uses the real names.
50
- */
51
12
  export type KyselyOptions = { readonly camelCase?: boolean };
52
13
 
53
- /**
54
- * A TypeSQL schema from a Kysely `DB` interface.
55
- *
56
- * type Schema = FromKysely<DB, { users: { id: "int8" } }>;
57
- * const sql = createSql<Schema>(); // TypeSQL's createSql
58
- *
59
- * `"auth.users"` becomes `Schema["auth"]["users"]`; `"public.users"` becomes `Schema["users"]`.
60
- * String-literal unions become enums registered in `Schema["$types"]` (see `KyselyOverrides`).
61
- */
62
14
  export type FromKysely<
63
15
  DB,
64
16
  Overrides extends KyselyOverrides = {},
@@ -76,7 +28,6 @@ export type FromKysely<
76
28
  : TableOf<DB, K, Overrides, Options>;
77
29
  };
78
30
 
79
- /** Kysely's default snake_case mapping (`CamelCasePlugin`'s `createSnakeCaseMapper()`), at the type level. */
80
31
  export type SnakeCase<S extends string> =
81
32
  S extends Lowercase<S>
82
33
  ? S
@@ -84,10 +35,6 @@ export type SnakeCase<S extends string> =
84
35
  ? SnakeRest<R, IsUpper<H>, Lowercase<H>>
85
36
  : S;
86
37
 
87
- /**
88
- * Postgres type name, nullability and default inferred from one Kysely column type (no
89
- * overrides; string-literal unions are reported as `"enum"`, or `"enum[]"`).
90
- */
91
38
  export type InferColumn<T> = {
92
39
  readonly type: PgTypeOf<
93
40
  NonNullable<Sel<T>>,
@@ -98,8 +45,6 @@ export type InferColumn<T> = {
98
45
  readonly hasDefault: HasDefault<T>;
99
46
  };
100
47
 
101
- // ───────────────────────────── keys and namespaces ─────────────────────────────
102
-
103
48
  type Sn<S extends string, Opt> = Opt extends { readonly camelCase: true }
104
49
  ? SnakeCase<S>
105
50
  : S;
@@ -117,7 +62,6 @@ type SnakeRest<
117
62
  >
118
63
  : Acc;
119
64
 
120
- /** Top-level key of a `DB` key: `"auth.users"` → `auth`, `"public.users"` → `users`. */
121
65
  type OuterKey<K extends string, Opt> = K extends "$types"
122
66
  ? K
123
67
  : K extends `public.${infer T}`
@@ -126,7 +70,6 @@ type OuterKey<K extends string, Opt> = K extends "$types"
126
70
  ? Sn<S, Opt>
127
71
  : Sn<K, Opt>;
128
72
 
129
- /** SQL name of a table key, schema-qualified unless `public`: used to name derived enums. */
130
73
  type SqlTableName<K extends string, Opt> = K extends `public.${infer T}`
131
74
  ? Sn<T, Opt>
132
75
  : Sn<K, Opt>;
@@ -140,7 +83,6 @@ type NamespaceOf<DB, S extends string, O, Opt> = {
140
83
  type TableOverrides<O, K> = K extends keyof O ? O[K] : undefined;
141
84
  type ColumnOverrideOf<TO, C> = C extends keyof TO ? TO[C] : undefined;
142
85
 
143
- /** User enum registry (`Overrides["$types"]`), or `{}`. */
144
86
  type Registry<O> = O extends { readonly $types: infer R } ? R : {};
145
87
 
146
88
  type TableOf<DB, K extends string, O, Opt> = K extends keyof DB
@@ -172,12 +114,8 @@ type Columns<Tbl, TO, TName extends string, Reg, Opt> = {
172
114
  >;
173
115
  };
174
116
 
175
- // ───────────────────────────── columns ─────────────────────────────
176
-
177
- /** Select type of a column: `ColumnType<S, …>` → S (one nested `ColumnType` is unwrapped, e.g. `GeneratedAlways<Int8>`). */
178
117
  type Sel<T> = T extends { readonly __select__: infer S } ? InnerSel<S> : T;
179
118
  type InnerSel<S> = S extends { readonly __select__: infer S2 } ? S2 : S;
180
- /** Insert type of the innermost `ColumnType`: tells `Int8`/`Numeric` apart from plain strings. */
181
119
  type Hint<T> = T extends {
182
120
  readonly __select__: infer S;
183
121
  readonly __insert__: infer I;
@@ -185,7 +123,6 @@ type Hint<T> = T extends {
185
123
  ? InnerIns<S, I>
186
124
  : T;
187
125
  type InnerIns<S, I> = S extends { readonly __insert__: infer I2 } ? I2 : I;
188
- /** Outer insert type: `undefined` in it (`Generated`) or `never` (`GeneratedAlways`) means a default. */
189
126
  type Ins<T> = T extends { readonly __insert__: infer I } ? I : T;
190
127
 
191
128
  type HasDefault<T> = [Extract<T, { readonly __insert__: unknown }>] extends [
@@ -198,7 +135,6 @@ type HasDefault<T> = [Extract<T, { readonly __insert__: unknown }>] extends [
198
135
  ? true
199
136
  : false;
200
137
 
201
- /** The string-literal union of an enum column (or of its array elements), else never. */
202
138
  type LiteralUnion<S> = [S] extends [string]
203
139
  ? string extends S
204
140
  ? never
@@ -211,11 +147,6 @@ type LiteralUnion<S> = [S] extends [string]
211
147
  : never
212
148
  : never;
213
149
 
214
- /**
215
- * Postgres type name from a non-null select type `S` and insert hint `H`. `E` is the name to
216
- * use for a string-literal union (an enum). An array select type is a Postgres array unless
217
- * the insert type has no array in it: `JSONColumnType<string[]>` inserts as `string`.
218
- */
219
150
  type PgTypeOf<S, H, E extends string> = unknown extends S
220
151
  ? "jsonb"
221
152
  : [S] extends [never]
@@ -226,14 +157,12 @@ type PgTypeOf<S, H, E extends string> = unknown extends S
226
157
  : `${ScalarOf<ArrayElem<NonNullable<El>>, ArrayElem<ArrayElem<H>>, E>}[]`
227
158
  : ScalarOf<S, H, E>;
228
159
 
229
- /** Insert type with no array in it (`string`, `RawBuilder`); `never` (`GeneratedAlways`) tells nothing. */
230
160
  type IsJsonInsert<H> = [H] extends [never]
231
161
  ? false
232
162
  : [Extract<H, readonly unknown[]>] extends [never]
233
163
  ? true
234
164
  : false;
235
165
 
236
- /** Element type of an array (one more level for multi-dimensional arrays: Postgres types them alike). */
237
166
  type ArrayElem<T> = T extends readonly (infer E)[] ? E : T;
238
167
 
239
168
  type ScalarOf<S, H, E extends string> = unknown extends S
@@ -256,9 +185,8 @@ type ScalarOf<S, H, E extends string> = unknown extends S
256
185
  ? "jsonb"
257
186
  : [S] extends [object]
258
187
  ? ObjectKind<S>
259
- : "jsonb"; // mixed unions such as kysely-codegen's `JsonValue`
188
+ : "jsonb";
260
189
 
261
- /** kysely-codegen selects `int8` and `numeric` as `string`; the insert type tells them apart. */
262
190
  type StringKind<H> = [H] extends [never]
263
191
  ? "text"
264
192
  : bigint extends H
@@ -267,7 +195,6 @@ type StringKind<H> = [H] extends [never]
267
195
  ? "numeric"
268
196
  : "text";
269
197
 
270
- /** Index signatures (`Record<string, …>`) are jsonb: their `keyof` is `string`, which every key check would match. */
271
198
  type ObjectKind<S> = string extends keyof S
272
199
  ? "jsonb"
273
200
  : "days" extends keyof S
@@ -278,7 +205,6 @@ type ObjectKind<S> = string extends keyof S
278
205
  ? "point"
279
206
  : "jsonb";
280
207
 
281
- /** Name of a `$types` entry whose union is exactly `U` (when exactly one matches), else `Default`. */
282
208
  type EnumName<U, Reg, Default extends string> =
283
209
  RegistryMatch<U, Reg> extends infer N extends string
284
210
  ? [N] extends [never]
@@ -306,7 +232,6 @@ type OverrideType<V> = V extends string
306
232
  ? X
307
233
  : never;
308
234
 
309
- /** Final type name of a column: the override's, else the inferred one. */
310
235
  type ColumnTypeName<T, V, Reg, Default extends string> = [
311
236
  OverrideType<V>,
312
237
  ] extends [never]
@@ -333,11 +258,8 @@ type Column<T, V, Reg, Default extends string> = {
333
258
  : HasDefault<T>;
334
259
  };
335
260
 
336
- // ───────────────────────────── enums ─────────────────────────────
337
-
338
261
  type BaseName<T extends string> = T extends `${infer B}[]` ? B : T;
339
262
 
340
- /** `[name, values]` when a column's type is an enum (not a built-in type) and its values are a literal union. */
341
263
  type EnumEntry<T, V, Reg, Default extends string> = [
342
264
  LiteralUnion<NonNullable<Sel<T>>>,
343
265
  ] extends [never]
package/src/index.ts CHANGED
@@ -1,10 +1,11 @@
1
+ import type { RowKeys, SqlOptions } from "@typesql/core";
2
+ import { createTransactionalSql } from "@typesql/core/adapter";
1
3
  import type {
2
4
  DefaultTypeMap,
3
- RowKeys,
4
- SqlOptions,
5
+ PostgresDialect,
5
6
  TransactionalSql,
6
- } from "@typesql/core";
7
- import { createTransactionalSql } from "@typesql/core/adapter";
7
+ } from "@typesql/core/postgres";
8
+ import type { ControlledTransaction, Kysely, Transaction } from "kysely";
8
9
  import { driver, type KyselyExecutor } from "./client.js";
9
10
  import type {
10
11
  FromKysely,
@@ -23,7 +24,6 @@ export type {
23
24
  TableOverride,
24
25
  } from "./from-kysely.js";
25
26
 
26
- /** What `createSql<DB>(db)` returns: core's `Sql` over `FromKysely<DB, ...>`, with `transaction(fn)`. */
27
27
  export type KyselySql<
28
28
  DB,
29
29
  TM = DefaultTypeMap,
@@ -32,27 +32,32 @@ export type KyselySql<
32
32
  Keys extends RowKeys = "preserve",
33
33
  > = TransactionalSql<FromKysely<DB, Overrides, Options>, TM, Keys>;
34
34
 
35
- /**
36
- * `createSql` from core with a Kysely `DB` interface as the schema:
37
- * `createSql<DB>(db)` is `createSql<FromKysely<DB>, DefaultTypeMap>()` bound to `db`.
38
- *
39
- * const sql = createSql<DB>(db);
40
- * const sql = createSql<DB, PgTypeMap, { users: { id: "int8" } }>(db);
41
- * const sql = createSql<DB, DefaultTypeMap, {}, { camelCase: true }>(db);
42
- *
43
- * The queries' `execute*` methods run on `db` (a `Kysely` instance or transaction), bypassing
44
- * its plugins, and `sql.transaction(fn)` runs `fn` with a `sql` bound to one transaction.
45
- * `{ rowKeys: "camelCase" }` camelCases the rows' top-level keys as `CamelCasePlugin` does, in
46
- * the types and at runtime, without touching JSON values:
47
- *
48
- * const sql = createSql<DB, DefaultTypeMap, {}, { camelCase: true }>(db, { rowKeys: "camelCase" });
49
- */
35
+ export type KyselyDB<K> =
36
+ K extends ControlledTransaction<infer DB, any>
37
+ ? DB
38
+ : K extends Transaction<infer DB>
39
+ ? DB
40
+ : K extends Kysely<infer DB>
41
+ ? DB
42
+ : never;
43
+
44
+ export function createSql<K extends KyselyExecutor & Kysely<any>>(
45
+ dialect: PostgresDialect,
46
+ db: K,
47
+ options: { readonly rowKeys: "camelCase" },
48
+ ): KyselySql<KyselyDB<K>, DefaultTypeMap, {}, {}, "camelCase">;
49
+ export function createSql<K extends KyselyExecutor & Kysely<any>>(
50
+ dialect: PostgresDialect,
51
+ db: K,
52
+ options?: { readonly rowKeys?: "preserve" },
53
+ ): KyselySql<KyselyDB<K>>;
50
54
  export function createSql<
51
55
  DB,
52
56
  TM = DefaultTypeMap,
53
57
  Overrides extends KyselyOverrides = {},
54
58
  Options extends KyselyOptions = {},
55
59
  >(
60
+ dialect: PostgresDialect,
56
61
  db: KyselyExecutor | undefined,
57
62
  options: { readonly rowKeys: "camelCase" },
58
63
  ): KyselySql<DB, TM, Overrides, Options, "camelCase">;
@@ -62,21 +67,14 @@ export function createSql<
62
67
  Overrides extends KyselyOverrides = {},
63
68
  Options extends KyselyOptions = {},
64
69
  >(
70
+ dialect: PostgresDialect,
65
71
  db?: KyselyExecutor,
66
72
  options?: { readonly rowKeys?: "preserve" },
67
73
  ): KyselySql<DB, TM, Overrides, Options>;
68
- export function createSql<
69
- DB,
70
- TM = DefaultTypeMap,
71
- Overrides extends KyselyOverrides = {},
72
- Options extends KyselyOptions = {},
73
- >(
74
+ export function createSql(
75
+ dialect: PostgresDialect,
74
76
  db?: KyselyExecutor,
75
77
  options?: SqlOptions,
76
- ): KyselySql<DB, TM, Overrides, Options, RowKeys> {
77
- return createTransactionalSql<
78
- FromKysely<DB, Overrides, Options>,
79
- TM,
80
- KyselyExecutor
81
- >(db, driver, options);
78
+ ): unknown {
79
+ return createTransactionalSql(dialect, db, driver, options);
82
80
  }