@typesql/core 0.0.1 → 0.0.2

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.
@@ -4,7 +4,7 @@ import type { AnyErr, SqlError } from "./engine/errors.js";
4
4
  import type { CheckCarried, Enc, InlineMarker, RewriteInlineStr, Skip } from "./engine/inline.js";
5
5
  import type { HasSlots, JoinedText, MaxParamStr, QuotedIdent, SlotNames, Splice, SpliceCarried, Take, UnknownTuple } from "./engine/splice.js";
6
6
  import type { DefaultTypeMap } from "./type-map/index.js";
7
- import { type CARRIED, type Fragment, type Query, type TextType } from "./query.js";
7
+ import { type CARRIED, type Executor, type Fragment, type Query, type TextType } from "./query.js";
8
8
  /** Fragments accepted in a slot object: fragments or whole queries (subqueries). */
9
9
  export type Slottable = Fragment<string, readonly unknown[], readonly unknown[]> | Query<unknown, readonly unknown[], string>;
10
10
  export type SlotMap = {
@@ -115,6 +115,7 @@ export interface Sql<DB, TM> {
115
115
  /** Raw, untyped SQL text. Splicing it forces the override path (`sql.as`). */
116
116
  raw(text: string): Fragment<string, [], []>;
117
117
  }
118
- export declare function createSql<DB, TM = DefaultTypeMap>(): Sql<DB, TM>;
118
+ /** `executor`, when given, is what the queries' `execute*` methods run on by default. */
119
+ export declare function createSql<DB, TM = DefaultTypeMap>(executor?: Executor): Sql<DB, TM>;
119
120
  export {};
120
121
  //# sourceMappingURL=create-sql.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-sql.d.ts","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-sql.d.ts","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"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"}
@@ -48,15 +48,16 @@ function build(text, rest) {
48
48
  }
49
49
  return slots ? splice(positional, slots, values) : { text: positional, values };
50
50
  }
