@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.
- package/dist/create-sql.d.ts +3 -2
- package/dist/create-sql.d.ts.map +1 -1
- package/dist/create-sql.js +4 -3
- package/dist/create-sql.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/query.d.ts +24 -3
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +32 -2
- package/dist/query.js.map +1 -1
- package/package.json +1 -1
- package/src/create-sql.ts +21 -11
- package/src/index.ts +1 -1
- package/src/migrations.ts +3 -1
- package/src/query.ts +45 -4
package/dist/create-sql.d.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 { 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
|
-
|
|
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
|
package/dist/create-sql.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/create-sql.js
CHANGED
|
@@ -48,15 +48,16 @@ function build(text, rest) {
|
|
|
48
48
|
}
|
|
49
49
|
return slots ? splice(positional, slots, values) : { text: positional, values };
|
|
50
50
|
}
|
|
51
|
-
|
|
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) => {
|
package/dist/create-sql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-sql.js","sourceRoot":"","sources":["../src/create-sql.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,SAAS,
|
|
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";
|
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,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;
|
|
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,
|
|
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
|
-
|
|
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
|
package/dist/query.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
2
|
-
|
|
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":"
|
|
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
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 &
|
|
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 &
|
|
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 &
|
|
167
|
+
query: Q & GateSlottedCheck<DB, TM, Q, S>,
|
|
159
168
|
slots: S & SlotsFor<Q, S>,
|
|
160
|
-
...params:
|
|
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 &
|
|
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 &
|
|
189
|
+
text: Text & GateFragCheck<Text, true>,
|
|
181
190
|
slots: S & SlotsFor<Text, S>,
|
|
182
|
-
...params: A &
|
|
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
|
-
|
|
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 &
|
|
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
|
-
|
|
36
|
-
|
|
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> {
|