@typesql/postgres 0.3.0 → 0.3.1
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/README.md +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -3
- package/dist/client.js.map +1 -1
- package/dist/type-map.d.ts +1 -4
- package/dist/type-map.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client.ts +16 -5
- package/src/type-map.ts +1 -6
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ await sql.transaction(async (tx) => {
|
|
|
26
26
|
|
|
27
27
|
If your connection parses `int8` to `bigint` (`types: { bigint: postgres.BigInt }`), pass `{ bigint: true }` as the second argument of `createSql`.
|
|
28
28
|
|
|
29
|
-
[Open an example in the TypeScript Playground](https://www.typescriptlang.org/play
|
|
29
|
+
[Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/?moduleResolution=100#code/JYWwDg9gTgLgBDAnmApnA3nAwhANgGjgHEUA7FKAQxhQBNCA5AV110oCNc0BfOAMygQQcAEQABJKgDOAR1wB6AMbQU8yFJgBzKCikiA3AChQkWBjiKd1FAGU5cXgKGiJyXXLUQN23QePhoeEk0TDtcB35BYRF1LR09I2NSGig+SkU0ABEAIQxDAEgmKQopAC48-PzgWnKScioaWgAeEWBkgBYRAD4jSpQQSmBccpxcFpoADxhu3vzaYCkwNkQAfVJKEBRy5lYOLnGUKZmC-MsUa1oV6lqyCgvx0F0YDbAYAC9j-O5e2LKKqpqxFuDToLTaMAAHJ98pQmDAABbQFbVEZ4MEdaEwYAwLiosYiSbTHonZ6aP6jA5TADaAF1Pt9DNxDIZaChFGwdBYIKQNHBaOxymEjMoefBZOEALwWKw0MJNHJdAAU-IAlIkRbzfnApZQAO6DMVyRUFAAGNgAogAZc1YAAqcGqhCxOJQTsoZLgADEAEoAeQAsnAtQB1AAS5u95rgABIAIzauAAQQYAE04IrSVIVSb8AUROKRLmVQA6Q5suEoRVq5ms9mUTka+D87LATSCuRNTDsVvg8rdzTghzExtwfsJs7WOUK5XsFuaQhdnvJcowKBMHjVkfKJjJKQJvUG0et435M1Wm322EIpGOrk7mCKgBUKqTNjgpC9fsDWqIfoAqgACnA2RpleiJQMitA5oYJZlooFZVokB7YnA4rFqulA8ukWLcoqlBSIgpCKOmMATC+EpdBUyFBBMJ6noBmSJraUZaha9rOlwCZMGAqBQBm2JcC+YYRlGYE3rQCZxtBlQAOy5vksETOWNCIQUI4fjq+ooaRdEmpk57MZ+AZBl4MB7sJkYWPW8zrLg2KIBm7pZgmAAM0mKcpKA4PeqncNWhjioqZ7WnaDoST6xkhuGlmZnAYiUVJhD5nIIjVkAA) <span data-playground="postgres"></span> to hover the types and edit the SQL, with nothing to install.
|
|
30
30
|
|
|
31
31
|
## Documentation
|
|
32
32
|
|
package/dist/client.d.ts
CHANGED
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG,SAAS,OAAO,EAAE,GAAG;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IACnC,MAAM,CACL,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,OAAO,EAAE,EACtB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAC/D,WAAW,CAAC,cAAc,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB,CACtC,EAAE,SAAS,mBAAmB,GAAG,mBAAmB;IAEpD,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAYD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,mBAAmB,GAAG,QAAQ,CAc3D;AAwBD,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,mBAAmB,CAA6B,CAAC;AAEhF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,wBAAsB,OAAO,CAAC,EAAE,SAAS,mBAAmB,EAC3D,GAAG,EAAE,sBAAsB,CAAC,EAAE,CAAC,EAC/B,CAAC,EAAE,eAAe,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
package/dist/client.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { runTransaction } from "@typesql/core/adapter";
|
|
1
2
|
export function executor(sql) {
|
|
2
3
|
const run = async (text, values) => {
|
|
3
4
|
const result = await sql.unsafe(text, Array.from(values));
|
|
@@ -13,13 +14,16 @@ export function executor(sql) {
|
|
|
13
14
|
},
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
|
-
async function transaction(sql,
|
|
17
|
-
const { savepoint, begin } = sql;
|
|
17
|
+
async function transaction(sql, depth, fn) {
|
|
18
|
+
const { savepoint, begin, release } = sql;
|
|
18
19
|
if (savepoint)
|
|
19
20
|
return (await savepoint.call(sql, fn));
|
|
20
21
|
if (begin)
|
|
21
22
|
return (await begin.call(sql, fn));
|
|
22
|
-
|
|
23
|
+
// A ReservedSql is one connection without begin or savepoint.
|
|
24
|
+
if (release)
|
|
25
|
+
return runTransaction((statement) => sql.unsafe(statement), () => fn(sql), depth > 0 ? { savepoint: `typesql_${depth}` } : {});
|
|
26
|
+
throw new Error("typesql: sql.transaction() needs a postgres.js Sql, ReservedSql or TransactionSql (with begin, savepoint or release)");
|
|
23
27
|
}
|
|
24
28
|
export const driver = { executor, transaction };
|
|
25
29
|
export async function migrate(sql, m) {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AA8BvE,MAAM,UAAU,QAAQ,CAAC,GAAwB;IAChD,MAAM,GAAG,GAAa,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;IACrE,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACzB,OAAO,EAAE,GAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACzD,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,KAAK;aACb,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QACrE,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CACzB,GAAwB,EACxB,KAAa,EACb,EAA2C;IAE3C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,GAErC,CAAC;IACF,IAAI,SAAS;QAAE,OAAO,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAM,CAAC;IAC3D,IAAI,KAAK;QAAE,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAM,CAAC;IACnD,8DAA8D;IAC9D,IAAI,OAAO;QACV,OAAO,cAAc,CACpB,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EACpC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EACb,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAClD,CAAC;IACH,MAAM,IAAI,KAAK,CACd,sHAAsH,CACtH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAmC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAMhF,MAAM,CAAC,KAAK,UAAU,OAAO,CAC5B,GAA+B,EAC/B,CAAkB;IAElB,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAC5B,KAAK,MAAM,SAAS,IAAI,CAAC,CAAC,UAAU;YAAE,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/type-map.d.ts
CHANGED
|
@@ -8,10 +8,7 @@ export interface PostgresJsTypeMap extends Omit<DefaultTypeMap, "bytea" | "inter
|
|
|
8
8
|
record: string;
|
|
9
9
|
void: string;
|
|
10
10
|
}
|
|
11
|
-
export interface PostgresJsParamTypeMap extends
|
|
12
|
-
date: Date | string | number;
|
|
13
|
-
timestamp: Date | string | number;
|
|
14
|
-
timestamptz: Date | string | number;
|
|
11
|
+
export interface PostgresJsParamTypeMap extends DefaultParamTypeMap {
|
|
15
12
|
}
|
|
16
13
|
export interface PostgresJsBigIntTypeMap extends Omit<PostgresJsTypeMap, "int8"> {
|
|
17
14
|
int8: bigint;
|
package/dist/type-map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-map.d.ts","sourceRoot":"","sources":["../src/type-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,cAAc,EACd,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,iBAChB,SAAQ,IAAI,CACX,cAAc,EACd,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7D;IACD,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"type-map.d.ts","sourceRoot":"","sources":["../src/type-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,cAAc,EACd,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,iBAChB,SAAQ,IAAI,CACX,cAAc,EACd,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7D;IACD,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;CAAG;AAEtE,MAAM,WAAW,uBAChB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;CACb"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typesql/postgres",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "postgres.js adapter for TypeSQL.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@typesql/core": "0.10.
|
|
31
|
+
"@typesql/core": "0.10.1"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"postgres": ">=3"
|
package/src/client.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Executor } from "@typesql/core";
|
|
2
|
-
import type
|
|
2
|
+
import { runTransaction, type SqlDriver } from "@typesql/core/adapter";
|
|
3
3
|
|
|
4
4
|
export type PostgresJsRows = readonly unknown[] & {
|
|
5
5
|
readonly count: number | null;
|
|
@@ -19,6 +19,10 @@ export interface PostgresJsTransactable<
|
|
|
19
19
|
begin(fn: (tx: Tx) => Promise<unknown>): Promise<unknown>;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
interface PostgresJsReserved {
|
|
23
|
+
release(): void;
|
|
24
|
+
}
|
|
25
|
+
|
|
22
26
|
interface PostgresJsSavepointable {
|
|
23
27
|
savepoint(
|
|
24
28
|
fn: (tx: PostgresJsQueryable) => Promise<unknown>,
|
|
@@ -43,16 +47,23 @@ export function executor(sql: PostgresJsQueryable): Executor {
|
|
|
43
47
|
|
|
44
48
|
async function transaction<T>(
|
|
45
49
|
sql: PostgresJsQueryable,
|
|
46
|
-
|
|
50
|
+
depth: number,
|
|
47
51
|
fn: (tx: PostgresJsQueryable) => Promise<T>,
|
|
48
52
|
): Promise<T> {
|
|
49
|
-
const { savepoint, begin } = sql as Partial<
|
|
50
|
-
PostgresJsSavepointable & PostgresJsTransactable
|
|
53
|
+
const { savepoint, begin, release } = sql as Partial<
|
|
54
|
+
PostgresJsSavepointable & PostgresJsTransactable & PostgresJsReserved
|
|
51
55
|
>;
|
|
52
56
|
if (savepoint) return (await savepoint.call(sql, fn)) as T;
|
|
53
57
|
if (begin) return (await begin.call(sql, fn)) as T;
|
|
58
|
+
// A ReservedSql is one connection without begin or savepoint.
|
|
59
|
+
if (release)
|
|
60
|
+
return runTransaction(
|
|
61
|
+
(statement) => sql.unsafe(statement),
|
|
62
|
+
() => fn(sql),
|
|
63
|
+
depth > 0 ? { savepoint: `typesql_${depth}` } : {},
|
|
64
|
+
);
|
|
54
65
|
throw new Error(
|
|
55
|
-
"typesql: sql.transaction() needs a postgres.js Sql, ReservedSql or TransactionSql (with begin or
|
|
66
|
+
"typesql: sql.transaction() needs a postgres.js Sql, ReservedSql or TransactionSql (with begin, savepoint or release)",
|
|
56
67
|
);
|
|
57
68
|
}
|
|
58
69
|
|
package/src/type-map.ts
CHANGED
|
@@ -17,12 +17,7 @@ export interface PostgresJsTypeMap
|
|
|
17
17
|
void: string;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export interface PostgresJsParamTypeMap
|
|
21
|
-
extends Omit<DefaultParamTypeMap, "date" | "timestamp" | "timestamptz"> {
|
|
22
|
-
date: Date | string | number;
|
|
23
|
-
timestamp: Date | string | number;
|
|
24
|
-
timestamptz: Date | string | number;
|
|
25
|
-
}
|
|
20
|
+
export interface PostgresJsParamTypeMap extends DefaultParamTypeMap {}
|
|
26
21
|
|
|
27
22
|
export interface PostgresJsBigIntTypeMap
|
|
28
23
|
extends Omit<PostgresJsTypeMap, "int8"> {
|