@slonik/sql-tag 48.8.11 → 48.10.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/dist/factories/createSqlTag.d.ts.map +1 -1
- package/dist/factories/createSqlTag.js +10 -0
- package/dist/factories/createSqlTag.js.map +1 -1
- package/dist/factories/createSqlTokenSqlFragment.d.ts.map +1 -1
- package/dist/factories/createSqlTokenSqlFragment.js +57 -38
- package/dist/factories/createSqlTokenSqlFragment.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities/isSqlToken.d.ts.map +1 -1
- package/dist/utilities/isSqlToken.js +3 -3
- package/dist/utilities/isSqlToken.js.map +1 -1
- package/package.json +5 -5
- package/src/factories/createSqlTag.ts +13 -0
- package/src/factories/createSqlTokenSqlFragment.ts +83 -27
- package/src/types.ts +22 -0
- package/src/utilities/isSqlToken.ts +12 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSqlTag.d.ts","sourceRoot":"","sources":["../../src/factories/createSqlTag.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAIV,MAAM,EAGP,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAgF9D,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,gBAAgB,EAC1B,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAEtB,gBAAe;IACb,WAAW,CAAC,EAAE,CAAC,CAAC;CACZ,KACL,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"createSqlTag.d.ts","sourceRoot":"","sources":["../../src/factories/createSqlTag.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAIV,MAAM,EAGP,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAgF9D,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,gBAAgB,EAC1B,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAEtB,gBAAe;IACb,WAAW,CAAC,EAAE,CAAC,CAAC;CACZ,KACL,MAAM,CAAC,CAAC,CA4IV,CAAC"}
|
|
@@ -123,6 +123,16 @@ export const createSqlTag = (configuration = {}) => {
|
|
|
123
123
|
values: [],
|
|
124
124
|
});
|
|
125
125
|
},
|
|
126
|
+
prepared: (statementName, parser) => {
|
|
127
|
+
return (parts, ...args) => {
|
|
128
|
+
return Object.freeze({
|
|
129
|
+
...createFragment(parts, args),
|
|
130
|
+
name: statementName,
|
|
131
|
+
parser,
|
|
132
|
+
type: QueryToken,
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
},
|
|
126
136
|
timestamp: (date) => {
|
|
127
137
|
return Object.freeze({
|
|
128
138
|
date,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSqlTag.js","sourceRoot":"","sources":["../../src/factories/createSqlTag.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createSqlTag.js","sourceRoot":"","sources":["../../src/factories/createSqlTag.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSqlTokenSqlFragment.d.ts","sourceRoot":"","sources":["../../src/factories/createSqlTokenSqlFragment.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"createSqlTokenSqlFragment.d.ts","sourceRoot":"","sources":["../../src/factories/createSqlTokenSqlFragment.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAWV,gBAAgB,EAChB,QAAQ,IAAI,YAAY,EAIzB,MAAM,aAAa,CAAC;AAiErB,eAAO,MAAM,yBAAyB,GACpC,OAAO,YAAY,EACnB,2BAA2B,MAAM,KAChC,gBAQF,CAAC"}
|
|
@@ -12,45 +12,64 @@ import { createUnnestSqlFragment } from '../sqlFragmentFactories/createUnnestSql
|
|
|
12
12
|
import { createUuidSqlFragment } from '../sqlFragmentFactories/createUuidSqlFragment.js';
|
|
13
13
|
import { ArrayToken, BinaryToken, DateToken, FragmentToken, IdentifierToken, IntervalToken, JsonBinaryToken, JsonToken, ListToken, QueryToken, TimestampToken, UnnestToken, UuidToken, } from '../tokens.js';
|
|
14
14
|
import { UnexpectedStateError } from '@slonik/errors';
|
|
15
|
+
const tokenHandlers = new Map([
|
|
16
|
+
[
|
|
17
|
+
ArrayToken,
|
|
18
|
+
(token, pos) => createArraySqlFragment(token, pos),
|
|
19
|
+
],
|
|
20
|
+
[
|
|
21
|
+
BinaryToken,
|
|
22
|
+
(token, pos) => createBinarySqlFragment(token, pos),
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
DateToken,
|
|
26
|
+
(token, pos) => createDateSqlFragment(token, pos),
|
|
27
|
+
],
|
|
28
|
+
[
|
|
29
|
+
FragmentToken,
|
|
30
|
+
(token, pos) => createFragmentSqlFragment(token, pos),
|
|
31
|
+
],
|
|
32
|
+
[
|
|
33
|
+
IdentifierToken,
|
|
34
|
+
(token) => createIdentifierSqlFragment(token),
|
|
35
|
+
],
|
|
36
|
+
[
|
|
37
|
+
IntervalToken,
|
|
38
|
+
(token, pos) => createIntervalSqlFragment(token, pos),
|
|
39
|
+
],
|
|
40
|
+
[
|
|
41
|
+
JsonBinaryToken,
|
|
42
|
+
(token, pos) => createJsonSqlFragment(token, pos, true),
|
|
43
|
+
],
|
|
44
|
+
[
|
|
45
|
+
JsonToken,
|
|
46
|
+
(token, pos) => createJsonSqlFragment(token, pos, false),
|
|
47
|
+
],
|
|
48
|
+
[
|
|
49
|
+
ListToken,
|
|
50
|
+
(token, pos) => createListSqlFragment(token, pos),
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
QueryToken,
|
|
54
|
+
(token, pos) => createQuerySqlFragment(token, pos),
|
|
55
|
+
],
|
|
56
|
+
[
|
|
57
|
+
TimestampToken,
|
|
58
|
+
(token, pos) => createTimestampSqlFragment(token, pos),
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
UnnestToken,
|
|
62
|
+
(token, pos) => createUnnestSqlFragment(token, pos),
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
UuidToken,
|
|
66
|
+
(token, pos) => createUuidSqlFragment(token, pos),
|
|
67
|
+
],
|
|
68
|
+
]);
|
|
15
69
|
export const createSqlTokenSqlFragment = (token, greatestParameterPosition) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
else if (token.type === BinaryToken) {
|
|
20
|
-
return createBinarySqlFragment(token, greatestParameterPosition);
|
|
21
|
-
}
|
|
22
|
-
else if (token.type === DateToken) {
|
|
23
|
-
return createDateSqlFragment(token, greatestParameterPosition);
|
|
24
|
-
}
|
|
25
|
-
else if (token.type === FragmentToken) {
|
|
26
|
-
return createFragmentSqlFragment(token, greatestParameterPosition);
|
|
27
|
-
}
|
|
28
|
-
else if (token.type === IdentifierToken) {
|
|
29
|
-
return createIdentifierSqlFragment(token);
|
|
30
|
-
}
|
|
31
|
-
else if (token.type === IntervalToken) {
|
|
32
|
-
return createIntervalSqlFragment(token, greatestParameterPosition);
|
|
33
|
-
}
|
|
34
|
-
else if (token.type === JsonBinaryToken) {
|
|
35
|
-
return createJsonSqlFragment(token, greatestParameterPosition, true);
|
|
36
|
-
}
|
|
37
|
-
else if (token.type === JsonToken) {
|
|
38
|
-
return createJsonSqlFragment(token, greatestParameterPosition, false);
|
|
39
|
-
}
|
|
40
|
-
else if (token.type === ListToken) {
|
|
41
|
-
return createListSqlFragment(token, greatestParameterPosition);
|
|
42
|
-
}
|
|
43
|
-
else if (token.type === QueryToken) {
|
|
44
|
-
return createQuerySqlFragment(token, greatestParameterPosition);
|
|
45
|
-
}
|
|
46
|
-
else if (token.type === TimestampToken) {
|
|
47
|
-
return createTimestampSqlFragment(token, greatestParameterPosition);
|
|
48
|
-
}
|
|
49
|
-
else if (token.type === UnnestToken) {
|
|
50
|
-
return createUnnestSqlFragment(token, greatestParameterPosition);
|
|
51
|
-
}
|
|
52
|
-
else if (token.type === UuidToken) {
|
|
53
|
-
return createUuidSqlFragment(token, greatestParameterPosition);
|
|
70
|
+
const handler = tokenHandlers.get(token.type);
|
|
71
|
+
if (handler) {
|
|
72
|
+
return handler(token, greatestParameterPosition);
|
|
54
73
|
}
|
|
55
74
|
throw new UnexpectedStateError('Unexpected token type.');
|
|
56
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSqlTokenSqlFragment.js","sourceRoot":"","sources":["../../src/factories/createSqlTokenSqlFragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,WAAW,EACX,SAAS,GACV,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"createSqlTokenSqlFragment.js","sourceRoot":"","sources":["../../src/factories/createSqlTokenSqlFragment.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -51,6 +51,11 @@ export type ListSqlToken = {
|
|
|
51
51
|
readonly type: typeof tokens.ListToken;
|
|
52
52
|
};
|
|
53
53
|
export type QuerySqlToken<T extends StandardSchemaV1 = StandardSchemaV1<any, any>> = {
|
|
54
|
+
/**
|
|
55
|
+
* Optional name for the prepared statement. When provided, PostgreSQL will
|
|
56
|
+
* create a named prepared statement that can be reused across multiple executions.
|
|
57
|
+
*/
|
|
58
|
+
readonly name?: string;
|
|
54
59
|
readonly parser: T;
|
|
55
60
|
readonly sql: string;
|
|
56
61
|
readonly type: typeof tokens.QueryToken;
|
|
@@ -75,6 +80,17 @@ export type SqlTag<Z extends Record<string, StandardSchemaV1> = Record<string, S
|
|
|
75
80
|
json: (value: SerializableValue) => JsonSqlToken;
|
|
76
81
|
jsonb: (value: SerializableValue) => JsonBinarySqlToken;
|
|
77
82
|
literalValue: (value: string) => SqlFragmentToken;
|
|
83
|
+
/**
|
|
84
|
+
* Creates a named prepared statement. The statement name is used by PostgreSQL
|
|
85
|
+
* to cache the query plan, which can improve performance for frequently executed queries.
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* const query = sql.prepared('get_user_by_id', z.object({ id: z.number(), name: z.string() }))`
|
|
89
|
+
* SELECT id, name FROM users WHERE id = ${userId}
|
|
90
|
+
* `;
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
prepared: <Y extends StandardSchemaV1>(statementName: string, parser: Y) => (template: TemplateStringsArray, ...values: ValueExpression[]) => QuerySqlToken<Y>;
|
|
78
94
|
timestamp: (date: Date) => TimestampSqlToken;
|
|
79
95
|
type: <Y extends StandardSchemaV1>(parser: Y) => (template: TemplateStringsArray, ...values: ValueExpression[]) => QuerySqlToken<Y>;
|
|
80
96
|
typeAlias: <K extends keyof Z>(typeAlias: K) => (template: TemplateStringsArray, ...values: ValueExpression[]) => QuerySqlToken<Z[K]>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isSqlToken.d.ts","sourceRoot":"","sources":["../../src/utilities/isSqlToken.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"isSqlToken.d.ts","sourceRoot":"","sources":["../../src/utilities/isSqlToken.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAmC5D,eAAO,MAAM,UAAU,GAAI,SAAS,OAAO,KAAG,OAAO,IAAI,YAmCxD,CAAC"}
|
|
@@ -17,13 +17,13 @@ const Tokens = [
|
|
|
17
17
|
UnnestToken,
|
|
18
18
|
UuidToken,
|
|
19
19
|
];
|
|
20
|
-
const
|
|
20
|
+
const tokenNames = new Set(Tokens.map((token) => {
|
|
21
21
|
const tokenTypeName = Symbol.keyFor(token);
|
|
22
22
|
if (typeof tokenTypeName !== 'string') {
|
|
23
23
|
throw new UnexpectedStateError('Expected token type be a symbol with inferrable key');
|
|
24
24
|
}
|
|
25
25
|
return tokenTypeName;
|
|
26
|
-
});
|
|
26
|
+
}));
|
|
27
27
|
export const isSqlToken = (subject) => {
|
|
28
28
|
if (typeof subject !== 'object' || subject === null) {
|
|
29
29
|
return false;
|
|
@@ -52,6 +52,6 @@ export const isSqlToken = (subject) => {
|
|
|
52
52
|
// is because there is because it makes it difficult
|
|
53
53
|
// to version Slonik plugins that are used to
|
|
54
54
|
// construct custom SQL fragments.
|
|
55
|
-
return
|
|
55
|
+
return tokenNames.has(tokenTypeName);
|
|
56
56
|
};
|
|
57
57
|
//# sourceMappingURL=isSqlToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isSqlToken.js","sourceRoot":"","sources":["../../src/utilities/isSqlToken.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,wBAAwB,EACxB,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,WAAW,EACX,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,GAAG;IACb,UAAU;IACV,WAAW;IACX,wBAAwB;IACxB,SAAS;IACT,aAAa;IACb,eAAe;IACf,aAAa;IACb,eAAe;IACf,SAAS;IACT,SAAS;IACT,UAAU;IACV,cAAc;IACd,WAAW;IACX,SAAS;CACD,CAAC;AAEX,MAAM,
|
|
1
|
+
{"version":3,"file":"isSqlToken.js","sourceRoot":"","sources":["../../src/utilities/isSqlToken.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,wBAAwB,EACxB,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,WAAW,EACX,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,GAAG;IACb,UAAU;IACV,WAAW;IACX,wBAAwB;IACxB,SAAS;IACT,aAAa;IACb,eAAe;IACf,aAAa;IACb,eAAe;IACf,SAAS;IACT,SAAS;IACT,UAAU;IACV,cAAc;IACd,WAAW;IACX,SAAS;CACD,CAAC;AAEX,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,oBAAoB,CAC5B,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAA2B,EAAE;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE/C,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8DAA8D;IAC9D,4BAA4B;IAC5B,+BAA+B;IAC/B,8BAA8B;IAC9B,EAAE;IACF,gDAAgD;IAChD,8CAA8C;IAC9C,sDAAsD;IACtD,EAAE;IACF,yDAAyD;IACzD,oDAAoD;IACpD,6CAA6C;IAC7C,kCAAkC;IAClC,OAAO,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACvC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@slonik/errors": "^48.
|
|
20
|
-
"@slonik/types": "^48.
|
|
19
|
+
"@slonik/errors": "^48.10.0",
|
|
20
|
+
"@slonik/types": "^48.10.0",
|
|
21
21
|
"roarr": "^7.21.4",
|
|
22
22
|
"safe-stable-stringify": "^2.5.0",
|
|
23
23
|
"serialize-error": "^12.0.0",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"@types/node": "^24.10.1",
|
|
30
30
|
"ava": "^6.4.1",
|
|
31
31
|
"cspell": "^9.3.2",
|
|
32
|
-
"eslint": "9.39.
|
|
32
|
+
"eslint": "9.39.2",
|
|
33
33
|
"tsimp": "^2.0.12",
|
|
34
34
|
"typescript": "^5.9.3",
|
|
35
35
|
"typescript-eslint": "^8.47.0",
|
|
36
|
-
"@slonik/eslint-config": "^48.
|
|
36
|
+
"@slonik/eslint-config": "^48.10.0"
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=24"
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
},
|
|
57
57
|
"type": "module",
|
|
58
58
|
"types": "./dist/index.d.ts",
|
|
59
|
-
"version": "48.
|
|
59
|
+
"version": "48.10.0",
|
|
60
60
|
"scripts": {
|
|
61
61
|
"build": "rm -fr ./dist && tsc --project ./tsconfig.json",
|
|
62
62
|
"lint": "npm run lint:cspell && npm run lint:eslint && npm run lint:tsc",
|
|
@@ -188,6 +188,19 @@ export const createSqlTag = <
|
|
|
188
188
|
values: [],
|
|
189
189
|
});
|
|
190
190
|
},
|
|
191
|
+
prepared: (statementName, parser) => {
|
|
192
|
+
return (
|
|
193
|
+
parts: TemplateStringsArray,
|
|
194
|
+
...args: readonly ValueExpression[]
|
|
195
|
+
) => {
|
|
196
|
+
return Object.freeze({
|
|
197
|
+
...createFragment(parts, args),
|
|
198
|
+
name: statementName,
|
|
199
|
+
parser,
|
|
200
|
+
type: QueryToken,
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
},
|
|
191
204
|
timestamp: (date) => {
|
|
192
205
|
return Object.freeze({
|
|
193
206
|
date,
|
|
@@ -25,39 +25,95 @@ import {
|
|
|
25
25
|
UnnestToken,
|
|
26
26
|
UuidToken,
|
|
27
27
|
} from '../tokens.js';
|
|
28
|
-
import type {
|
|
28
|
+
import type {
|
|
29
|
+
ArraySqlToken,
|
|
30
|
+
BinarySqlToken,
|
|
31
|
+
DateSqlToken,
|
|
32
|
+
FragmentSqlToken as FragmentSqlTokenType,
|
|
33
|
+
IdentifierSqlToken,
|
|
34
|
+
IntervalSqlToken,
|
|
35
|
+
JsonBinarySqlToken,
|
|
36
|
+
JsonSqlToken,
|
|
37
|
+
ListSqlToken,
|
|
38
|
+
QuerySqlToken,
|
|
39
|
+
SqlFragmentToken,
|
|
40
|
+
SqlToken as SqlTokenType,
|
|
41
|
+
TimestampSqlToken,
|
|
42
|
+
UnnestSqlToken,
|
|
43
|
+
UuidSqlToken,
|
|
44
|
+
} from '../types.js';
|
|
29
45
|
import { UnexpectedStateError } from '@slonik/errors';
|
|
30
46
|
|
|
47
|
+
type TokenHandler = (
|
|
48
|
+
token: SqlTokenType,
|
|
49
|
+
greatestParameterPosition: number,
|
|
50
|
+
) => SqlFragmentToken;
|
|
51
|
+
|
|
52
|
+
const tokenHandlers = new Map<symbol, TokenHandler>([
|
|
53
|
+
[
|
|
54
|
+
ArrayToken,
|
|
55
|
+
(token, pos) => createArraySqlFragment(token as ArraySqlToken, pos),
|
|
56
|
+
],
|
|
57
|
+
[
|
|
58
|
+
BinaryToken,
|
|
59
|
+
(token, pos) => createBinarySqlFragment(token as BinarySqlToken, pos),
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
DateToken,
|
|
63
|
+
(token, pos) => createDateSqlFragment(token as DateSqlToken, pos),
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
FragmentToken,
|
|
67
|
+
(token, pos) =>
|
|
68
|
+
createFragmentSqlFragment(token as FragmentSqlTokenType, pos),
|
|
69
|
+
],
|
|
70
|
+
[
|
|
71
|
+
IdentifierToken,
|
|
72
|
+
(token) => createIdentifierSqlFragment(token as IdentifierSqlToken),
|
|
73
|
+
],
|
|
74
|
+
[
|
|
75
|
+
IntervalToken,
|
|
76
|
+
(token, pos) => createIntervalSqlFragment(token as IntervalSqlToken, pos),
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
JsonBinaryToken,
|
|
80
|
+
(token, pos) =>
|
|
81
|
+
createJsonSqlFragment(token as JsonBinarySqlToken, pos, true),
|
|
82
|
+
],
|
|
83
|
+
[
|
|
84
|
+
JsonToken,
|
|
85
|
+
(token, pos) => createJsonSqlFragment(token as JsonSqlToken, pos, false),
|
|
86
|
+
],
|
|
87
|
+
[
|
|
88
|
+
ListToken,
|
|
89
|
+
(token, pos) => createListSqlFragment(token as ListSqlToken, pos),
|
|
90
|
+
],
|
|
91
|
+
[
|
|
92
|
+
QueryToken,
|
|
93
|
+
(token, pos) => createQuerySqlFragment(token as QuerySqlToken, pos),
|
|
94
|
+
],
|
|
95
|
+
[
|
|
96
|
+
TimestampToken,
|
|
97
|
+
(token, pos) => createTimestampSqlFragment(token as TimestampSqlToken, pos),
|
|
98
|
+
],
|
|
99
|
+
[
|
|
100
|
+
UnnestToken,
|
|
101
|
+
(token, pos) => createUnnestSqlFragment(token as UnnestSqlToken, pos),
|
|
102
|
+
],
|
|
103
|
+
[
|
|
104
|
+
UuidToken,
|
|
105
|
+
(token, pos) => createUuidSqlFragment(token as UuidSqlToken, pos),
|
|
106
|
+
],
|
|
107
|
+
]);
|
|
108
|
+
|
|
31
109
|
export const createSqlTokenSqlFragment = (
|
|
32
110
|
token: SqlTokenType,
|
|
33
111
|
greatestParameterPosition: number,
|
|
34
112
|
): SqlFragmentToken => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
39
|
-
} else if (token.type === DateToken) {
|
|
40
|
-
return createDateSqlFragment(token, greatestParameterPosition);
|
|
41
|
-
} else if (token.type === FragmentToken) {
|
|
42
|
-
return createFragmentSqlFragment(token, greatestParameterPosition);
|
|
43
|
-
} else if (token.type === IdentifierToken) {
|
|
44
|
-
return createIdentifierSqlFragment(token);
|
|
45
|
-
} else if (token.type === IntervalToken) {
|
|
46
|
-
return createIntervalSqlFragment(token, greatestParameterPosition);
|
|
47
|
-
} else if (token.type === JsonBinaryToken) {
|
|
48
|
-
return createJsonSqlFragment(token, greatestParameterPosition, true);
|
|
49
|
-
} else if (token.type === JsonToken) {
|
|
50
|
-
return createJsonSqlFragment(token, greatestParameterPosition, false);
|
|
51
|
-
} else if (token.type === ListToken) {
|
|
52
|
-
return createListSqlFragment(token, greatestParameterPosition);
|
|
53
|
-
} else if (token.type === QueryToken) {
|
|
54
|
-
return createQuerySqlFragment(token, greatestParameterPosition);
|
|
55
|
-
} else if (token.type === TimestampToken) {
|
|
56
|
-
return createTimestampSqlFragment(token, greatestParameterPosition);
|
|
57
|
-
} else if (token.type === UnnestToken) {
|
|
58
|
-
return createUnnestSqlFragment(token, greatestParameterPosition);
|
|
59
|
-
} else if (token.type === UuidToken) {
|
|
60
|
-
return createUuidSqlFragment(token, greatestParameterPosition);
|
|
113
|
+
const handler = tokenHandlers.get(token.type);
|
|
114
|
+
|
|
115
|
+
if (handler) {
|
|
116
|
+
return handler(token, greatestParameterPosition);
|
|
61
117
|
}
|
|
62
118
|
|
|
63
119
|
throw new UnexpectedStateError('Unexpected token type.');
|
package/src/types.ts
CHANGED
|
@@ -66,6 +66,11 @@ export type QuerySqlToken<
|
|
|
66
66
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
67
|
T extends StandardSchemaV1 = StandardSchemaV1<any, any>,
|
|
68
68
|
> = {
|
|
69
|
+
/**
|
|
70
|
+
* Optional name for the prepared statement. When provided, PostgreSQL will
|
|
71
|
+
* create a named prepared statement that can be reused across multiple executions.
|
|
72
|
+
*/
|
|
73
|
+
readonly name?: string;
|
|
69
74
|
readonly parser: T;
|
|
70
75
|
readonly sql: string;
|
|
71
76
|
readonly type: typeof tokens.QueryToken;
|
|
@@ -112,6 +117,23 @@ export type SqlTag<
|
|
|
112
117
|
json: (value: SerializableValue) => JsonSqlToken;
|
|
113
118
|
jsonb: (value: SerializableValue) => JsonBinarySqlToken;
|
|
114
119
|
literalValue: (value: string) => SqlFragmentToken;
|
|
120
|
+
/**
|
|
121
|
+
* Creates a named prepared statement. The statement name is used by PostgreSQL
|
|
122
|
+
* to cache the query plan, which can improve performance for frequently executed queries.
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* const query = sql.prepared('get_user_by_id', z.object({ id: z.number(), name: z.string() }))`
|
|
126
|
+
* SELECT id, name FROM users WHERE id = ${userId}
|
|
127
|
+
* `;
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
prepared: <Y extends StandardSchemaV1>(
|
|
131
|
+
statementName: string,
|
|
132
|
+
parser: Y,
|
|
133
|
+
) => (
|
|
134
|
+
template: TemplateStringsArray,
|
|
135
|
+
...values: ValueExpression[]
|
|
136
|
+
) => QuerySqlToken<Y>;
|
|
115
137
|
timestamp: (date: Date) => TimestampSqlToken;
|
|
116
138
|
type: <Y extends StandardSchemaV1>(
|
|
117
139
|
parser: Y,
|
|
@@ -35,17 +35,19 @@ const Tokens = [
|
|
|
35
35
|
UuidToken,
|
|
36
36
|
] as const;
|
|
37
37
|
|
|
38
|
-
const
|
|
39
|
-
|
|
38
|
+
const tokenNames = new Set(
|
|
39
|
+
Tokens.map((token) => {
|
|
40
|
+
const tokenTypeName = Symbol.keyFor(token);
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
if (typeof tokenTypeName !== 'string') {
|
|
43
|
+
throw new UnexpectedStateError(
|
|
44
|
+
'Expected token type be a symbol with inferrable key',
|
|
45
|
+
);
|
|
46
|
+
}
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
})
|
|
48
|
+
return tokenTypeName;
|
|
49
|
+
}),
|
|
50
|
+
);
|
|
49
51
|
|
|
50
52
|
export const isSqlToken = (subject: unknown): subject is SqlTokenType => {
|
|
51
53
|
if (typeof subject !== 'object' || subject === null) {
|
|
@@ -81,5 +83,5 @@ export const isSqlToken = (subject: unknown): subject is SqlTokenType => {
|
|
|
81
83
|
// is because there is because it makes it difficult
|
|
82
84
|
// to version Slonik plugins that are used to
|
|
83
85
|
// construct custom SQL fragments.
|
|
84
|
-
return
|
|
86
|
+
return tokenNames.has(tokenTypeName);
|
|
85
87
|
};
|