@typesql/kysely 0.2.8 → 0.2.9
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 +11 -0
- package/README.md +3 -4
- package/dist/client.d.ts +0 -11
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +0 -13
- package/dist/client.js.map +1 -1
- package/dist/from-kysely.d.ts +0 -69
- package/dist/from-kysely.d.ts.map +1 -1
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -8
- package/src/client.ts +0 -19
- package/src/from-kysely.ts +1 -79
- package/src/index.ts +0 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @typesql/kysely
|
|
2
2
|
|
|
3
|
+
## 0.2.9
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Validate packages against PostgreSQL behavior and built outputs instead of hand-written test suites.
|
|
8
|
+
|
|
9
|
+
- Reorganize core internals and remove source comments and inline API documentation without changing SQL behavior.
|
|
10
|
+
|
|
11
|
+
- Updated dependencies:
|
|
12
|
+
- @typesql/core@0.7.6
|
|
13
|
+
|
|
3
14
|
## 0.2.8
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -12,9 +12,9 @@ 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";
|
|
15
|
+
import type { DB } from "./db";
|
|
16
16
|
|
|
17
|
-
const sql = createSql<DB>(db);
|
|
17
|
+
const sql = createSql<DB>(db);
|
|
18
18
|
|
|
19
19
|
const posts = await sql(
|
|
20
20
|
`SELECT u.email, p.title
|
|
@@ -22,14 +22,13 @@ const posts = await sql(
|
|
|
22
22
|
WHERE u.id = $1`,
|
|
23
23
|
1,
|
|
24
24
|
).execute();
|
|
25
|
-
// { email: string; title: string }[]
|
|
26
25
|
|
|
27
26
|
await sql.transaction(async (tx) => {
|
|
28
27
|
await tx("UPDATE posts SET published = true WHERE author_id = $1", 1).execute();
|
|
29
28
|
});
|
|
30
29
|
```
|
|
31
30
|
|
|
32
|
-
[Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/
|
|
31
|
+
[Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/JYWwDg9gTgLgBAbzgYygUwIYzQZQI4A2cAvnAGZQQhwBEAAjAJ5hoDOhA9ANaOtoGMaAbgBQoSLEQiAkExZwAwhAIBXEADsAKszQAaGXLRwA4mnVooWNABN90gNK9+jOwAUIrGAHN0rACLAGARoyDD6pBRUtDx8AsJi4NDwSO7KJOSU1DRgXvEihnAAkuowABxwALyKympaOgA8Mp5QwOpedgBGwF6t8AA+cOpqHRZwA82t7TJdPSVjg8Oj4zAtbSIAfKIFmqBsMBjgldWqGtos9X5WunCX2PMTbde3RsurXpv5OnAAshAQ1kcaAALDBgMCCeY0VgYax5XoWMgYZBGPwAISk0hUfCgrAAXBjpMBrPjTOZLNhrPUhiARlAPtJpGgQBhgAR8Q8vKIGSA-sSfrz5kMCAQudJUJgKQB9LAkswWKyUnYgPYHMD04hcyCePEEomyskK+rFMr06QYFQwIHQSV6hY0iyimDAGDBdkrSaisAqDoEYCsIE2fXyin1Dp-YIYdTq0TEEQiZAQdSeODWDpHcwAdzgjlijAuqPWAAoEDJrIFgqF8Zm4O5PD42AEgiEYMW4JBlFW0FnUgRCwBKEh98J90QJpPwdhEKriqz4Aj5oupkdxsfJ6yWMgwVhHDAZlnwVMyAB0sWbADFMoXsh4tzQ+8fT6FCwBtGhEmjXGhOl1oGgAXXvaQjwzAN0CvL0fT9ANYU-CoP3III+EAo80AADxCC00H7UR40TZMI2sCwwwwKAASqSdCxkAADHAAFEABlaIUTQ4BUFDmVZa42J5f5rgTFQSkLMAjyJAcAEEcDbG9WH0OA5PkhTFKU5T5MsdQuH7OAAHkADVaIAJTgQstP0vwDLgVEAE0UAgASW2E0SblonAFHEySwAIJE0BEFTfOUs99K075WOxbcVDgRizxYgApLTCgAOSk7U220xLhPNS1rSJI42OysT4r8Nsjwg31-RsHy-MquSAHUAAkDNo1ijx4si4AAEgARgqqq-OMQKAFVXAs6zcusKi7GBUFwQ-ERl1XeA1K4Gwdz3Z04AIoiIBI6wUPQ5BMOwuNd33FMOiPFZI2hUJgETftdow7BCwwVhGHUZAjJWVCBwqdYMWOtbPpkICVDAawrE0DAfSw69tTvIGTzQFskBKqDAzgFYVCMYhAKAkCLGhjKrSgG0YNoODrg6nH7v2x7lzNVb4BnbA5wXQtPr7SiGSoszGM0RqAqCpKtzgOqGrgQmstazq4Hywr4q0liUbKsa7GkDq7D7amDuXbGcIomiGKYljsoF4KsQsbdRf0xqWqOTrxtoSMfEEZcgA) <span data-playground="kysely"></span> to hover the types and edit the SQL, with nothing to install.
|
|
33
32
|
|
|
34
33
|
## Pin column types
|
|
35
34
|
|
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
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
package/dist/client.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/from-kysely.d.ts
CHANGED
|
@@ -1,69 +1,19 @@
|
|
|
1
1
|
import type { View } from "@typesql/core";
|
|
2
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
|
-
*/
|
|
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":"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"}
|
|
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
|
@@ -3,23 +3,7 @@ import { type KyselyExecutor } from "./client.js";
|
|
|
3
3
|
import type { FromKysely, KyselyOptions, KyselyOverrides } from "./from-kysely.js";
|
|
4
4
|
export { executor, type KyselyExecutor } from "./client.js";
|
|
5
5
|
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
6
|
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
7
|
export declare function createSql<DB, TM = DefaultTypeMap, Overrides extends KyselyOverrides = {}, Options extends KyselyOptions = {}>(db: KyselyExecutor | undefined, options: {
|
|
24
8
|
readonly rowKeys: "camelCase";
|
|
25
9
|
}): KyselySql<DB, TM, Overrides, Options, "camelCase">;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,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,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.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;
|
|
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;AAqC5D,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.2.
|
|
3
|
+
"version": "0.2.9",
|
|
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.
|
|
31
|
+
"@typesql/core": "0.7.6"
|
|
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 };
|
package/src/from-kysely.ts
CHANGED
|
@@ -1,64 +1,16 @@
|
|
|
1
1
|
import type { View } from "@typesql/core";
|
|
2
2
|
import type { ColDesc, PgScalarName } from "@typesql/core/engine";
|
|
3
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
|
-
*/
|
|
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";
|
|
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
|
@@ -23,7 +23,6 @@ export type {
|
|
|
23
23
|
TableOverride,
|
|
24
24
|
} from "./from-kysely.js";
|
|
25
25
|
|
|
26
|
-
/** What `createSql<DB>(db)` returns: core's `Sql` over `FromKysely<DB, ...>`, with `transaction(fn)`. */
|
|
27
26
|
export type KyselySql<
|
|
28
27
|
DB,
|
|
29
28
|
TM = DefaultTypeMap,
|
|
@@ -32,21 +31,6 @@ export type KyselySql<
|
|
|
32
31
|
Keys extends RowKeys = "preserve",
|
|
33
32
|
> = TransactionalSql<FromKysely<DB, Overrides, Options>, TM, Keys>;
|
|
34
33
|
|
|
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
|
-
*/
|
|
50
34
|
export function createSql<
|
|
51
35
|
DB,
|
|
52
36
|
TM = DefaultTypeMap,
|