51
- export function createSql() {
51
+ /** `executor`, when given, is what the queries' `execute*` methods run on by default. */
52
+ export function createSql(executor) {
52
53
  const call = (query, ...rest) => {
53
54
  const { text, values } = build(query, rest);
54
- return makeQuery(text, values);
55
+ return makeQuery(text, values, executor);
55
56
  };
56
57
  const api = Object.assign(call, {
57
58
  as: (query, ...rest) => {
58
59
  const { text, values } = build(query, rest);
59
- return makeQuery(text, values);
60
+ return makeQuery(text, values, executor);
60
61
  },
61
62
  param,
62
63
  fragment: (text, ...rest) => {
@@ -1 +1 @@
1
- {"version":3,"file":"create-sql.js","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-sql.js","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createSql, type Sql, type SlotMap, type Slottable, type SlotsFor, type SplicedText } from "./create-sql.js";
2
- export { makeQuery, makeFragment, type Query, type Fragment, type RowType, type ParamsType, type TextType, type ROW, type PARAMS, type TEXT, type CARRIED } from "./query.js";
2
+ export { makeQuery, makeFragment, NoResultError, type Executor, type Query, type Fragment, type RowType, type ParamsType, type TextType, type ROW, type PARAMS, type TEXT, type CARRIED } from "./query.js";
3
3
  export { param } from "./runtime/inline.js";
4
4
  export type { InlineMarker, Enc, CheckEnc, DescribeEnc, RewriteInlineStr } from "./engine/inline.js";
5
5
  export { splice, renumberParams, maxParam, quoteIdent, joinFragments, hasSlots, rewriteNamed, type Spliceable, type SlotValues } from "./runtime/splice.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC9K,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5J,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChI,YAAY,EACV,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAC7G,UAAU,EAAE,YAAY,EAAE,iBAAiB,GAC5C,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5F,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7H,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAChF,YAAY,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC3G,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,YAAY,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5M,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5J,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChI,YAAY,EACV,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAC7G,UAAU,EAAE,YAAY,EAAE,iBAAiB,GAC5C,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5F,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7H,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAChF,YAAY,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC3G,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,YAAY,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createSql } from "./create-sql.js";
2
- export { makeQuery, makeFragment } from "./query.js";
2
+ export { makeQuery, makeFragment, NoResultError } from "./query.js";
3
3
  export { param } from "./runtime/inline.js";
4
4
  export { splice, renumberParams, maxParam, quoteIdent, joinFragments, hasSlots, rewriteNamed } from "./runtime/splice.js";
5
5
  export { Migrations, migrations, runMigrations } from "./migrations.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2E,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAA2H,MAAM,YAAY,CAAC;AAC9K,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAoC,MAAM,qBAAqB,CAAC;AAgB5J,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAyD,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2E,MAAM,iBAAiB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAA0I,MAAM,YAAY,CAAC;AAC5M,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAoC,MAAM,qBAAqB,CAAC;AAgB5J,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAyD,MAAM,iBAAiB,CAAC"}
package/dist/query.d.ts CHANGED
@@ -1,17 +1,34 @@
1
1
  /**
2
- * Runtime query object: `{ text, values }` plus phantom row/param/text types.
3
- * A `Fragment` is a piece of SQL that can be spliced into a query via `{slot}`.
2
+ * Runtime query object: `{ text, values }` plus phantom row/param/text types, and `execute*`
3
+ * methods that run it. A `Fragment` is a piece of SQL that can be spliced into a query via `{slot}`.
4
4
  */
5
5
  export declare const ROW: unique symbol;
6
6
  export declare const PARAMS: unique symbol;
7
7
  export declare const TEXT: unique symbol;
8
8
  export declare const CARRIED: unique symbol;
9
+ /**
10
+ * Runs a statement and resolves to its rows. Adapters build one from a driver client
11
+ * (`executor(pool)` in `@typesql/pg`); pass it to `createSql(executor)` or to `q.execute(executor)`.
12
+ */
13
+ export type Executor = (text: string, values: readonly unknown[]) => PromiseLike<readonly unknown[]>;
14
+ /** Thrown by `executeTakeFirstOrThrow` when the query returns no rows. */
15
+ export declare class NoResultError extends Error {
16
+ readonly name = "NoResultError";
17
+ readonly text: string;
18
+ constructor(text: string);
19
+ }
9
20
  export interface Query<Row, Params extends readonly unknown[] = readonly unknown[], Text extends string = string> {
10
21
  readonly text: string;
11
22
  readonly values: readonly unknown[];
12
23
  readonly [ROW]?: Row;
13
24
  readonly [PARAMS]?: Params;
14
25
  readonly [TEXT]?: Text;
26
+ /** Run the query and return all rows. Uses `executor` if given, else the one bound by `createSql(executor)`. */
27
+ execute(executor?: Executor): Promise<Row[]>;
28
+ /** The first row, or `undefined` when there are none. */
29
+ executeTakeFirst(executor?: Executor): Promise<Row | undefined>;
30
+ /** The first row; throws `NoResultError` when there are none. */
31
+ executeTakeFirstOrThrow(executor?: Executor): Promise<Row>;
15
32
  }
16
33
  /**
17
34
  * A spliceable piece of SQL. `Text` is the literal when known, `string` when dynamic.
@@ -32,6 +49,10 @@ export type ParamsType<Q> = Q extends {
32
49
  export type TextType<Q> = Q extends {
33
50
  readonly [TEXT]?: infer T extends string;
34
51
  } ? T : string;
35
- export declare function makeQuery<Row, Params extends readonly unknown[], Text extends string = string>(text: string, values: readonly unknown[]): Query<Row, Params, Text>;
52
+ /**
53
+ * A plain object whose `execute*` methods are non-enumerable, so it still deep-equals
54
+ * `{ text, values }` (strictly, too).
55
+ */
56
+ export declare function makeQuery<Row, Params extends readonly unknown[], Text extends string = string>(text: string, values: readonly unknown[], executor?: Executor): Query<Row, Params, Text>;
36
57
  export declare function makeFragment<Text extends string, Params extends readonly unknown[], Carried extends readonly unknown[] = readonly unknown[]>(text: string, values: readonly unknown[]): Fragment<Text, Params, Carried>;
37
58
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,MAAM,CAAC;AACxC,MAAM,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,OAAO,MAAM,CAAC;AAC3C,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,OAAO,MAAM,CAAC;AACzC,MAAM,CAAC,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AAE5C,MAAM,WAAW,KAAK,CAAC,GAAG,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM;IAC9G,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAAE,OAAO,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE;IACrK,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1F,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAClF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AAE9F,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAElK;AAED,wBAAgB,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,EAAE,OAAO,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAEvN"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/dist/query.js CHANGED
@@ -1,5 +1,35 @@
1
- export function makeQuery(text, values) {
2
- return { text, values };
1
+ /** Thrown by `executeTakeFirstOrThrow` when the query returns no rows. */
2
+ export class NoResultError extends Error {
3
+ name = "NoResultError";
4
+ text;
5
+ constructor(text) {
6
+ super("The query returned no rows");
7
+ this.text = text;
8
+ }
9
+ }
10
+ /**
11
+ * A plain object whose `execute*` methods are non-enumerable, so it still deep-equals
12
+ * `{ text, values }` (strictly, too).
13
+ */
14
+ export function makeQuery(text, values, executor) {
15
+ const execute = async (given) => {
16
+ const run = given ?? executor;
17
+ if (!run)
18
+ throw new Error("typesql: no executor: pass one to createSql(executor) or to execute(executor)");
19
+ return Array.from(await run(text, values));
20
+ };
21
+ return Object.defineProperties({ text, values }, {
22
+ execute: { value: execute },
23
+ executeTakeFirst: { value: async (given) => (await execute(given))[0] },
24
+ executeTakeFirstOrThrow: {
25
+ value: async (given) => {
26
+ const rows = await execute(given);
27
+ if (rows.length === 0)
28
+ throw new NoResultError(text);
29
+ return rows[0];
30
+ },
31
+ },
32
+ });
3
33
  }
4
34
  export function makeFragment(text, values) {
5
35
  return { text, values };
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAkCA,MAAM,UAAU,SAAS,CAAuE,IAAY,EAAE,MAA0B;IACtI,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAAkH,IAAY,EAAE,MAA0B;IACpL,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAeA,0EAA0E;AAC1E,MAAM,OAAO,aAAc,SAAQ,KAAK;IACpB,IAAI,GAAG,eAAe,CAAC;IAChC,IAAI,CAAS;IACtB,YAAY,IAAY;QACtB,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAiCD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAuE,IAAY,EAAE,MAA0B,EAAE,QAAmB;IAC3J,MAAM,OAAO,GAAG,KAAK,EAAE,KAAgB,EAAsB,EAAE;QAC7D,MAAM,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAC3G,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC/C,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;QAC3B,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAgB,EAAE,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAClF,uBAAuB,EAAE;YACvB,KAAK,EAAE,KAAK,EAAE,KAAgB,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;SACF;KACF,CAAwC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAkH,IAAY,EAAE,MAA0B;IACpL,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typesql/core",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Type-level Postgres SQL inference for TypeScript. Zero runtime dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/create-sql.ts CHANGED
@@ -4,7 +4,7 @@ import type { AnyErr, SqlError } from "./engine/errors.js";
4
4
  import type { CheckCarried, Enc, InlineMarker, RewriteInlineStr, Skip } from "./engine/inline.js";
5
5
  import type { HasSlots, JoinedText, MaxParamStr, QuotedIdent, SlotNames, Splice, SpliceCarried, Take, UnknownTuple } from "./engine/splice.js";
6
6
  import type { DefaultTypeMap } from "./type-map/index.js";
7
- import { makeFragment, makeQuery, type CARRIED, type Fragment, type Query, type TextType } from "./query.js";
7
+ import { makeFragment, makeQuery, type CARRIED, type Executor, type Fragment, type Query, type TextType } from "./query.js";
8
8
  import { joinFragments, maxParam, quoteIdent, rewriteNamed, splice, type Spliceable } from "./runtime/splice.js";
9
9
  import { hasInline, param, resolveInline } from "./runtime/inline.js";
10
10
 
@@ -122,7 +122,7 @@ type FragCheck<Text extends string, Slotted extends boolean> =
122
122
  : never;
123
123
  /**
124
124
  * Arguments to `sql.fragment`: positional values for its `$n`, or one `:name` object. Applied as
125
- * `...params: A & FragArgs<Text>` with `A` unconstrained: a constraint that goes through
125
+ * `...params: A & BoxFragArgs<Text>` with `A` unconstrained: a constraint that goes through
126
126
  * `Prepared` cannot be resolved during inference, and TS would replace `A` by the constraint.
127
127
  */
128
128
  type FragArgs<Text extends string> =
@@ -141,6 +141,15 @@ type EncNamed<Names extends string[], O> = { [I in keyof Names]: Names[I] extend
141
141
  type JoinedCarried<Items extends readonly unknown[], Acc extends readonly unknown[] = []> =
142
142
  Items extends readonly [infer H, ...infer R] ? JoinedCarried<R, [...Acc, ...(CarriedOf<H> extends infer C extends readonly unknown[] ? C : [])]> : Acc;
143
143
 
144
+ type GateCallCheck<DB, TM, Q extends string> = [DB, TM, Q] extends [infer D, infer M, infer Q2 extends string] ? CallCheck<D, M, Q2> : never;
145
+ type GateSlottedCheck<DB, TM, Q extends string, S> =
146
+ [DB, TM, Q, S] extends [infer D, infer M, infer Q2 extends string, infer S2] ? SlottedCheck<D, M, Q2, S2> : never;
147
+ type GateFragCheck<Text extends string, Slotted extends boolean> =
148
+ [Text, Slotted] extends [infer T2 extends string, infer B extends boolean] ? FragCheck<T2, B> : never;
149
+ type BoxCallArgs<DB, TM, Q extends string> = Extract<{ [K in Q as `${K}`]: CallArgs<DB, TM, K> }[`${Q}`], readonly unknown[]>;
150
+ type BoxSlottedArgs<DB, TM, Q extends string, S> = Extract<{ [K in Q as `${K}`]: SlottedArgs<DB, TM, K, S> }[`${Q}`], readonly unknown[]>;
151
+ type BoxFragArgs<Text extends string> = Extract<{ [K in Text as `${K}`]: FragArgs<K> }[`${Text}`], readonly unknown[]>;
152
+
144
153
  /**
145
154
  * The typed SQL function returned by `createSql<DB, TypeMap>()`.
146
155
  *
@@ -153,11 +162,11 @@ type JoinedCarried<Items extends readonly unknown[], Acc extends readonly unknow
153
162
  * so the compile error lands on the SQL text.
154
163
  */
155
164
  export interface Sql<DB, TM> {
156
- <const Q extends string>(query: Q & CallCheck<DB, TM, Q>, ...params: CallArgs<DB, TM, Q>): Query<RowOf<DB, TM, PText<Q>>, ParamsOf<DB, TM, PText<Q>>, PText<Q>>;
165
+ <const Q extends string>(query: Q & GateCallCheck<DB, TM, Q>, ...params: BoxCallArgs<DB, TM, Q>): Query<RowOf<DB, TM, PText<Q>>, ParamsOf<DB, TM, PText<Q>>, PText<Q>>;
157
166
  <const Q extends string, const S extends SlotMap>(
158
- query: Q & SlottedCheck<DB, TM, Q, S>,
167
+ query: Q & GateSlottedCheck<DB, TM, Q, S>,
159
168
  slots: S & SlotsFor<Q, S>,
160
- ...params: SlottedArgs<DB, TM, Q, S>
169
+ ...params: BoxSlottedArgs<DB, TM, Q, S>
161
170
  ): Query<RowOf<DB, TM, SplicedOr<Q, S>>, ParamsOf<DB, TM, SplicedOr<Q, S>>, SplicedOr<Q, S>>;
162
171
 
163
172
  /** Escape hatch: bypass inference and assert the row type. Accepts slots, `:name` and inline params like the main call. */
@@ -175,11 +184,11 @@ export interface Sql<DB, TM> {
175
184
  * `:name` and inline parameters are resolved at creation, so a fragment can be reused; the
176
185
  * values' types are checked when the fragment is spliced.
177
186
  */
178
- fragment<const Text extends string, const A extends readonly unknown[]>(text: Text & FragCheck<Text, false>, ...params: A & FragArgs<Text>): Fragment<PText<Text>, UnknownTuple<FragCount<Text>>, FragCarried<Text, A>>;
187
+ fragment<const Text extends string, const A extends readonly unknown[]>(text: Text & GateFragCheck<Text, false>, ...params: A & BoxFragArgs<Text>): Fragment<PText<Text>, UnknownTuple<FragCount<Text>>, FragCarried<Text, A>>;
179
188
  fragment<const Text extends string, const S extends SlotMap, const A extends readonly unknown[]>(
180
- text: Text & FragCheck<Text, true>,
189
+ text: Text & GateFragCheck<Text, true>,
181
190
  slots: S & SlotsFor<Text, S>,
182
- ...params: A & FragArgs<Text>
191
+ ...params: A & BoxFragArgs<Text>
183
192
  ): Fragment<SplicedOr<Text, S>, readonly unknown[], [...FragCarried<Text, A>, ...SpliceCarried<PText<Text>, SlotCarried<S>>]>;
184
193
 
185
194
  /** Quoted identifier fragment: `sql.id("col")` → `"col"`, `sql.id("s", "t")` → `"s"."t"`. */
@@ -239,15 +248,16 @@ function build(text: string, rest: readonly unknown[]): { text: string; values:
239
248
  return slots ? splice(positional, slots, values) : { text: positional, values };
240
249
  }
241
250
 
242
- export function createSql<DB, TM = DefaultTypeMap>(): Sql<DB, TM> {
251
+ /** `executor`, when given, is what the queries' `execute*` methods run on by default. */
252
+ export function createSql<DB, TM = DefaultTypeMap>(executor?: Executor): Sql<DB, TM> {
243
253
  const call = (query: string, ...rest: readonly unknown[]) => {
244
254
  const { text, values } = build(query, rest);
245
- return makeQuery(text, values);
255
+ return makeQuery(text, values, executor);
246
256
  };
247
257
  const api = Object.assign(call, {
248
258
  as: (query: string, ...rest: readonly unknown[]) => {
249
259
  const { text, values } = build(query, rest);
250
- return makeQuery(text, values);
260
+ return makeQuery(text, values, executor);
251
261
  },
252
262
  param,
253
263
  fragment: (text: string, ...rest: readonly unknown[]) => {
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createSql, type Sql, type SlotMap, type Slottable, type SlotsFor, type SplicedText } from "./create-sql.js";
2
- export { makeQuery, makeFragment, type Query, type Fragment, type RowType, type ParamsType, type TextType, type ROW, type PARAMS, type TEXT, type CARRIED } from "./query.js";
2
+ export { makeQuery, makeFragment, NoResultError, type Executor, type Query, type Fragment, type RowType, type ParamsType, type TextType, type ROW, type PARAMS, type TEXT, type CARRIED } from "./query.js";
3
3
  export { param } from "./runtime/inline.js";
4
4
  export type { InlineMarker, Enc, CheckEnc, DescribeEnc, RewriteInlineStr } from "./engine/inline.js";
5
5
  export { splice, renumberParams, maxParam, quoteIdent, joinFragments, hasSlots, rewriteNamed, type Spliceable, type SlotValues } from "./runtime/splice.js";
package/src/migrations.ts CHANGED
@@ -9,6 +9,8 @@ export type ValidateDdl<DB, Q extends string> =
9
9
  string extends Q ? SqlError<"migrations need a string literal; use .raw() for SQL the type checker cannot see", null>
10
10
  : ApplyDdl<DB, Q> extends infer R ? (R extends AnyErr ? R : Q) : never;
11
11
 
12
+ type GateValidateDdl<DB, Q extends string> = [DB, Q] extends [infer D, infer Q2 extends string] ? ValidateDdl<D, Q2> : never;
13
+
12
14
  /**
13
15
  * An immutable list of migration statements plus, at the type level, the schema they
14
16
  * produce. Build one with `migrations()`; every `.add()` returns a new builder.
@@ -38,7 +40,7 @@ export class Migrations<DB = {}> {
38
40
  * builder's `schema` is the schema after it. Queries and DML (seed data) are validated
39
41
  * and leave the schema unchanged.
40
42
  */
41
- add<const Q extends string>(ddl: Q & ValidateDdl<DB, Q>): Migrations<ApplyDdl<DB, Q>> {
43
+ add<const Q extends string>(ddl: Q & GateValidateDdl<DB, Q>): Migrations<ApplyDdl<DB, Q>> {
42
44
  return new Migrations([...this.statements, ddl]);
43
45
  }
44
46
 
package/src/query.ts CHANGED
@@ -1,18 +1,40 @@
1
1
  /**
2
- * Runtime query object: `{ text, values }` plus phantom row/param/text types.
3
- * A `Fragment` is a piece of SQL that can be spliced into a query via `{slot}`.
2
+ * Runtime query object: `{ text, values }` plus phantom row/param/text types, and `execute*`
3
+ * methods that run it. A `Fragment` is a piece of SQL that can be spliced into a query via `{slot}`.
4
4
  */
5
5
  export declare const ROW: unique symbol;
6
6
  export declare const PARAMS: unique symbol;
7
7
  export declare const TEXT: unique symbol;
8
8
  export declare const CARRIED: unique symbol;
9
9
 
10
+ /**
11
+ * Runs a statement and resolves to its rows. Adapters build one from a driver client
12
+ * (`executor(pool)` in `@typesql/pg`); pass it to `createSql(executor)` or to `q.execute(executor)`.
13
+ */
14
+ export type Executor = (text: string, values: readonly unknown[]) => PromiseLike<readonly unknown[]>;
15
+
16
+ /** Thrown by `executeTakeFirstOrThrow` when the query returns no rows. */
17
+ export class NoResultError extends Error {
18
+ override readonly name = "NoResultError";
19
+ readonly text: string;
20
+ constructor(text: string) {
21
+ super("The query returned no rows");
22
+ this.text = text;
23
+ }
24
+ }
25
+
10
26
  export interface Query<Row, Params extends readonly unknown[] = readonly unknown[], Text extends string = string> {
11
27
  readonly text: string;
12
28
  readonly values: readonly unknown[];
13
29
  readonly [ROW]?: Row;
14
30
  readonly [PARAMS]?: Params;
15
31
  readonly [TEXT]?: Text;
32
+ /** Run the query and return all rows. Uses `executor` if given, else the one bound by `createSql(executor)`. */
33
+ execute(executor?: Executor): Promise<Row[]>;
34
+ /** The first row, or `undefined` when there are none. */
35
+ executeTakeFirst(executor?: Executor): Promise<Row | undefined>;
36
+ /** The first row; throws `NoResultError` when there are none. */
37
+ executeTakeFirstOrThrow(executor?: Executor): Promise<Row>;
16
38
  }
17
39
 
18
40
  /**
@@ -32,8 +54,27 @@ export type RowType<Q> = Q extends Query<infer R, readonly unknown[], string> ?
32
54
  export type ParamsType<Q> = Q extends { readonly [PARAMS]?: infer P } ? P : never;
33
55
  export type TextType<Q> = Q extends { readonly [TEXT]?: infer T extends string } ? T : string;
34
56
 
35
- export function makeQuery<Row, Params extends readonly unknown[], Text extends string = string>(text: string, values: readonly unknown[]): Query<Row, Params, Text> {
36
- return { text, values };
57
+ /**
58
+ * A plain object whose `execute*` methods are non-enumerable, so it still deep-equals
59
+ * `{ text, values }` (strictly, too).
60
+ */
61
+ export function makeQuery<Row, Params extends readonly unknown[], Text extends string = string>(text: string, values: readonly unknown[], executor?: Executor): Query<Row, Params, Text> {
62
+ const execute = async (given?: Executor): Promise<unknown[]> => {
63
+ const run = given ?? executor;
64
+ if (!run) throw new Error("typesql: no executor: pass one to createSql(executor) or to execute(executor)");
65
+ return Array.from(await run(text, values));
66
+ };
67
+ return Object.defineProperties({ text, values }, {
68
+ execute: { value: execute },
69
+ executeTakeFirst: { value: async (given?: Executor) => (await execute(given))[0] },
70
+ executeTakeFirstOrThrow: {
71
+ value: async (given?: Executor) => {
72
+ const rows = await execute(given);
73
+ if (rows.length === 0) throw new NoResultError(text);
74
+ return rows[0];
75
+ },
76
+ },
77
+ }) as unknown as Query<Row, Params, Text>;
37
78
  }
38
79
 
39
80
  export function makeFragment<Text extends string, Params extends readonly unknown[], Carried extends readonly unknown[] = readonly unknown[]>(text: string, values: readonly unknown[]): Fragment<Text, Params, Carried> {