@typesql/drizzle 0.1.5 → 0.2.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,16 @@
1
1
  # @typesql/drizzle
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - `NoResultError`, `Executor` and `TransactionalSql` are no longer re-exported (from `@typesql/drizzle` also `Sql`, `Query`, `RowType`, `ParamsType`, `DefaultTypeMap` and `TypeMap`); import them from `@typesql/core`.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies:
12
+ - @typesql/core@0.5.0
13
+
3
14
  ## 0.1.5
4
15
 
5
16
  ### Patch Changes
package/dist/casing.d.ts CHANGED
@@ -3,15 +3,21 @@ type Upper = Uppercase<Lower>;
3
3
  type Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
4
4
  type Cls<C extends string> = C extends Lower ? "l" : C extends Digit ? "d" : C extends Upper ? "u" : "o";
5
5
  /** A new word starts at `C` (class `K`) after a char of class `P`, `R` being the rest of the input. */
6
- type Starts<P, K, R extends string> = K extends "u" ? (P extends "l" | "d" ? true : P extends "u" ? (R extends `${Lower}${string}` ? true : false) : false) : K extends "d" ? (P extends "u" ? true : false) : false;
6
+ type Starts<P, K, R extends string> = K extends "u" ? P extends "l" | "d" ? true : P extends "u" ? R extends `${Lower}${string}` ? true : false : false : K extends "d" ? P extends "u" ? true : false : false;
7
7
  type Push<A extends string[], W extends string> = W extends "" ? A : [...A, W];
8
8
  /**
9
9
  * Words of an identifier, as Drizzle's `casing` splits them
10
10
  * (`/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g`): `"userID2fa"` → `["user", "ID", "2fa"]`.
11
11
  */
12
12
  export type Words<S extends string, W extends string = "", Acc extends string[] = [], P = "o"> = S extends `${infer C}${infer R}` ? Cls<C> extends "o" ? Words<R, "", Push<Acc, W>, "o"> : Starts<P, Cls<C>, R> extends true ? Words<R, C, Push<Acc, W>, Cls<C>> : Words<R, `${W}${C}`, Acc, Cls<C>> : Push<Acc, W>;
13
- type Snake<Ws extends string[], Acc extends string = ""> = Ws extends [infer W extends string, ...infer R extends string[]] ? Snake<R, Acc extends "" ? Lowercase<W> : `${Acc}_${Lowercase<W>}`> : Acc;
14
- type Camel<Ws extends string[], Acc extends string = ""> = Ws extends [infer W extends string, ...infer R extends string[]] ? Camel<R, Acc extends "" ? Lowercase<W> : `${Acc}${Capitalize<W>}`> : Acc;
13
+ type Snake<Ws extends string[], Acc extends string = ""> = Ws extends [
14
+ infer W extends string,
15
+ ...infer R extends string[]
16
+ ] ? Snake<R, Acc extends "" ? Lowercase<W> : `${Acc}_${Lowercase<W>}`> : Acc;
17
+ type Camel<Ws extends string[], Acc extends string = ""> = Ws extends [
18
+ infer W extends string,
19
+ ...infer R extends string[]
20
+ ] ? Camel<R, Acc extends "" ? Lowercase<W> : `${Acc}${Capitalize<W>}`> : Acc;
15
21
  /** Drizzle's `toSnakeCase`: `"displayName"` → `"display_name"`. */
16
22
  export type ToSnakeCase<S extends string> = Snake<Words<S>>;
17
23
  /** Drizzle's `toCamelCase`: `"display_name"` → `"displayName"`. */
