@typed-sql/mysql 1.0.0-rc.0 → 1.0.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 +76 -0
- package/README.md +26 -55
- package/dist/packages/mysql/src/decoding.d.ts +26 -0
- package/dist/packages/mysql/src/decoding.d.ts.map +1 -0
- package/dist/packages/mysql/src/decoding.js +172 -0
- package/dist/packages/mysql/src/decoding.js.map +1 -0
- package/dist/packages/mysql/src/mysql2.d.ts.map +1 -1
- package/dist/packages/mysql/src/mysql2.js +106 -1
- package/dist/packages/mysql/src/mysql2.js.map +1 -1
- package/dist/packages/mysql/src/prepared.d.ts +20 -0
- package/dist/packages/mysql/src/prepared.d.ts.map +1 -0
- package/dist/packages/mysql/src/prepared.js +47 -0
- package/dist/packages/mysql/src/prepared.js.map +1 -0
- package/dist/packages/mysql/src/runtime.d.ts +17 -8
- package/dist/packages/mysql/src/runtime.d.ts.map +1 -1
- package/dist/packages/mysql/src/runtime.js +240 -66
- package/dist/packages/mysql/src/runtime.js.map +1 -1
- package/dist/packages/mysql/src/stream.d.ts +32 -0
- package/dist/packages/mysql/src/stream.d.ts.map +1 -0
- package/dist/packages/mysql/src/stream.js +175 -0
- package/dist/packages/mysql/src/stream.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { bindQueryRenderSkeleton, compileQueryRenderSkeleton, } from "@typed-sql/core";
|
|
2
|
+
export function createMySqlPreparedQueryState() {
|
|
3
|
+
return {
|
|
4
|
+
statements: new Map(),
|
|
5
|
+
queries: new WeakMap(),
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function validateStatementName(statementName) {
|
|
9
|
+
if (typeof statementName !== "string" || statementName.length === 0 || statementName.includes("\0")) {
|
|
10
|
+
throw new TypeError("Prepared statement names must be non-empty and cannot contain NUL");
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function prepareMySqlQuery(state, renderer, statementName, factory) {
|
|
14
|
+
validateStatementName(statementName);
|
|
15
|
+
if (state.statements.has(statementName)) {
|
|
16
|
+
throw new TypeError(`Prepared statement name ${JSON.stringify(statementName)} is already registered`);
|
|
17
|
+
}
|
|
18
|
+
const statement = { skeleton: undefined };
|
|
19
|
+
state.statements.set(statementName, statement);
|
|
20
|
+
const prepared = (...args) => {
|
|
21
|
+
const query = factory(...args);
|
|
22
|
+
const existing = state.queries.get(query);
|
|
23
|
+
if (existing !== undefined && existing.statementName !== statementName) {
|
|
24
|
+
throw new TypeError(`A query cannot use both prepared statement ${JSON.stringify(existing.statementName)} and ${JSON.stringify(statementName)}`);
|
|
25
|
+
}
|
|
26
|
+
let rendered = existing?.rendered;
|
|
27
|
+
const skeleton = statement.skeleton;
|
|
28
|
+
if (rendered === undefined) {
|
|
29
|
+
if (skeleton === undefined) {
|
|
30
|
+
const compiled = compileQueryRenderSkeleton(query, renderer);
|
|
31
|
+
statement.skeleton = compiled.skeleton;
|
|
32
|
+
rendered = compiled.rendered;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
rendered = bindQueryRenderSkeleton(query, skeleton);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (rendered === undefined) {
|
|
39
|
+
throw new TypeError(`Prepared statement ${JSON.stringify(statementName)} must always render the same SQL text and structure`);
|
|
40
|
+
}
|
|
41
|
+
if (existing === undefined)
|
|
42
|
+
state.queries.set(query, { statementName, rendered });
|
|
43
|
+
return query;
|
|
44
|
+
};
|
|
45
|
+
return Object.freeze(Object.assign(prepared, { statementName }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=prepared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared.js","sourceRoot":"","sources":["../../../../src/prepared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAK3B,MAAM,iBAAiB,CAAC;AAyBzB,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,OAAO,EAAE,IAAI,OAAO,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,aAAqB;IAClD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAA8B,EAC9B,QAAqB,EACrB,aAAqB,EACrB,OAAmD;IAEnD,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,SAAS,GAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC7D,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAe,EAAsB,EAAE;QAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;YACvE,MAAM,IAAI,SAAS,CACjB,8CAA8C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAC5H,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC;QAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC7D,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACvC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CACjB,sBAAsB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qDAAqD,CACzG,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { type Database, type SqlRenderer } from "@typed-sql/core";
|
|
1
|
+
import { type Database, type Query, type QueryBatch, type QueryResults, type QueryStream, type SqlRenderer, type StreamOptions } from "@typed-sql/core";
|
|
2
|
+
import { type MySqlFieldLike } from "./decoding.js";
|
|
3
|
+
import { type MySqlPreparedQueryFactory } from "./prepared.js";
|
|
4
|
+
import { type MySqlStreamingConnection } from "./stream.js";
|
|
2
5
|
import { type MySqlTypePolicy } from "./type-policy.js";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
readonly columnLength?: number;
|
|
7
|
-
}
|
|
6
|
+
export type { MySqlFieldLike } from "./decoding.js";
|
|
7
|
+
export type { MySqlPreparedQueryFactory } from "./prepared.js";
|
|
8
|
+
export type { MySqlProtocolStream } from "./stream.js";
|
|
8
9
|
export interface MySqlExecutionResult {
|
|
9
10
|
readonly rows: readonly Record<string, unknown>[] | Record<string, unknown>;
|
|
10
11
|
readonly fields?: readonly MySqlFieldLike[];
|
|
11
12
|
}
|
|
12
|
-
export interface MySqlConnectionLike {
|
|
13
|
+
export interface MySqlConnectionLike extends MySqlStreamingConnection {
|
|
13
14
|
execute(sql: string, values?: readonly unknown[]): Promise<MySqlExecutionResult>;
|
|
14
15
|
query(sql: string): Promise<MySqlExecutionResult>;
|
|
15
16
|
beginTransaction(): Promise<void>;
|
|
@@ -22,7 +23,15 @@ export interface MySqlPoolLike {
|
|
|
22
23
|
getConnection(): Promise<MySqlConnectionLike>;
|
|
23
24
|
end(): Promise<void>;
|
|
24
25
|
}
|
|
25
|
-
export interface
|
|
26
|
+
export interface MySqlTransaction extends Database<MySqlTransaction> {
|
|
27
|
+
batch<const Queries extends readonly unknown[]>(queries: QueryBatch<Queries>): Promise<QueryResults<Queries>>;
|
|
28
|
+
stream<Row, Params extends readonly unknown[]>(query: Query<Row, Params>, options?: StreamOptions): QueryStream<Row>;
|
|
29
|
+
prepare<Arguments extends readonly unknown[], Row, Params extends readonly unknown[]>(statementName: string, factory: (...args: Arguments) => Query<Row, Params>): MySqlPreparedQueryFactory<Arguments, Row, Params>;
|
|
30
|
+
}
|
|
31
|
+
export interface MySqlDatabase extends Database<MySqlTransaction> {
|
|
32
|
+
batch<const Queries extends readonly unknown[]>(queries: QueryBatch<Queries>): Promise<QueryResults<Queries>>;
|
|
33
|
+
stream<Row, Params extends readonly unknown[]>(query: Query<Row, Params>, options?: StreamOptions): QueryStream<Row>;
|
|
34
|
+
prepare<Arguments extends readonly unknown[], Row, Params extends readonly unknown[]>(statementName: string, factory: (...args: Arguments) => Query<Row, Params>): MySqlPreparedQueryFactory<Arguments, Row, Params>;
|
|
26
35
|
close(): Promise<void>;
|
|
27
36
|
}
|
|
28
37
|
export interface MySqlDatabaseOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,118 +1,292 @@
|
|
|
1
1
|
var _a;
|
|
2
|
-
import { renderQuery } from "@typed-sql/core";
|
|
2
|
+
import { renderQuery, } from "@typed-sql/core";
|
|
3
|
+
import { decodeMySqlRows, encodeMySqlValue, MySqlDecoderPlanCache, } from "./decoding.js";
|
|
4
|
+
import { createMySqlPreparedQueryState, prepareMySqlQuery, } from "./prepared.js";
|
|
5
|
+
import { createMySqlQueryStream, validateMySqlStreamBatchSize } from "./stream.js";
|
|
3
6
|
import { defaultMySqlTypePolicy } from "./type-policy.js";
|
|
4
|
-
const
|
|
5
|
-
const
|
|
7
|
+
const defaultRuntimeTypePolicy = defaultMySqlTypePolicy;
|
|
8
|
+
const emptyBatchResults = Object.freeze([]);
|
|
6
9
|
export const mysqlRenderer = Object.freeze({
|
|
7
10
|
placeholder: () => "?",
|
|
8
11
|
quoteIdentifier: (identifier) => `\`${identifier.replaceAll("`", "``")}\``,
|
|
9
12
|
});
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
throw new RangeError(`${label} value ${value} cannot be represented as a finite number`);
|
|
17
|
-
return result;
|
|
18
|
-
}
|
|
19
|
-
function decode(value, field, policy, decimal) {
|
|
20
|
-
if (value === null || value === undefined)
|
|
21
|
-
return value;
|
|
22
|
-
if (field.columnType === mysqlTypes.longlong) {
|
|
23
|
-
if (policy.bigint === "bigint")
|
|
24
|
-
return BigInt(String(value));
|
|
25
|
-
if (policy.bigint === "number") {
|
|
26
|
-
const result = finite(String(value), "bigint");
|
|
27
|
-
if (!Number.isSafeInteger(result))
|
|
28
|
-
throw new RangeError(`bigint value ${value} exceeds JavaScript's safe integer range`);
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
return String(value);
|
|
32
|
-
}
|
|
33
|
-
if (field.columnType === mysqlTypes.decimal) {
|
|
34
|
-
if (policy.decimal === "number")
|
|
35
|
-
return finite(String(value), "decimal");
|
|
36
|
-
if (policy.decimal === "Decimal") {
|
|
37
|
-
if (decimal === undefined)
|
|
38
|
-
throw new TypeError("decimal=Decimal requires a decimal(value) codec");
|
|
39
|
-
return decimal(String(value));
|
|
40
|
-
}
|
|
41
|
-
return String(value);
|
|
42
|
-
}
|
|
43
|
-
if ([mysqlTypes.date, mysqlTypes.datetime, mysqlTypes.timestamp].includes(field.columnType)) {
|
|
44
|
-
return policy.date === "string" ? String(value) : value instanceof Date ? value : new Date(String(value));
|
|
45
|
-
}
|
|
46
|
-
if (field.columnType === mysqlTypes.json && policy.json === "string")
|
|
47
|
-
return typeof value === "string" ? value : JSON.stringify(value);
|
|
48
|
-
if (field.columnType === mysqlTypes.tiny && field.columnLength === 1 && policy.tinyint1 === "boolean")
|
|
49
|
-
return value === true || value === 1 || value === "1";
|
|
50
|
-
return value;
|
|
13
|
+
function createMySqlConnectionOperation() {
|
|
14
|
+
let finish;
|
|
15
|
+
const completion = new Promise((resolve) => {
|
|
16
|
+
finish = resolve;
|
|
17
|
+
});
|
|
18
|
+
return { completion, finish };
|
|
51
19
|
}
|
|
52
20
|
class MySqlDatabaseImplementation {
|
|
53
21
|
#pool;
|
|
54
22
|
#connection;
|
|
55
23
|
#ownsPool;
|
|
56
|
-
#policy;
|
|
57
|
-
#decimal;
|
|
58
24
|
#depth;
|
|
59
|
-
|
|
25
|
+
#prepared;
|
|
26
|
+
#decoderPlans;
|
|
27
|
+
#executes;
|
|
28
|
+
#streams;
|
|
29
|
+
#transactionState;
|
|
30
|
+
#scopeOpen = true;
|
|
31
|
+
constructor(pool, connection, ownsPool, depth, prepared, decoderPlans, transactionState) {
|
|
60
32
|
this.#pool = pool;
|
|
61
33
|
this.#connection = connection;
|
|
62
34
|
this.#ownsPool = ownsPool;
|
|
63
|
-
this.#policy = policy;
|
|
64
|
-
this.#decimal = decimal;
|
|
65
35
|
this.#depth = depth;
|
|
36
|
+
this.#prepared = prepared;
|
|
37
|
+
this.#decoderPlans = decoderPlans;
|
|
38
|
+
this.#executes = connection === undefined ? undefined : new Set();
|
|
39
|
+
this.#streams = connection === undefined ? undefined : new Set();
|
|
40
|
+
this.#transactionState = transactionState;
|
|
66
41
|
}
|
|
67
42
|
async execute(query) {
|
|
68
|
-
|
|
69
|
-
|
|
43
|
+
this.#assertScopeOpen();
|
|
44
|
+
this.#assertConnectionAvailable("execute a query");
|
|
45
|
+
if (this.#connection === undefined)
|
|
46
|
+
return this.#executeOn(this.#pool, query);
|
|
47
|
+
const operation = createMySqlConnectionOperation();
|
|
48
|
+
this.#executes.add(operation);
|
|
49
|
+
this.#transactionState.execute = operation;
|
|
50
|
+
try {
|
|
51
|
+
return await this.#executeOn(this.#connection, query);
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
this.#executes.delete(operation);
|
|
55
|
+
if (this.#transactionState?.execute === operation)
|
|
56
|
+
this.#transactionState.execute = undefined;
|
|
57
|
+
operation.finish();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async #executeOn(executor, query) {
|
|
61
|
+
const prepared = this.#prepared.queries.get(query);
|
|
62
|
+
const rendered = prepared?.rendered ?? renderQuery(query, mysqlRenderer);
|
|
63
|
+
const result = await executor.execute(rendered.text, rendered.values.map(encodeMySqlValue));
|
|
70
64
|
if (!Array.isArray(result.rows))
|
|
71
65
|
return [];
|
|
72
|
-
const
|
|
73
|
-
return result.rows
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
66
|
+
const decoders = this.#decoderPlans.get(result.fields ?? []);
|
|
67
|
+
return decodeMySqlRows(result.rows, decoders);
|
|
68
|
+
}
|
|
69
|
+
async batch(queries) {
|
|
70
|
+
this.#assertScopeOpen();
|
|
71
|
+
this.#assertConnectionAvailable("execute a batch");
|
|
72
|
+
if (queries.length === 0)
|
|
73
|
+
return emptyBatchResults;
|
|
74
|
+
const orderedQueries = [...queries];
|
|
75
|
+
if (this.#connection !== undefined) {
|
|
76
|
+
const operation = createMySqlConnectionOperation();
|
|
77
|
+
this.#transactionState.batch = operation;
|
|
78
|
+
try {
|
|
79
|
+
return await this.#executeBatchOn(this.#connection, orderedQueries, () => this.#assertBatchCanContinue(operation));
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
if (this.#transactionState?.batch === operation)
|
|
83
|
+
this.#transactionState.batch = undefined;
|
|
84
|
+
operation.finish();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const connection = await this.#pool.getConnection();
|
|
88
|
+
let results;
|
|
89
|
+
try {
|
|
90
|
+
results = await this.#executeBatchOn(connection, orderedQueries);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
try {
|
|
94
|
+
connection.release();
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
/* Preserve the batch execution failure. */
|
|
98
|
+
}
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
connection.release();
|
|
102
|
+
return results;
|
|
103
|
+
}
|
|
104
|
+
async #executeBatchOn(connection, queries, beforeEach) {
|
|
105
|
+
const results = [];
|
|
106
|
+
for (const query of queries) {
|
|
107
|
+
beforeEach?.();
|
|
108
|
+
results.push(await this.#executeOn(connection, query));
|
|
109
|
+
}
|
|
110
|
+
return results;
|
|
111
|
+
}
|
|
112
|
+
stream(query, options = {}) {
|
|
113
|
+
this.#assertScopeOpen();
|
|
114
|
+
const prepared = this.#prepared.queries.get(query);
|
|
115
|
+
const rendered = prepared?.rendered ?? renderQuery(query, mysqlRenderer);
|
|
116
|
+
const batchSize = validateMySqlStreamBatchSize(options.batchSize);
|
|
117
|
+
let queryStream;
|
|
118
|
+
queryStream = createMySqlQueryStream({
|
|
119
|
+
openConnection: async () => {
|
|
120
|
+
if (this.#connection !== undefined) {
|
|
121
|
+
this.#assertScopeOpen();
|
|
122
|
+
this.#assertConnectionAvailable("start another query stream");
|
|
123
|
+
this.#transactionState.active = queryStream;
|
|
124
|
+
return { connection: this.#connection, release: false };
|
|
125
|
+
}
|
|
126
|
+
return { connection: await this.#pool.getConnection(), release: true };
|
|
127
|
+
},
|
|
128
|
+
text: rendered.text,
|
|
129
|
+
values: rendered.values.map(encodeMySqlValue),
|
|
130
|
+
batchSize,
|
|
131
|
+
decoderPlans: this.#decoderPlans,
|
|
132
|
+
onClose: () => {
|
|
133
|
+
this.#streams?.delete(queryStream);
|
|
134
|
+
if (this.#transactionState?.active === queryStream)
|
|
135
|
+
this.#transactionState.active = undefined;
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
this.#streams?.add(queryStream);
|
|
139
|
+
return queryStream;
|
|
140
|
+
}
|
|
141
|
+
prepare(statementName, factory) {
|
|
142
|
+
this.#assertScopeOpen();
|
|
143
|
+
return prepareMySqlQuery(this.#prepared, mysqlRenderer, statementName, factory);
|
|
77
144
|
}
|
|
78
145
|
async transaction(fn) {
|
|
146
|
+
this.#assertScopeOpen();
|
|
79
147
|
if (this.#connection !== undefined)
|
|
80
148
|
return this.#nested(fn);
|
|
81
149
|
const connection = await this.#pool.getConnection();
|
|
150
|
+
let transaction;
|
|
151
|
+
let result;
|
|
82
152
|
try {
|
|
83
153
|
await connection.beginTransaction();
|
|
84
|
-
|
|
154
|
+
transaction = new _a(this.#pool, connection, false, 1, this.#prepared, this.#decoderPlans, { active: undefined, batch: undefined, execute: undefined, usable: true });
|
|
155
|
+
result = await fn(transaction);
|
|
156
|
+
transaction.#scopeOpen = false;
|
|
157
|
+
transaction.#transactionState.usable = false;
|
|
158
|
+
await transaction.#assertTransactionReadyForFinalize(true);
|
|
85
159
|
await connection.commit();
|
|
86
|
-
return result;
|
|
87
160
|
}
|
|
88
161
|
catch (error) {
|
|
162
|
+
if (transaction !== undefined) {
|
|
163
|
+
transaction.#scopeOpen = false;
|
|
164
|
+
transaction.#transactionState.usable = false;
|
|
165
|
+
await transaction.#invalidateScope();
|
|
166
|
+
}
|
|
89
167
|
try {
|
|
90
168
|
await connection.rollback();
|
|
91
169
|
}
|
|
92
170
|
catch {
|
|
93
171
|
/* Preserve the original failure. */
|
|
94
172
|
}
|
|
173
|
+
try {
|
|
174
|
+
connection.release();
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
/* Preserve the original failure. */
|
|
178
|
+
}
|
|
95
179
|
throw error;
|
|
96
180
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
181
|
+
connection.release();
|
|
182
|
+
return result;
|
|
100
183
|
}
|
|
101
184
|
async #nested(fn) {
|
|
185
|
+
this.#assertScopeOpen();
|
|
186
|
+
this.#assertConnectionAvailable("start a nested transaction");
|
|
102
187
|
const connection = this.#connection;
|
|
103
188
|
const depth = this.#depth + 1;
|
|
104
189
|
const savepoint = `typed_sql_${depth}`;
|
|
105
190
|
await connection.query(`SAVEPOINT ${savepoint}`);
|
|
191
|
+
let transaction;
|
|
106
192
|
try {
|
|
107
|
-
|
|
193
|
+
transaction = new _a(this.#pool, connection, false, depth, this.#prepared, this.#decoderPlans, this.#transactionState);
|
|
194
|
+
const result = await fn(transaction);
|
|
195
|
+
transaction.#scopeOpen = false;
|
|
196
|
+
await transaction.#assertTransactionReadyForFinalize();
|
|
108
197
|
await connection.query(`RELEASE SAVEPOINT ${savepoint}`);
|
|
109
198
|
return result;
|
|
110
199
|
}
|
|
111
200
|
catch (error) {
|
|
112
|
-
|
|
201
|
+
if (transaction !== undefined)
|
|
202
|
+
await transaction.#invalidateScope();
|
|
203
|
+
if (this.#transactionState?.usable !== false) {
|
|
204
|
+
try {
|
|
205
|
+
await connection.query(`ROLLBACK TO SAVEPOINT ${savepoint}`);
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
/* Preserve the original failure. */
|
|
209
|
+
}
|
|
210
|
+
}
|
|
113
211
|
throw error;
|
|
114
212
|
}
|
|
115
213
|
}
|
|
214
|
+
async #rejectActiveStreams() {
|
|
215
|
+
if (this.#streams === undefined || this.#streams.size === 0)
|
|
216
|
+
return;
|
|
217
|
+
const active = [...this.#streams];
|
|
218
|
+
await Promise.allSettled(active.map((stream) => stream.close()));
|
|
219
|
+
throw new Error(`MySQL transaction callback returned with ${active.length} active query stream${active.length === 1 ? "" : "s"}; consume or close every stream before returning`);
|
|
220
|
+
}
|
|
221
|
+
async #closeStreams() {
|
|
222
|
+
const streams = new Set(this.#streams);
|
|
223
|
+
if (this.#transactionState?.active !== undefined)
|
|
224
|
+
streams.add(this.#transactionState.active);
|
|
225
|
+
if (streams.size === 0)
|
|
226
|
+
return;
|
|
227
|
+
await Promise.allSettled([...streams].map((stream) => stream.close()));
|
|
228
|
+
}
|
|
229
|
+
async #invalidateScope() {
|
|
230
|
+
this.#scopeOpen = false;
|
|
231
|
+
await this.#closeStreams();
|
|
232
|
+
await this.#settleExecutes();
|
|
233
|
+
await this.#settleBatch();
|
|
234
|
+
}
|
|
235
|
+
async #assertTransactionReadyForFinalize(connectionFinalizing = false) {
|
|
236
|
+
const leakedExecutes = new Set(this.#executes);
|
|
237
|
+
if (this.#transactionState?.execute !== undefined)
|
|
238
|
+
leakedExecutes.add(this.#transactionState.execute);
|
|
239
|
+
const leakedBatch = this.#transactionState?.batch;
|
|
240
|
+
await this.#rejectActiveStreams();
|
|
241
|
+
const active = this.#transactionState?.active;
|
|
242
|
+
if (active !== undefined) {
|
|
243
|
+
await Promise.allSettled([active.close()]);
|
|
244
|
+
throw new Error("MySQL transaction callback returned while a nested query stream owned its connection; await nested work and close every stream before returning");
|
|
245
|
+
}
|
|
246
|
+
if (leakedExecutes.size > 0) {
|
|
247
|
+
await this.#settleExecuteOperations(leakedExecutes);
|
|
248
|
+
throw new Error("MySQL transaction callback returned while an execute operation owned its connection; await execute before returning");
|
|
249
|
+
}
|
|
250
|
+
if (leakedBatch !== undefined) {
|
|
251
|
+
await leakedBatch.completion;
|
|
252
|
+
throw new Error("MySQL transaction callback returned while an ordered batch owned its connection; await the batch before returning");
|
|
253
|
+
}
|
|
254
|
+
if (!connectionFinalizing && this.#transactionState?.usable === false)
|
|
255
|
+
throw new Error("This MySQL transaction connection is no longer active");
|
|
256
|
+
}
|
|
257
|
+
#assertConnectionAvailable(action) {
|
|
258
|
+
if (this.#transactionState?.active !== undefined)
|
|
259
|
+
throw new Error(`Cannot ${action} while a MySQL query stream owns the transaction connection`);
|
|
260
|
+
if (this.#transactionState?.batch !== undefined)
|
|
261
|
+
throw new Error(`Cannot ${action} while a MySQL ordered batch owns the transaction connection`);
|
|
262
|
+
if (this.#transactionState?.execute !== undefined)
|
|
263
|
+
throw new Error(`Cannot ${action} while a MySQL execute operation owns the transaction connection`);
|
|
264
|
+
}
|
|
265
|
+
#assertBatchCanContinue(operation) {
|
|
266
|
+
this.#assertScopeOpen();
|
|
267
|
+
if (this.#transactionState?.batch !== operation)
|
|
268
|
+
throw new Error("This MySQL ordered batch no longer owns the transaction connection");
|
|
269
|
+
}
|
|
270
|
+
async #settleBatch() {
|
|
271
|
+
const batch = this.#transactionState?.batch;
|
|
272
|
+
if (batch !== undefined)
|
|
273
|
+
await batch.completion;
|
|
274
|
+
}
|
|
275
|
+
async #settleExecutes() {
|
|
276
|
+
const operations = new Set(this.#executes);
|
|
277
|
+
if (this.#transactionState?.execute !== undefined)
|
|
278
|
+
operations.add(this.#transactionState.execute);
|
|
279
|
+
await this.#settleExecuteOperations(operations);
|
|
280
|
+
}
|
|
281
|
+
async #settleExecuteOperations(operations) {
|
|
282
|
+
for (const operation of operations) {
|
|
283
|
+
await operation.completion;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
#assertScopeOpen() {
|
|
287
|
+
if (this.#connection !== undefined && (!this.#scopeOpen || this.#transactionState?.usable === false))
|
|
288
|
+
throw new Error("This MySQL transaction scope is no longer active");
|
|
289
|
+
}
|
|
116
290
|
async close() {
|
|
117
291
|
if (this.#connection !== undefined)
|
|
118
292
|
throw new Error("Cannot close a database from inside a transaction");
|
|
@@ -122,9 +296,9 @@ class MySqlDatabaseImplementation {
|
|
|
122
296
|
}
|
|
123
297
|
_a = MySqlDatabaseImplementation;
|
|
124
298
|
export function createMySqlDatabase(options) {
|
|
125
|
-
const
|
|
126
|
-
if (
|
|
299
|
+
const typePolicy = { ...defaultRuntimeTypePolicy, ...options.typePolicy };
|
|
300
|
+
if (typePolicy.decimal === "Decimal" && options.decimal === undefined)
|
|
127
301
|
throw new TypeError("decimal=Decimal requires a decimal(value) codec");
|
|
128
|
-
return new MySqlDatabaseImplementation(options.pool, undefined, options.ownsPool ?? false,
|
|
302
|
+
return new MySqlDatabaseImplementation(options.pool, undefined, options.ownsPool ?? false, 0, createMySqlPreparedQueryState(), new MySqlDecoderPlanCache(typePolicy, options.decimal));
|
|
129
303
|
}
|
|
130
304
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { QueryStream } from "@typed-sql/core";
|
|
2
|
+
import { type MySqlDecoderPlanCache, type MySqlFieldLike } from "./decoding.js";
|
|
3
|
+
/** A protocol-level MySQL row stream supplied by an execution adapter. */
|
|
4
|
+
export interface MySqlProtocolStream extends AsyncIterableIterator<Record<string, unknown>> {
|
|
5
|
+
/** Resolves once result metadata is available, before the first row is decoded. */
|
|
6
|
+
readonly fields: Promise<readonly MySqlFieldLike[]>;
|
|
7
|
+
/** Whether the leased connection may safely return to its pool after close. */
|
|
8
|
+
readonly connectionReusable: boolean;
|
|
9
|
+
/** Stops row delivery and resolves only after the underlying protocol operation terminates. */
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export interface MySqlStreamingConnection {
|
|
13
|
+
stream?(sql: string, values: readonly unknown[], options: {
|
|
14
|
+
readonly batchSize: number;
|
|
15
|
+
}): MySqlProtocolStream;
|
|
16
|
+
release(): void;
|
|
17
|
+
}
|
|
18
|
+
interface OpenMySqlStream {
|
|
19
|
+
readonly connection: MySqlStreamingConnection;
|
|
20
|
+
readonly release: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function validateMySqlStreamBatchSize(value: number | undefined): number;
|
|
23
|
+
export declare function createMySqlQueryStream<Row>(options: {
|
|
24
|
+
readonly openConnection: () => Promise<OpenMySqlStream>;
|
|
25
|
+
readonly text: string;
|
|
26
|
+
readonly values: readonly unknown[];
|
|
27
|
+
readonly batchSize: number;
|
|
28
|
+
readonly decoderPlans: MySqlDecoderPlanCache;
|
|
29
|
+
readonly onClose: () => void;
|
|
30
|
+
}): QueryStream<Row>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAkB,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhG,0EAA0E;AAC1E,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzF,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;IACpD,+EAA+E;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,+FAA+F;IAC/F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,mBAAmB,CAAC;IAC/G,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAQD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK9E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,GAAG,WAAW,CAAC,GAAG,CAAC,CAEnB"}
|