@@ -1 +1 @@
1
- {"version":3,"file":"casing.d.ts","sources":["../src/casing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"casing.d.ts","sources":["../src/casing.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GACP,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AACP,KAAK,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEvE,KAAK,GAAG,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,KAAK,GACzC,GAAG,GACH,CAAC,SAAS,KAAK,GACd,GAAG,GACH,CAAC,SAAS,KAAK,GACd,GAAG,GACH,GAAG,CAAC;AAET,uGAAuG;AACvG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,GAChD,CAAC,SAAS,GAAG,GAAG,GAAG,GAClB,IAAI,GACJ,CAAC,SAAS,GAAG,GACZ,CAAC,SAAS,GAAG,KAAK,GAAG,MAAM,EAAE,GAC5B,IAAI,GACJ,KAAK,GACN,KAAK,GACP,CAAC,SAAS,GAAG,GACZ,CAAC,SAAS,GAAG,GACZ,IAAI,GACJ,KAAK,GACN,KAAK,CAAC;AAEV,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/E;;;GAGG;AACH,MAAM,MAAM,KAAK,CAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,EAAE,EACrB,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,EACzB,CAAC,GAAG,GAAG,IACJ,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACjC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,GACjB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAChC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GACjC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GACnC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAEhB,KAAK,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,SAAS,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS;IACrE,MAAM,CAAC,SAAS,MAAM;IACtB,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE;CAC3B,GACE,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAClE,GAAG,CAAC;AACP,KAAK,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,SAAS,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS;IACrE,MAAM,CAAC,SAAS,MAAM;IACtB,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE;CAC3B,GACE,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAClE,GAAG,CAAC;AAEP,mEAAmE;AACnE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,mEAAmE;AACnE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/dist/client.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { Executor, SqlDriver } from "@typesql/core";
1
+ import type { Executor } from "@typesql/core";
2
+ import type { SqlDriver } from "@typesql/core/adapter";
2
3
  /**
3
4
  * What the adapter uses from a Drizzle database (`drizzle(client)` from `drizzle-orm/node-postgres`,
4
5
  * `drizzle-orm/postgres-js`, ...) or a transaction from `db.transaction(fn)`.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrE;AAmBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,eAAe,GAAG,QAAQ,CAUtD;AAOD,yDAAyD;AACzD,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,eAAe,CAA6B,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACpE;AAyBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,eAAe,GAAG,QAAQ,CAgBtD;AAWD,yDAAyD;AACzD,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,eAAe,CAA6B,CAAC"}
package/dist/client.js CHANGED
@@ -5,7 +5,8 @@
5
5
  */
6
6
  function clientOf(db) {
7
7
  const client = db._.session.client;
8
- if (client && (typeof client.unsafe === "function" || typeof client.query === "function"))
8
+ if (client &&
9
+ (typeof client.unsafe === "function" || typeof client.query === "function"))
9
10
  return client;
10
11
  throw new Error("typesql: createSql(db) needs a Drizzle database on node-postgres or postgres.js (its session client has no query or unsafe method)");
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../src/client.ts"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,SAAS,QAAQ,CAAC,EAAmB;IACnC,MAAM,MAAM,GAAI,EAAE,CAAC,CAAC,CAAC,OAA8C,CAAC,MAAM,CAAC;IAC3E,IAAI,MAAM,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC;IACzG,MAAM,IAAI,KAAK,CAAC,oIAAoI,CAAC,CAAC;AACxJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAmB;IAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAmD,CAAC;YACjH,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QACtE,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,KAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAkD,CAAC;QAChH,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;IAClE,CAAC,CAAC;AACJ,CAAC;AAED,qGAAqG;AACrG,SAAS,WAAW,CAAI,EAAmB,EAAE,MAAc,EAAE,EAAuC;IAClG,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,MAAM,GAA+B,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"client.js","sources":["../src/client.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,SAAS,QAAQ,CAAC,EAAmB;IACpC,MAAM,MAAM,GAAI,EAAE,CAAC,CAAC,CAAC,OAA8C,CAAC,MAAM,CAAC;IAC3E,IACC,MAAM;QACN,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC;QAE3E,OAAO,MAAM,CAAC;IACf,MAAM,IAAI,KAAK,CACd,oIAAoI,CACpI,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAmB;IAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAClC,IAAI,EACJ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAClB,CAAmD,CAAC;YACrD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QACrE,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,KAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAG5D,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;IACjE,CAAC,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,SAAS,WAAW,CACnB,EAAmB,EACnB,MAAc,EACd,EAAuC;IAEvC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,MAAM,GAA+B,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
@@ -86,18 +86,16 @@ type ColumnConfig = {
86
86
  /** Values of an exported `pgEnum` (array or object form). */
87
87
  type EnumValues<X> = X extends {
88
88
  readonly enumValues: readonly [string, ...string[]];
89
- } ? X["enumValues"][number] : X extends {
90
- (): {
91
- readonly _: {
92
- readonly data: infer D extends string;
93
- };
89
+ } ? X["enumValues"][number] : X extends () => {
90
+ readonly _: {
91
+ readonly data: infer D extends string;
94
92
  };
95
93
  } ? D : never;
96
94
  /** `$types` registry: exported enums by export name. */
97
95
  type Enums<S> = {
98
96
  -readonly [K in keyof S as S[K] extends EnumLike ? K : never]: EnumValues<S[K]>;
99
97
  };
100
- type LastOf<U> = (U extends unknown ? (x: () => U) => void : never) extends (x: infer F) => void ? (F extends () => infer L ? L : never) : never;
98
+ type LastOf<U> = (U extends unknown ? (x: () => U) => void : never) extends (x: infer F) => void ? F extends () => infer L ? L : never : never;
101
99
  /** Name of the exported enum whose values are exactly `V` (any one when several match), else `text`. */
102
100
  type EnumName<V, E> = {
103
101
  [K in keyof E]: [E[K]] extends [V] ? ([V] extends [E[K]] ? K : never) : never;
@@ -108,10 +106,10 @@ type Opt<Opts, K extends keyof FromDrizzleOptions, D> = Opts extends {
108
106
  /** Postgres type of a column config. */
109
107
  type PgTypeOf<D extends ColumnConfig, Opts = {}, E = {}> = D extends {
110
108
  readonly typesqlType: infer T extends string;
111
- } ? T : D["columnType"] extends keyof DrizzleColumnTypes ? DrizzleColumnTypes[D["columnType"]] : D["columnType"] extends "PgArray" ? (D["baseColumn"] extends ColumnLike ? `${PgTypeOf<D["baseColumn"]["_"], Opts, E>}[]` : "unknown[]") : D["columnType"] extends "PgTimestamp" | "PgTimestampString" ? Opt<Opts, "timestamp", "timestamp"> : D["columnType"] extends "PgTime" ? Opt<Opts, "time", "time"> : D["columnType"] extends "PgEnumColumn" ? EnumName<(D["enumValues"] & readonly string[])[number], E> : D["columnType"] extends "PgEnumObjectColumn" ? EnumName<D["data"], E> : "unknown";
109
+ } ? T : D["columnType"] extends keyof DrizzleColumnTypes ? DrizzleColumnTypes[D["columnType"]] : D["columnType"] extends "PgArray" ? D["baseColumn"] extends ColumnLike ? `${PgTypeOf<D["baseColumn"]["_"], Opts, E>}[]` : "unknown[]" : D["columnType"] extends "PgTimestamp" | "PgTimestampString" ? Opt<Opts, "timestamp", "timestamp"> : D["columnType"] extends "PgTime" ? Opt<Opts, "time", "time"> : D["columnType"] extends "PgEnumColumn" ? EnumName<(D["enumValues"] & readonly string[])[number], E> : D["columnType"] extends "PgEnumObjectColumn" ? EnumName<D["data"], E> : "unknown";
112
110
  /** The descriptor as the matching core helper (`Col`, `Nullable`, `Generated`, `NullableGenerated`). */
113
- type Desc<T extends string, N, H> = N extends true ? (H extends true ? NullableGenerated<T> : Nullable<T>) : H extends true ? Generated<T> : Col<T>;
114
- type ColOf<D extends ColumnConfig, Opts, E> = Desc<PgTypeOf<D, Opts, E>, D["notNull"] extends true ? false : true, D["hasDefault"] extends true ? (D["hasRuntimeDefault"] extends true ? false : true) : false>;
111
+ type Desc<T extends string, N, H> = N extends true ? H extends true ? NullableGenerated<T> : Nullable<T> : H extends true ? Generated<T> : Col<T>;
112
+ type ColOf<D extends ColumnConfig, Opts, E> = Desc<PgTypeOf<D, Opts, E>, D["notNull"] extends true ? false : true, D["hasDefault"] extends true ? D["hasRuntimeDefault"] extends true ? false : true : false>;
115
113
  type Cased<N extends string, Opts> = Opts extends {
116
114
  readonly casing: "snake_case";
117
115
  } ? ToSnakeCase<N> : Opts extends {
@@ -133,8 +131,8 @@ type Relation<X, Opts, E> = X extends TableLike ? Columns<X["_"]["columns"], Opt
133
131
  } : never;
134
132
  /** Postgres schema of a table outside `public`. */
135
133
  type SchemaOf<X> = X extends TableLike ? Exclude<X["_"]["schema"], undefined | "public"> : never;
136
- type NameIn<X, N> = X extends TableLike ? (X["_"]["schema"] extends N ? X["_"]["name"] : never) : never;
137
- type TopName<X> = X extends TableLike ? ([SchemaOf<X>] extends [never] ? X["_"]["name"] : never) : X extends ViewLike ? X["_"]["name"] : never;
134
+ type NameIn<X, N> = X extends TableLike ? X["_"]["schema"] extends N ? X["_"]["name"] : never : never;
135
+ type TopName<X> = X extends TableLike ? [SchemaOf<X>] extends [never] ? X["_"]["name"] : never : X extends ViewLike ? X["_"]["name"] : never;
138
136
  type Build<S, Opts, E = Enums<S>> = {
139
137
  -readonly [K in keyof S as TopName<S[K]>]: Relation<S[K], Opts, E>;
140
138
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"from-drizzle.d.ts","sources":["../src/from-drizzle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"from-drizzle.d.ts","sources":["../src/from-drizzle.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,9 @@
1
- import { type DefaultTypeMap, type TransactionalSql } from "@typesql/core";
1
+ import type { DefaultTypeMap, TransactionalSql } from "@typesql/core";
2
2
  import { type DrizzleDatabase } from "./client.js";
3
3
  import type { FromDrizzle, FromDrizzleOptions } from "./from-drizzle.js";
4
- export type { FromDrizzle, FromDrizzleOptions, DrizzleColumnTypes } from "./from-drizzle.js";
4
+ export { type DrizzleDatabase, executor } from "./client.js";
5
+ export type { DrizzleColumnTypes, FromDrizzle, FromDrizzleOptions, } from "./from-drizzle.js";
5
6
  export { pgType } from "./pg-type.js";
6
- export { executor, type DrizzleDatabase } from "./client.js";
7
- export type { Sql, Query, RowType, ParamsType, DefaultTypeMap, TypeMap, Executor, TransactionalSql } from "@typesql/core";
8
- export { NoResultError } from "@typesql/core";
9
7
  /** What `createSql<typeof schema>(db)` returns: core's `Sql` over `FromDrizzle<Schema, Opts>`, with `transaction(fn)`. */
10
8
  export type DrizzleSql<Schema, TM = DefaultTypeMap, Opts extends FromDrizzleOptions = {}> = TransactionalSql<FromDrizzle<Schema, Opts>, TM>;
11
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAU,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,0HAA0H;AAC1H,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,cAAc,EAAE,IAAI,SAAS,kBAAkB,GAAG,EAAE,IAAI,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAE5I;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,EAAE,GAAG,cAAc,EAAE,IAAI,SAAS,kBAAkB,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,eAAe,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAE/I"}
1
+ {"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,KAAK,eAAe,EAAU,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,KAAK,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,0HAA0H;AAC1H,MAAM,MAAM,UAAU,CACrB,MAAM,EACN,EAAE,GAAG,cAAc,EACnB,IAAI,SAAS,kBAAkB,GAAG,EAAE,IACjC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,SAAS,CACxB,MAAM,EACN,EAAE,GAAG,cAAc,EACnB,IAAI,SAAS,kBAAkB,GAAG,EAAE,EACnC,EAAE,CAAC,EAAE,eAAe,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAKpD"}
package/dist/index.js CHANGED
@@ -1,8 +1,7 @@
1
- import { createTransactionalSql } from "@typesql/core";
1
+ import { createTransactionalSql } from "@typesql/core/adapter";
2
2
  import { driver } from "./client.js";
3
- export { pgType } from "./pg-type.js";
4
3
  export { executor } from "./client.js";
5
- export { NoResultError } from "@typesql/core";
4
+ export { pgType } from "./pg-type.js";
6
5
  /**
7
6
  * `createSql` from core with the schema converted from Drizzle definitions:
8
7
  * `createSql<typeof schema>(db)`, or `createSql<typeof schema, PgTypeMap>(db)` for a driver's type map.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA8C,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,MAAM,EAAwB,MAAM,aAAa,CAAC;AAI3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAwB,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAoE,EAAoB;IAC/G,OAAO,sBAAsB,CAAiD,EAAE,EAAE,MAAM,CAAiC,CAAC;AAC5H,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAwB,MAAM,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EAAwB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAIvB,EAAoB;IACrB,OAAO,sBAAsB,CAC5B,EAAE,EACF,MAAM,CAC0B,CAAC;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pg-type.d.ts","sources":["../src/pg-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAGtH"}
1
+ {"version":3,"file":"pg-type.d.ts","sources":["../src/pg-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,CAAC,EACV,IAAI,EAAE,CAAC,GACL,CAAC,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAGjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"pg-type.js","sources":["../src/pg-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAA4B,OAAU,EAAE,IAAO;IACnE,KAAK,IAAI,CAAC;IACV,OAAO,OAA0D,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"pg-type.js","sources":["../src/pg-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,MAAM,CACrB,OAAU,EACV,IAAO;IAEP,KAAK,IAAI,CAAC;IACV,OAAO,OAA0D,CAAC;AACnE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typesql/drizzle",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "description": "Use Drizzle ORM table definitions as a TypeSQL schema.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,14 +28,14 @@
28
28
  "access": "public"
29
29
  },
30
30
  "dependencies": {
31
- "@typesql/core": "0.4.0"
31
+ "@typesql/core": "0.5.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "drizzle-orm": ">=0.45"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/pg": "^8.23.1",
38
- "@typesql/pg": "0.1.5",
38
+ "@typesql/pg": "0.2.0",
39
39
  "drizzle-orm": "^0.45.4",
40
40
  "pg": "^8.23.1",
41
41
  "postgres": "^3.4.9",
package/src/casing.ts CHANGED
@@ -1,14 +1,55 @@
1
- type Lower = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
1
+ type Lower =
2
+ | "a"
3
+ | "b"
4
+ | "c"
5
+ | "d"
6
+ | "e"
7
+ | "f"
8
+ | "g"
9
+ | "h"
10
+ | "i"
11
+ | "j"
12
+ | "k"
13
+ | "l"
14
+ | "m"
15
+ | "n"
16
+ | "o"
17
+ | "p"
18
+ | "q"
19
+ | "r"
20
+ | "s"
21
+ | "t"
22
+ | "u"
23
+ | "v"
24
+ | "w"
25
+ | "x"
26
+ | "y"
27
+ | "z";
2
28
  type Upper = Uppercase<Lower>;
3
29
  type Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
4
30
 
5
- type Cls<C extends string> = C extends Lower ? "l" : C extends Digit ? "d" : C extends Upper ? "u" : "o";
31
+ type Cls<C extends string> = C extends Lower
32
+ ? "l"
33
+ : C extends Digit
34
+ ? "d"
35
+ : C extends Upper
36
+ ? "u"
37
+ : "o";
6
38
 
7
39
  /** A new word starts at `C` (class `K`) after a char of class `P`, `R` being the rest of the input. */
8
- type Starts<P, K, R extends string> =
9
- K extends "u" ? (P extends "l" | "d" ? true : P extends "u" ? (R extends `${Lower}${string}` ? true : false) : false)
10
- : K extends "d" ? (P extends "u" ? true : false)
11
- : false;
40
+ type Starts<P, K, R extends string> = K extends "u"
41
+ ? P extends "l" | "d"
42
+ ? true
43
+ : P extends "u"
44
+ ? R extends `${Lower}${string}`
45
+ ? true
46
+ : false
47
+ : false
48
+ : K extends "d"
49
+ ? P extends "u"
50
+ ? true
51
+ : false
52
+ : false;
12
53
 
13
54
  type Push<A extends string[], W extends string> = W extends "" ? A : [...A, W];
14
55
 
@@ -16,17 +57,31 @@ type Push<A extends string[], W extends string> = W extends "" ? A : [...A, W];
16
57
  * Words of an identifier, as Drizzle's `casing` splits them
17
58
  * (`/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g`): `"userID2fa"` → `["user", "ID", "2fa"]`.
18
59
  */
19
- export type Words<S extends string, W extends string = "", Acc extends string[] = [], P = "o"> =
20
- S extends `${infer C}${infer R}`
21
- ? Cls<C> extends "o" ? Words<R, "", Push<Acc, W>, "o">
22
- : Starts<P, Cls<C>, R> extends true ? Words<R, C, Push<Acc, W>, Cls<C>>
23
- : Words<R, `${W}${C}`, Acc, Cls<C>>
24
- : Push<Acc, W>;
60
+ export type Words<
61
+ S extends string,
62
+ W extends string = "",
63
+ Acc extends string[] = [],
64
+ P = "o",
65
+ > = S extends `${infer C}${infer R}`
66
+ ? Cls<C> extends "o"
67
+ ? Words<R, "", Push<Acc, W>, "o">
68
+ : Starts<P, Cls<C>, R> extends true
69
+ ? Words<R, C, Push<Acc, W>, Cls<C>>
70
+ : Words<R, `${W}${C}`, Acc, Cls<C>>
71
+ : Push<Acc, W>;
25
72
 
26
- type Snake<Ws extends string[], Acc extends string = ""> =
27
- Ws extends [infer W extends string, ...infer R extends string[]] ? Snake<R, Acc extends "" ? Lowercase<W> : `${Acc}_${Lowercase<W>}`> : Acc;
28
- type Camel<Ws extends string[], Acc extends string = ""> =
29
- Ws extends [infer W extends string, ...infer R extends string[]] ? Camel<R, Acc extends "" ? Lowercase<W> : `${Acc}${Capitalize<W>}`> : Acc;
73
+ type Snake<Ws extends string[], Acc extends string = ""> = Ws extends [
74
+ infer W extends string,
75
+ ...infer R extends string[],
76
+ ]
77
+ ? Snake<R, Acc extends "" ? Lowercase<W> : `${Acc}_${Lowercase<W>}`>
78
+ : Acc;
79
+ type Camel<Ws extends string[], Acc extends string = ""> = Ws extends [
80
+ infer W extends string,
81
+ ...infer R extends string[],
82
+ ]
83
+ ? Camel<R, Acc extends "" ? Lowercase<W> : `${Acc}${Capitalize<W>}`>
84
+ : Acc;
30
85
 
31
86
  /** Drizzle's `toSnakeCase`: `"displayName"` → `"display_name"`. */
32
87
  export type ToSnakeCase<S extends string> = Snake<Words<S>>;
package/src/client.ts CHANGED
@@ -1,18 +1,19 @@
1
- import type { Executor, SqlDriver } from "@typesql/core";
1
+ import type { Executor } from "@typesql/core";
2
+ import type { SqlDriver } from "@typesql/core/adapter";
2
3
 
3
4
  /**
4
5
  * What the adapter uses from a Drizzle database (`drizzle(client)` from `drizzle-orm/node-postgres`,
5
6
  * `drizzle-orm/postgres-js`, ...) or a transaction from `db.transaction(fn)`.
6
7
  */
7
8
  export interface DrizzleDatabase {
8
- readonly _: { readonly session: object };
9
- transaction<T>(fn: (tx: DrizzleDatabase) => Promise<T>): Promise<T>;
9
+ readonly _: { readonly session: object };
10
+ transaction<T>(fn: (tx: DrizzleDatabase) => Promise<T>): Promise<T>;
10
11
  }
11
12
 
12
13
  /** The driver client a Drizzle session holds: node-postgres' `query` or postgres.js' `unsafe`. */
13
14
  interface DriverClient {
14
- query?(text: string, values: unknown[]): Promise<unknown>;
15
- unsafe?(text: string, values: unknown[]): PromiseLike<unknown>;
15
+ query?(text: string, values: unknown[]): Promise<unknown>;
16
+ unsafe?(text: string, values: unknown[]): PromiseLike<unknown>;
16
17
  }
17
18
 
18
19
  /**
@@ -21,9 +22,15 @@ interface DriverClient {
21
22
  * `session.client`.
22
23
  */
23
24
  function clientOf(db: DrizzleDatabase): DriverClient {
24
- const client = (db._.session as { readonly client?: DriverClient }).client;
25
- if (client && (typeof client.unsafe === "function" || typeof client.query === "function")) return client;
26
- throw new Error("typesql: createSql(db) needs a Drizzle database on node-postgres or postgres.js (its session client has no query or unsafe method)");
25
+ const client = (db._.session as { readonly client?: DriverClient }).client;
26
+ if (
27
+ client &&
28
+ (typeof client.unsafe === "function" || typeof client.query === "function")
29
+ )
30
+ return client;
31
+ throw new Error(
32
+ "typesql: createSql(db) needs a Drizzle database on node-postgres or postgres.js (its session client has no query or unsafe method)",
33
+ );
27
34
  }
28
35
 
29
36
  /**
@@ -32,20 +39,30 @@ function clientOf(db: DrizzleDatabase): DriverClient {
32
39
  * `{ rows, rowCount }` so `q.executeCount()` works.
33
40
  */
34
41
  export function executor(db: DrizzleDatabase): Executor {
35
- return async (text, values) => {
36
- const client = clientOf(db);
37
- if (client.unsafe) {
38
- const result = (await client.unsafe(text, Array.from(values))) as unknown[] & { readonly count?: number | null };
39
- return { rows: Array.from(result), rowCount: result.count ?? null };
40
- }
41
- const result = (await client.query!(text, Array.from(values))) as { rows: unknown[]; rowCount?: number | null };
42
- return { rows: result.rows, rowCount: result.rowCount ?? null };
43
- };
42
+ return async (text, values) => {
43
+ const client = clientOf(db);
44
+ if (client.unsafe) {
45
+ const result = (await client.unsafe(
46
+ text,
47
+ Array.from(values),
48
+ )) as unknown[] & { readonly count?: number | null };
49
+ return { rows: Array.from(result), rowCount: result.count ?? null };
50
+ }
51
+ const result = (await client.query!(text, Array.from(values))) as {
52
+ rows: unknown[];
53
+ rowCount?: number | null;
54
+ };
55
+ return { rows: result.rows, rowCount: result.rowCount ?? null };
56
+ };
44
57
  }
45
58
 
46
59
  /** Run `fn` inside `db.transaction(fn)`; Drizzle nests a transaction inside one with a savepoint. */
47
- function transaction<T>(db: DrizzleDatabase, _depth: number, fn: (tx: DrizzleDatabase) => Promise<T>): Promise<T> {
48
- return db.transaction(fn);
60
+ function transaction<T>(
61
+ db: DrizzleDatabase,
62
+ _depth: number,
63
+ fn: (tx: DrizzleDatabase) => Promise<T>,
64
+ ): Promise<T> {
65
+ return db.transaction(fn);
49
66
  }
50
67
 
51
68
  /** How `createSql(db)` runs queries and transactions. */
@@ -1,146 +1,233 @@
1
- import type { Col, Generated, Nullable, NullableGenerated } from "@typesql/core";
1
+ import type {
2
+ Col,
3
+ Generated,
4
+ Nullable,
5
+ NullableGenerated,
6
+ } from "@typesql/core";
2
7
  import type { ToCamelCase, ToSnakeCase } from "./casing.js";
3
8
 
4
9
  /** Settings of your Drizzle setup that the column types do not record. */
5
10
  export interface FromDrizzleOptions {
6
- /** The `casing` passed to `drizzle()`: applied to column names, as Drizzle does at runtime. */
7
- readonly casing?: "snake_case" | "camelCase" | undefined;
8
- /** Type of `timestamp()` columns not marked with `pgType` (Drizzle's types drop `withTimezone`). Default `"timestamp"`. */
9
- readonly timestamp?: "timestamp" | "timestamptz" | undefined;
10
- /** Type of `time()` columns not marked with `pgType`. Default `"time"`. */
11
- readonly time?: "time" | "timetz" | undefined;
11
+ /** The `casing` passed to `drizzle()`: applied to column names, as Drizzle does at runtime. */
12
+ readonly casing?: "snake_case" | "camelCase" | undefined;
13
+ /** Type of `timestamp()` columns not marked with `pgType` (Drizzle's types drop `withTimezone`). Default `"timestamp"`. */
14
+ readonly timestamp?: "timestamp" | "timestamptz" | undefined;
15
+ /** Type of `time()` columns not marked with `pgType`. Default `"time"`. */
16
+ readonly time?: "time" | "timetz" | undefined;
12
17
  }
13
18
 
14
19
  /** Postgres type of each pg-core `columnType` with a fixed SQL type. */
15
20
  export interface DrizzleColumnTypes {
16
- PgSmallInt: "int2";
17
- PgInteger: "int4";
18
- PgBigInt53: "int8";
19
- PgBigInt64: "int8";
20
- PgSmallSerial: "int2";
21
- PgSerial: "int4";
22
- PgBigSerial53: "int8";
23
- PgBigSerial64: "int8";
24
- PgNumeric: "numeric";
25
- PgNumericNumber: "numeric";
26
- PgNumericBigInt: "numeric";
27
- PgReal: "float4";
28
- PgDoublePrecision: "float8";
29
- PgBoolean: "bool";
30
- PgText: "text";
31
- PgVarchar: "varchar";
32
- PgChar: "bpchar";
33
- PgUUID: "uuid";
34
- PgDate: "date";
35
- PgDateString: "date";
36
- PgInterval: "interval";
37
- PgJson: "json";
38
- PgJsonb: "jsonb";
39
- PgInet: "inet";
40
- PgCidr: "cidr";
41
- PgMacaddr: "macaddr";
42
- PgMacaddr8: "macaddr8";
43
- PgPointTuple: "point";
44
- PgPointObject: "point";
45
- PgLine: "line";
46
- PgLineABC: "line";
47
- PgGeometry: "geometry";
48
- PgGeometryObject: "geometry";
49
- PgVector: "vector";
50
- PgHalfVector: "halfvec";
51
- PgSparseVector: "sparsevec";
52
- PgBinaryVector: "bit";
53
- PgCustomColumn: "unknown";
21
+ PgSmallInt: "int2";
22
+ PgInteger: "int4";
23
+ PgBigInt53: "int8";
24
+ PgBigInt64: "int8";
25
+ PgSmallSerial: "int2";
26
+ PgSerial: "int4";
27
+ PgBigSerial53: "int8";
28
+ PgBigSerial64: "int8";
29
+ PgNumeric: "numeric";
30
+ PgNumericNumber: "numeric";
31
+ PgNumericBigInt: "numeric";
32
+ PgReal: "float4";
33
+ PgDoublePrecision: "float8";
34
+ PgBoolean: "bool";
35
+ PgText: "text";
36
+ PgVarchar: "varchar";
37
+ PgChar: "bpchar";
38
+ PgUUID: "uuid";
39
+ PgDate: "date";
40
+ PgDateString: "date";
41
+ PgInterval: "interval";
42
+ PgJson: "json";
43
+ PgJsonb: "jsonb";
44
+ PgInet: "inet";
45
+ PgCidr: "cidr";
46
+ PgMacaddr: "macaddr";
47
+ PgMacaddr8: "macaddr8";
48
+ PgPointTuple: "point";
49
+ PgPointObject: "point";
50
+ PgLine: "line";
51
+ PgLineABC: "line";
52
+ PgGeometry: "geometry";
53
+ PgGeometryObject: "geometry";
54
+ PgVector: "vector";
55
+ PgHalfVector: "halfvec";
56
+ PgSparseVector: "sparsevec";
57
+ PgBinaryVector: "bit";
58
+ PgCustomColumn: "unknown";
54
59
  }
55
60
 
56
- type TableLike = { readonly _: { readonly brand: "Table"; readonly name: string; readonly schema: string | undefined; readonly columns: object } };
57
- type ViewLike = { readonly _: { readonly brand: "View"; readonly name: string; readonly selectedFields: object } };
58
- type EnumLike = { readonly enumName: string; readonly enumValues: readonly string[] };
61
+ type TableLike = {
62
+ readonly _: {
63
+ readonly brand: "Table";
64
+ readonly name: string;
65
+ readonly schema: string | undefined;
66
+ readonly columns: object;
67
+ };
68
+ };
69
+ type ViewLike = {
70
+ readonly _: {
71
+ readonly brand: "View";
72
+ readonly name: string;
73
+ readonly selectedFields: object;
74
+ };
75
+ };
76
+ type EnumLike = {
77
+ readonly enumName: string;
78
+ readonly enumValues: readonly string[];
79
+ };
59
80
  type ColumnLike = { readonly _: ColumnConfig };
60
81
  type ColumnConfig = {
61
- readonly brand: "Column";
62
- readonly name: string;
63
- readonly columnType: string;
64
- readonly notNull: boolean;
65
- readonly hasDefault: boolean;
66
- readonly hasRuntimeDefault: boolean;
67
- readonly enumValues: readonly string[] | undefined;
68
- readonly data: unknown;
69
- readonly baseColumn: unknown;
82
+ readonly brand: "Column";
83
+ readonly name: string;
84
+ readonly columnType: string;
85
+ readonly notNull: boolean;
86
+ readonly hasDefault: boolean;
87
+ readonly hasRuntimeDefault: boolean;
88
+ readonly enumValues: readonly string[] | undefined;
89
+ readonly data: unknown;
90
+ readonly baseColumn: unknown;
70
91
  };
71
92
 
72
93
  /** Values of an exported `pgEnum` (array or object form). */
73
- type EnumValues<X> =
74
- X extends { readonly enumValues: readonly [string, ...string[]] } ? X["enumValues"][number]
75
- : X extends { (): { readonly _: { readonly data: infer D extends string } } } ? D
76
- : never;
94
+ type EnumValues<X> = X extends {
95
+ readonly enumValues: readonly [string, ...string[]];
96
+ }
97
+ ? X["enumValues"][number]
98
+ : X extends () => { readonly _: { readonly data: infer D extends string } }
99
+ ? D
100
+ : never;
77
101
 
78
102
  /** `$types` registry: exported enums by export name. */
79
- type Enums<S> = { -readonly [K in keyof S as S[K] extends EnumLike ? K : never]: EnumValues<S[K]> };
103
+ type Enums<S> = {
104
+ -readonly [K in keyof S as S[K] extends EnumLike ? K : never]: EnumValues<
105
+ S[K]
106
+ >;
107
+ };
80
108
 
81
- type LastOf<U> = (U extends unknown ? (x: () => U) => void : never) extends (x: infer F) => void ? (F extends () => infer L ? L : never) : never;
109
+ type LastOf<U> = (U extends unknown ? (x: () => U) => void : never) extends (
110
+ x: infer F,
111
+ ) => void
112
+ ? F extends () => infer L
113
+ ? L
114
+ : never
115
+ : never;
82
116
 
83
117
  /** Name of the exported enum whose values are exactly `V` (any one when several match), else `text`. */
84
- type EnumName<V, E> =
85
- { [K in keyof E]: [E[K]] extends [V] ? ([V] extends [E[K]] ? K : never) : never }[keyof E] extends infer N
86
- ? [N] extends [never] ? "text" : LastOf<N> & string
87
- : never;
88
-
89
- type Opt<Opts, K extends keyof FromDrizzleOptions, D> = Opts extends { readonly [P in K]: infer V extends string } ? V : D;
118
+ type EnumName<V, E> = {
119
+ [K in keyof E]: [E[K]] extends [V] ? ([V] extends [E[K]] ? K : never) : never;
120
+ }[keyof E] extends infer N
121
+ ? [N] extends [never]
122
+ ? "text"
123
+ : LastOf<N> & string
124
+ : never;
125
+
126
+ type Opt<Opts, K extends keyof FromDrizzleOptions, D> = Opts extends {
127
+ readonly [P in K]: infer V extends string;
128
+ }
129
+ ? V
130
+ : D;
90
131
 
91
132
  /** Postgres type of a column config. */
92
- type PgTypeOf<D extends ColumnConfig, Opts = {}, E = {}> =
93
- D extends { readonly typesqlType: infer T extends string } ? T
94
- : D["columnType"] extends keyof DrizzleColumnTypes ? DrizzleColumnTypes[D["columnType"]]
95
- : D["columnType"] extends "PgArray" ? (D["baseColumn"] extends ColumnLike ? `${PgTypeOf<D["baseColumn"]["_"], Opts, E>}[]` : "unknown[]")
96
- : D["columnType"] extends "PgTimestamp" | "PgTimestampString" ? Opt<Opts, "timestamp", "timestamp">
97
- : D["columnType"] extends "PgTime" ? Opt<Opts, "time", "time">
98
- : D["columnType"] extends "PgEnumColumn" ? EnumName<(D["enumValues"] & readonly string[])[number], E>
99
- : D["columnType"] extends "PgEnumObjectColumn" ? EnumName<D["data"], E>
100
- : "unknown";
133
+ type PgTypeOf<D extends ColumnConfig, Opts = {}, E = {}> = D extends {
134
+ readonly typesqlType: infer T extends string;
135
+ }
136
+ ? T
137
+ : D["columnType"] extends keyof DrizzleColumnTypes
138
+ ? DrizzleColumnTypes[D["columnType"]]
139
+ : D["columnType"] extends "PgArray"
140
+ ? D["baseColumn"] extends ColumnLike
141
+ ? `${PgTypeOf<D["baseColumn"]["_"], Opts, E>}[]`
142
+ : "unknown[]"
143
+ : D["columnType"] extends "PgTimestamp" | "PgTimestampString"
144
+ ? Opt<Opts, "timestamp", "timestamp">
145
+ : D["columnType"] extends "PgTime"
146
+ ? Opt<Opts, "time", "time">
147
+ : D["columnType"] extends "PgEnumColumn"
148
+ ? EnumName<(D["enumValues"] & readonly string[])[number], E>
149
+ : D["columnType"] extends "PgEnumObjectColumn"
150
+ ? EnumName<D["data"], E>
151
+ : "unknown";
101
152
 
102
153
  /** The descriptor as the matching core helper (`Col`, `Nullable`, `Generated`, `NullableGenerated`). */
103
- type Desc<T extends string, N, H> =
104
- N extends true ? (H extends true ? NullableGenerated<T> : Nullable<T>) : H extends true ? Generated<T> : Col<T>;
154
+ type Desc<T extends string, N, H> = N extends true
155
+ ? H extends true
156
+ ? NullableGenerated<T>
157
+ : Nullable<T>
158
+ : H extends true
159
+ ? Generated<T>
160
+ : Col<T>;
105
161
 
106
162
  type ColOf<D extends ColumnConfig, Opts, E> = Desc<
107
- PgTypeOf<D, Opts, E>,
108
- D["notNull"] extends true ? false : true,
109
- D["hasDefault"] extends true ? (D["hasRuntimeDefault"] extends true ? false : true) : false
163
+ PgTypeOf<D, Opts, E>,
164
+ D["notNull"] extends true ? false : true,
165
+ D["hasDefault"] extends true
166
+ ? D["hasRuntimeDefault"] extends true
167
+ ? false
168
+ : true
169
+ : false
110
170
  >;
111
171
 
112
- type Cased<N extends string, Opts> =
113
- Opts extends { readonly casing: "snake_case" } ? ToSnakeCase<N>
114
- : Opts extends { readonly casing: "camelCase" } ? ToCamelCase<N>
115
- : N;
172
+ type Cased<N extends string, Opts> = Opts extends {
173
+ readonly casing: "snake_case";
174
+ }
175
+ ? ToSnakeCase<N>
176
+ : Opts extends { readonly casing: "camelCase" }
177
+ ? ToCamelCase<N>
178
+ : N;
116
179
 
117
180
  type Columns<C, Opts, E> = {
118
- -readonly [K in keyof C as C[K] extends ColumnLike ? Cased<C[K]["_"]["name"], Opts> : never]: C[K] extends ColumnLike ? ColOf<C[K]["_"], Opts, E> : never;
181
+ -readonly [K in keyof C as C[K] extends ColumnLike
182
+ ? Cased<C[K]["_"]["name"], Opts>
183
+ : never]: C[K] extends ColumnLike ? ColOf<C[K]["_"], Opts, E> : never;
119
184
  };
120
185
 
121
186
  type Aliased = { readonly _: { readonly brand: "SQL.Aliased" } };
122
187
  type ViewColumns<F, Opts, E> = {
123
- -readonly [K in keyof F as F[K] extends ColumnLike ? Cased<F[K]["_"]["name"], Opts> : F[K] extends Aliased ? K : never]:
124
- F[K] extends ColumnLike ? Desc<PgTypeOf<F[K]["_"], Opts, E>, F[K]["_"]["notNull"] extends true ? false : true, false> : Nullable<"unknown">;
188
+ -readonly [K in keyof F as F[K] extends ColumnLike
189
+ ? Cased<F[K]["_"]["name"], Opts>
190
+ : F[K] extends Aliased
191
+ ? K
192
+ : never]: F[K] extends ColumnLike
193
+ ? Desc<
194
+ PgTypeOf<F[K]["_"], Opts, E>,
195
+ F[K]["_"]["notNull"] extends true ? false : true,
196
+ false
197
+ >
198
+ : Nullable<"unknown">;
125
199
  };
126
200
 
127
- type Relation<X, Opts, E> =
128
- X extends TableLike ? Columns<X["_"]["columns"], Opts, E>
129
- : X extends ViewLike ? { readonly $view: ViewColumns<X["_"]["selectedFields"], Opts, E> }
130
- : never;
201
+ type Relation<X, Opts, E> = X extends TableLike
202
+ ? Columns<X["_"]["columns"], Opts, E>
203
+ : X extends ViewLike
204
+ ? { readonly $view: ViewColumns<X["_"]["selectedFields"], Opts, E> }
205
+ : never;
131
206
 
132
207
  /** Postgres schema of a table outside `public`. */
133
- type SchemaOf<X> = X extends TableLike ? Exclude<X["_"]["schema"], undefined | "public"> : never;
134
- type NameIn<X, N> = X extends TableLike ? (X["_"]["schema"] extends N ? X["_"]["name"] : never) : never;
135
- type TopName<X> =
136
- X extends TableLike ? ([SchemaOf<X>] extends [never] ? X["_"]["name"] : never)
137
- : X extends ViewLike ? X["_"]["name"]
138
- : never;
139
-
140
- type Build<S, Opts, E = Enums<S>> =
141
- { -readonly [K in keyof S as TopName<S[K]>]: Relation<S[K], Opts, E> }
142
- & { [N in { [K in keyof S]: SchemaOf<S[K]> }[keyof S]]: { -readonly [K in keyof S as NameIn<S[K], N>]: Relation<S[K], Opts, E> } }
143
- & (keyof E extends never ? {} : { $types: E });
208
+ type SchemaOf<X> = X extends TableLike
209
+ ? Exclude<X["_"]["schema"], undefined | "public">
210
+ : never;
211
+ type NameIn<X, N> = X extends TableLike
212
+ ? X["_"]["schema"] extends N
213
+ ? X["_"]["name"]
214
+ : never
215
+ : never;
216
+ type TopName<X> = X extends TableLike
217
+ ? [SchemaOf<X>] extends [never]
218
+ ? X["_"]["name"]
219
+ : never
220
+ : X extends ViewLike
221
+ ? X["_"]["name"]
222
+ : never;
223
+
224
+ type Build<S, Opts, E = Enums<S>> = {
225
+ -readonly [K in keyof S as TopName<S[K]>]: Relation<S[K], Opts, E>;
226
+ } & {
227
+ [N in { [K in keyof S]: SchemaOf<S[K]> }[keyof S]]: {
228
+ -readonly [K in keyof S as NameIn<S[K], N>]: Relation<S[K], Opts, E>;
229
+ };
230
+ } & (keyof E extends never ? {} : { $types: E });
144
231
 
145
232
  type Flat<T> = { [K in keyof T]: T[K] } & {};
146
233
 
@@ -152,5 +239,9 @@ type Flat<T> = { [K in keyof T]: T[K] } & {};
152
239
  * exported `pgEnum`s are registered under `$types` by export name. Anything else exported
153
240
  * (relations, sequences, helpers) is ignored.
154
241
  */
155
- export type FromDrizzle<Schema, Opts extends FromDrizzleOptions = {}> =
156
- Schema extends TableLike | ViewLike ? Flat<Build<{ [K in Schema["_"]["name"]]: Schema }, Opts>> : Flat<Build<Schema, Opts>>;
242
+ export type FromDrizzle<
243
+ Schema,
244
+ Opts extends FromDrizzleOptions = {},
245
+ > = Schema extends TableLike | ViewLike
246
+ ? Flat<Build<{ [K in Schema["_"]["name"]]: Schema }, Opts>>
247
+ : Flat<Build<Schema, Opts>>;
package/src/index.ts CHANGED
@@ -1,15 +1,22 @@
1
- import { createTransactionalSql, type DefaultTypeMap, type TransactionalSql } from "@typesql/core";
2
- import { driver, type DrizzleDatabase } from "./client.js";
1
+ import type { DefaultTypeMap, TransactionalSql } from "@typesql/core";
2
+ import { createTransactionalSql } from "@typesql/core/adapter";
3
+ import { type DrizzleDatabase, driver } from "./client.js";
3
4
  import type { FromDrizzle, FromDrizzleOptions } from "./from-drizzle.js";
4
5
 
5
- export type { FromDrizzle, FromDrizzleOptions, DrizzleColumnTypes } from "./from-drizzle.js";
6
+ export { type DrizzleDatabase, executor } from "./client.js";
7
+ export type {
8
+ DrizzleColumnTypes,
9
+ FromDrizzle,
10
+ FromDrizzleOptions,
11
+ } from "./from-drizzle.js";
6
12
  export { pgType } from "./pg-type.js";
7
- export { executor, type DrizzleDatabase } from "./client.js";
8
- export type { Sql, Query, RowType, ParamsType, DefaultTypeMap, TypeMap, Executor, TransactionalSql } from "@typesql/core";
9
- export { NoResultError } from "@typesql/core";
10
13
 
11
14
  /** What `createSql<typeof schema>(db)` returns: core's `Sql` over `FromDrizzle<Schema, Opts>`, with `transaction(fn)`. */
12
- export type DrizzleSql<Schema, TM = DefaultTypeMap, Opts extends FromDrizzleOptions = {}> = TransactionalSql<FromDrizzle<Schema, Opts>, TM>;
15
+ export type DrizzleSql<
16
+ Schema,
17
+ TM = DefaultTypeMap,
18
+ Opts extends FromDrizzleOptions = {},
19
+ > = TransactionalSql<FromDrizzle<Schema, Opts>, TM>;
13
20
 
14
21
  /**
15
22
  * `createSql` from core with the schema converted from Drizzle definitions:
@@ -17,6 +24,13 @@ export type DrizzleSql<Schema, TM = DefaultTypeMap, Opts extends FromDrizzleOpti
17
24
  * The queries' `execute*` methods run on `db` (a Drizzle database or transaction, on node-postgres
18
25
  * or postgres.js), and `sql.transaction(fn)` runs `fn` with a `sql` bound to `db.transaction`.
19
26
  */
20
- export function createSql<Schema, TM = DefaultTypeMap, Opts extends FromDrizzleOptions = {}>(db?: DrizzleDatabase): DrizzleSql<Schema, TM, Opts> {
21
- return createTransactionalSql<FromDrizzle<Schema, Opts>, TM, DrizzleDatabase>(db, driver) as DrizzleSql<Schema, TM, Opts>;
27
+ export function createSql<
28
+ Schema,
29
+ TM = DefaultTypeMap,
30
+ Opts extends FromDrizzleOptions = {},
31
+ >(db?: DrizzleDatabase): DrizzleSql<Schema, TM, Opts> {
32
+ return createTransactionalSql<FromDrizzle<Schema, Opts>, TM, DrizzleDatabase>(
33
+ db,
34
+ driver,
35
+ ) as DrizzleSql<Schema, TM, Opts>;
22
36
  }
package/src/pg-type.ts CHANGED
@@ -3,7 +3,10 @@
3
3
  * cannot tell it: `pgType(timestamp("at", { withTimezone: true }), "timestamptz")`, or a
4
4
  * `customType` column. Returns the builder unchanged at runtime.
5
5
  */
6
- export function pgType<B, const T extends string>(builder: B, type: T): B & { readonly _: { readonly typesqlType: T } } {
7
- void type;
8
- return builder as B & { readonly _: { readonly typesqlType: T } };
6
+ export function pgType<B, const T extends string>(
7
+ builder: B,
8
+ type: T,
9
+ ): B & { readonly _: { readonly typesqlType: T } } {
10
+ void type;
11
+ return builder as B & { readonly _: { readonly typesqlType: T } };
9
12
  }