pqb 0.55.1 → 0.56.3
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/index.d.ts +26 -72
- package/dist/index.js +163 -279
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +163 -277
- package/dist/index.mjs.map +1 -1
- package/dist/node-postgres.d.ts +65 -0
- package/dist/node-postgres.js +242 -0
- package/dist/node-postgres.js.map +1 -0
- package/dist/node-postgres.mjs +238 -0
- package/dist/node-postgres.mjs.map +1 -0
- package/dist/postgres-js.d.ts +58 -0
- package/dist/postgres-js.js +221 -0
- package/dist/postgres-js.js.map +1 -0
- package/dist/postgres-js.mjs +217 -0
- package/dist/postgres-js.mjs.map +1 -0
- package/package.json +26 -7
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var orchidCore = require('orchid-core');
|
|
4
|
+
var postgres = require('postgres');
|
|
5
|
+
var pqb = require('pqb');
|
|
6
|
+
|
|
7
|
+
const createDb = (options) => {
|
|
8
|
+
return pqb.createDbWithAdapter({
|
|
9
|
+
...options,
|
|
10
|
+
adapter: new PostgresJsAdapter(options)
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
class PostgresJsResult {
|
|
14
|
+
constructor(result) {
|
|
15
|
+
this.rowCount = result.count;
|
|
16
|
+
this.rows = result;
|
|
17
|
+
this.fields = result.statement.columns;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const wrapResult = (result) => {
|
|
21
|
+
if (result.constructor === Array) {
|
|
22
|
+
return result.map(
|
|
23
|
+
(res) => new PostgresJsResult(res)
|
|
24
|
+
);
|
|
25
|
+
} else {
|
|
26
|
+
return new PostgresJsResult(result);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const types = {
|
|
30
|
+
dateAndTimestampAsStrings: {
|
|
31
|
+
to: 25,
|
|
32
|
+
from: [1082, 1114, 1184],
|
|
33
|
+
parse: orchidCore.returnArg
|
|
34
|
+
},
|
|
35
|
+
interval: {
|
|
36
|
+
from: [1186],
|
|
37
|
+
serialize: orchidCore.returnArg,
|
|
38
|
+
parse(str) {
|
|
39
|
+
const [years, , months, , days, , time] = str.split(" ");
|
|
40
|
+
const [hours, minutes, seconds] = time.split(":");
|
|
41
|
+
return {
|
|
42
|
+
years: years ? Number(years) : 0,
|
|
43
|
+
months: months ? Number(months) : 0,
|
|
44
|
+
days: days ? Number(days) : 0,
|
|
45
|
+
hours: hours ? Number(hours) : 0,
|
|
46
|
+
minutes: minutes ? Number(minutes) : 0,
|
|
47
|
+
seconds: seconds ? Number(seconds) : 0
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
// overrides the built-in json type to not serialize it, because it incorrectly serializes
|
|
52
|
+
json: {
|
|
53
|
+
to: 114,
|
|
54
|
+
from: [114, 3802],
|
|
55
|
+
serialize: orchidCore.returnArg,
|
|
56
|
+
parse: (x) => {
|
|
57
|
+
return JSON.parse(x);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
class PostgresJsAdapter {
|
|
62
|
+
constructor(config) {
|
|
63
|
+
this.errorClass = postgres.PostgresError;
|
|
64
|
+
this.config = { ...config, types };
|
|
65
|
+
this.schema = config.schema;
|
|
66
|
+
if (this.schema) {
|
|
67
|
+
this.config.connection = {
|
|
68
|
+
...config.connection,
|
|
69
|
+
search_path: this.schema
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (this.config.databaseURL) {
|
|
73
|
+
const urlString = this.config.databaseURL;
|
|
74
|
+
const url = new URL(urlString);
|
|
75
|
+
const ssl = url.searchParams.get("ssl");
|
|
76
|
+
if (ssl === "false" || ssl === "true") {
|
|
77
|
+
this.config.ssl = ssl === "true";
|
|
78
|
+
}
|
|
79
|
+
const schema = url.searchParams.get("schema");
|
|
80
|
+
if (schema) {
|
|
81
|
+
this.schema = schema;
|
|
82
|
+
url.searchParams.delete("schema");
|
|
83
|
+
this.config.connection = {
|
|
84
|
+
...config.connection,
|
|
85
|
+
search_path: schema
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
this.sql = postgres(url.toString(), this.config);
|
|
89
|
+
} else {
|
|
90
|
+
this.sql = postgres(this.config);
|
|
91
|
+
}
|
|
92
|
+
if (config.connectRetry) {
|
|
93
|
+
orchidCore.setConnectRetryConfig(
|
|
94
|
+
this,
|
|
95
|
+
config.connectRetry === true ? orchidCore.emptyObject : config.connectRetry
|
|
96
|
+
);
|
|
97
|
+
this.query = orchidCore.wrapAdapterFnWithConnectRetry(this, this.query);
|
|
98
|
+
this.arrays = orchidCore.wrapAdapterFnWithConnectRetry(this, this.arrays);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
getURL() {
|
|
102
|
+
return this.config.databaseURL ? new URL(this.config.databaseURL) : void 0;
|
|
103
|
+
}
|
|
104
|
+
reconfigure(params) {
|
|
105
|
+
const url = this.getURL();
|
|
106
|
+
if (url) {
|
|
107
|
+
if ("database" in params) {
|
|
108
|
+
url.pathname = `/${params.database}`;
|
|
109
|
+
}
|
|
110
|
+
if (params.user !== void 0) {
|
|
111
|
+
url.username = params.user;
|
|
112
|
+
}
|
|
113
|
+
if (params.password !== void 0) {
|
|
114
|
+
url.password = params.password;
|
|
115
|
+
}
|
|
116
|
+
if (params.schema !== void 0) {
|
|
117
|
+
url.searchParams.set("schema", params.schema);
|
|
118
|
+
}
|
|
119
|
+
return new PostgresJsAdapter({
|
|
120
|
+
...this.config,
|
|
121
|
+
databaseURL: url.toString()
|
|
122
|
+
});
|
|
123
|
+
} else {
|
|
124
|
+
return new PostgresJsAdapter({ ...this.config, ...params });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
getDatabase() {
|
|
128
|
+
const url = this.getURL();
|
|
129
|
+
return url ? url.pathname.slice(1) : this.config.database;
|
|
130
|
+
}
|
|
131
|
+
getUser() {
|
|
132
|
+
const url = this.getURL();
|
|
133
|
+
return url ? url.username : this.config.user;
|
|
134
|
+
}
|
|
135
|
+
getSchema() {
|
|
136
|
+
return this.schema;
|
|
137
|
+
}
|
|
138
|
+
getHost() {
|
|
139
|
+
const url = this.getURL();
|
|
140
|
+
return url ? url.hostname : this.config.host;
|
|
141
|
+
}
|
|
142
|
+
query(text, values) {
|
|
143
|
+
return query(this.sql, text, values);
|
|
144
|
+
}
|
|
145
|
+
arrays(text, values) {
|
|
146
|
+
return arrays(this.sql, text, values);
|
|
147
|
+
}
|
|
148
|
+
async transaction(options, cb) {
|
|
149
|
+
return options ? this.sql.begin(
|
|
150
|
+
options,
|
|
151
|
+
(sql) => cb(new PostgresJsTransactionAdapter(this, sql))
|
|
152
|
+
) : this.sql.begin(
|
|
153
|
+
(sql) => cb(new PostgresJsTransactionAdapter(this, sql))
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
close() {
|
|
157
|
+
return this.sql.end();
|
|
158
|
+
}
|
|
159
|
+
assignError(to, dbError) {
|
|
160
|
+
const from = dbError;
|
|
161
|
+
to.message = from.message;
|
|
162
|
+
to.severity = from.severity;
|
|
163
|
+
to.code = from.code;
|
|
164
|
+
to.detail = from.detail;
|
|
165
|
+
to.hint = from.hint;
|
|
166
|
+
to.position = from.position;
|
|
167
|
+
to.where = from.where;
|
|
168
|
+
to.file = from.file;
|
|
169
|
+
to.line = from.line;
|
|
170
|
+
to.routine = from.routine;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
const query = (sql, text, values) => {
|
|
174
|
+
return sql.unsafe(text, values).then(wrapResult);
|
|
175
|
+
};
|
|
176
|
+
const arrays = (sql, text, values) => {
|
|
177
|
+
return sql.unsafe(text, values).values().then(wrapResult);
|
|
178
|
+
};
|
|
179
|
+
class PostgresJsTransactionAdapter {
|
|
180
|
+
constructor(adapter, sql) {
|
|
181
|
+
this.adapter = adapter;
|
|
182
|
+
this.sql = sql;
|
|
183
|
+
this.errorClass = postgres.PostgresError;
|
|
184
|
+
}
|
|
185
|
+
reconfigure(params) {
|
|
186
|
+
return this.adapter.reconfigure(params);
|
|
187
|
+
}
|
|
188
|
+
getDatabase() {
|
|
189
|
+
return this.adapter.getDatabase();
|
|
190
|
+
}
|
|
191
|
+
getUser() {
|
|
192
|
+
return this.adapter.getUser();
|
|
193
|
+
}
|
|
194
|
+
getSchema() {
|
|
195
|
+
return this.adapter.schema;
|
|
196
|
+
}
|
|
197
|
+
getHost() {
|
|
198
|
+
return this.adapter.getHost();
|
|
199
|
+
}
|
|
200
|
+
query(text, values) {
|
|
201
|
+
return query(this.sql, text, values);
|
|
202
|
+
}
|
|
203
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
204
|
+
arrays(text, values) {
|
|
205
|
+
return arrays(this.sql, text, values);
|
|
206
|
+
}
|
|
207
|
+
async transaction(_options, cb) {
|
|
208
|
+
return await cb(this);
|
|
209
|
+
}
|
|
210
|
+
close() {
|
|
211
|
+
return this.sql.end();
|
|
212
|
+
}
|
|
213
|
+
assignError(to, from) {
|
|
214
|
+
return this.adapter.assignError(to, from);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
exports.PostgresJsAdapter = PostgresJsAdapter;
|
|
219
|
+
exports.PostgresJsTransactionAdapter = PostgresJsTransactionAdapter;
|
|
220
|
+
exports.createDb = createDb;
|
|
221
|
+
//# sourceMappingURL=postgres-js.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-js.js","sources":["../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport postgres, { Error, PostgresError, Row, RowList } from 'postgres';\nimport {\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n createDbWithAdapter,\n DbResult,\n} from 'pqb';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n> extends PostgresJsAdapterOptions,\n DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>,\n AdapterConfigBase {\n databaseURL?: string;\n schema?: string;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n schema?: string;\n config: PostgresJsAdapterOptions;\n errorClass = PostgresError;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n\n this.schema = config.schema;\n if (this.schema) {\n this.config.connection = {\n ...config.connection,\n search_path: this.schema,\n };\n }\n\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const schema = url.searchParams.get('schema');\n if (schema) {\n this.schema = schema;\n url.searchParams.delete('schema');\n this.config.connection = {\n ...config.connection,\n search_path: schema,\n };\n }\n\n this.sql = postgres(url.toString(), this.config);\n } else {\n this.sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: AdapterBase) => Promise<Result>,\n ): Promise<Result> {\n return (\n options\n ? this.sql.begin(options, (sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n : this.sql.begin((sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n ) as never;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryResult<T>> => {\n return sql.unsafe(text, values as never).then(wrapResult);\n};\n\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryArraysResult<R>> => {\n return sql\n .unsafe(text, values as never)\n .values()\n .then(wrapResult);\n};\n\nexport class PostgresJsTransactionAdapter implements AdapterBase {\n errorClass = PostgresError;\n\n constructor(public adapter: PostgresJsAdapter, public sql: postgres.Sql) {}\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.schema;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: PostgresJsTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["createDbWithAdapter","returnArg","PostgresError","setConnectRetryConfig","emptyObject","wrapAdapterFnWithConnectRetry"],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { setConnectRetryConfig, emptyObject, wrapAdapterFnWithConnectRetry, returnArg } from 'orchid-core';
|
|
2
|
+
import postgres, { PostgresError } from 'postgres';
|
|
3
|
+
import { createDbWithAdapter } from 'pqb';
|
|
4
|
+
|
|
5
|
+
const createDb = (options) => {
|
|
6
|
+
return createDbWithAdapter({
|
|
7
|
+
...options,
|
|
8
|
+
adapter: new PostgresJsAdapter(options)
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
class PostgresJsResult {
|
|
12
|
+
constructor(result) {
|
|
13
|
+
this.rowCount = result.count;
|
|
14
|
+
this.rows = result;
|
|
15
|
+
this.fields = result.statement.columns;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const wrapResult = (result) => {
|
|
19
|
+
if (result.constructor === Array) {
|
|
20
|
+
return result.map(
|
|
21
|
+
(res) => new PostgresJsResult(res)
|
|
22
|
+
);
|
|
23
|
+
} else {
|
|
24
|
+
return new PostgresJsResult(result);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const types = {
|
|
28
|
+
dateAndTimestampAsStrings: {
|
|
29
|
+
to: 25,
|
|
30
|
+
from: [1082, 1114, 1184],
|
|
31
|
+
parse: returnArg
|
|
32
|
+
},
|
|
33
|
+
interval: {
|
|
34
|
+
from: [1186],
|
|
35
|
+
serialize: returnArg,
|
|
36
|
+
parse(str) {
|
|
37
|
+
const [years, , months, , days, , time] = str.split(" ");
|
|
38
|
+
const [hours, minutes, seconds] = time.split(":");
|
|
39
|
+
return {
|
|
40
|
+
years: years ? Number(years) : 0,
|
|
41
|
+
months: months ? Number(months) : 0,
|
|
42
|
+
days: days ? Number(days) : 0,
|
|
43
|
+
hours: hours ? Number(hours) : 0,
|
|
44
|
+
minutes: minutes ? Number(minutes) : 0,
|
|
45
|
+
seconds: seconds ? Number(seconds) : 0
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
// overrides the built-in json type to not serialize it, because it incorrectly serializes
|
|
50
|
+
json: {
|
|
51
|
+
to: 114,
|
|
52
|
+
from: [114, 3802],
|
|
53
|
+
serialize: returnArg,
|
|
54
|
+
parse: (x) => {
|
|
55
|
+
return JSON.parse(x);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
class PostgresJsAdapter {
|
|
60
|
+
constructor(config) {
|
|
61
|
+
this.errorClass = PostgresError;
|
|
62
|
+
this.config = { ...config, types };
|
|
63
|
+
this.schema = config.schema;
|
|
64
|
+
if (this.schema) {
|
|
65
|
+
this.config.connection = {
|
|
66
|
+
...config.connection,
|
|
67
|
+
search_path: this.schema
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (this.config.databaseURL) {
|
|
71
|
+
const urlString = this.config.databaseURL;
|
|
72
|
+
const url = new URL(urlString);
|
|
73
|
+
const ssl = url.searchParams.get("ssl");
|
|
74
|
+
if (ssl === "false" || ssl === "true") {
|
|
75
|
+
this.config.ssl = ssl === "true";
|
|
76
|
+
}
|
|
77
|
+
const schema = url.searchParams.get("schema");
|
|
78
|
+
if (schema) {
|
|
79
|
+
this.schema = schema;
|
|
80
|
+
url.searchParams.delete("schema");
|
|
81
|
+
this.config.connection = {
|
|
82
|
+
...config.connection,
|
|
83
|
+
search_path: schema
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
this.sql = postgres(url.toString(), this.config);
|
|
87
|
+
} else {
|
|
88
|
+
this.sql = postgres(this.config);
|
|
89
|
+
}
|
|
90
|
+
if (config.connectRetry) {
|
|
91
|
+
setConnectRetryConfig(
|
|
92
|
+
this,
|
|
93
|
+
config.connectRetry === true ? emptyObject : config.connectRetry
|
|
94
|
+
);
|
|
95
|
+
this.query = wrapAdapterFnWithConnectRetry(this, this.query);
|
|
96
|
+
this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
getURL() {
|
|
100
|
+
return this.config.databaseURL ? new URL(this.config.databaseURL) : void 0;
|
|
101
|
+
}
|
|
102
|
+
reconfigure(params) {
|
|
103
|
+
const url = this.getURL();
|
|
104
|
+
if (url) {
|
|
105
|
+
if ("database" in params) {
|
|
106
|
+
url.pathname = `/${params.database}`;
|
|
107
|
+
}
|
|
108
|
+
if (params.user !== void 0) {
|
|
109
|
+
url.username = params.user;
|
|
110
|
+
}
|
|
111
|
+
if (params.password !== void 0) {
|
|
112
|
+
url.password = params.password;
|
|
113
|
+
}
|
|
114
|
+
if (params.schema !== void 0) {
|
|
115
|
+
url.searchParams.set("schema", params.schema);
|
|
116
|
+
}
|
|
117
|
+
return new PostgresJsAdapter({
|
|
118
|
+
...this.config,
|
|
119
|
+
databaseURL: url.toString()
|
|
120
|
+
});
|
|
121
|
+
} else {
|
|
122
|
+
return new PostgresJsAdapter({ ...this.config, ...params });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
getDatabase() {
|
|
126
|
+
const url = this.getURL();
|
|
127
|
+
return url ? url.pathname.slice(1) : this.config.database;
|
|
128
|
+
}
|
|
129
|
+
getUser() {
|
|
130
|
+
const url = this.getURL();
|
|
131
|
+
return url ? url.username : this.config.user;
|
|
132
|
+
}
|
|
133
|
+
getSchema() {
|
|
134
|
+
return this.schema;
|
|
135
|
+
}
|
|
136
|
+
getHost() {
|
|
137
|
+
const url = this.getURL();
|
|
138
|
+
return url ? url.hostname : this.config.host;
|
|
139
|
+
}
|
|
140
|
+
query(text, values) {
|
|
141
|
+
return query(this.sql, text, values);
|
|
142
|
+
}
|
|
143
|
+
arrays(text, values) {
|
|
144
|
+
return arrays(this.sql, text, values);
|
|
145
|
+
}
|
|
146
|
+
async transaction(options, cb) {
|
|
147
|
+
return options ? this.sql.begin(
|
|
148
|
+
options,
|
|
149
|
+
(sql) => cb(new PostgresJsTransactionAdapter(this, sql))
|
|
150
|
+
) : this.sql.begin(
|
|
151
|
+
(sql) => cb(new PostgresJsTransactionAdapter(this, sql))
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
close() {
|
|
155
|
+
return this.sql.end();
|
|
156
|
+
}
|
|
157
|
+
assignError(to, dbError) {
|
|
158
|
+
const from = dbError;
|
|
159
|
+
to.message = from.message;
|
|
160
|
+
to.severity = from.severity;
|
|
161
|
+
to.code = from.code;
|
|
162
|
+
to.detail = from.detail;
|
|
163
|
+
to.hint = from.hint;
|
|
164
|
+
to.position = from.position;
|
|
165
|
+
to.where = from.where;
|
|
166
|
+
to.file = from.file;
|
|
167
|
+
to.line = from.line;
|
|
168
|
+
to.routine = from.routine;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const query = (sql, text, values) => {
|
|
172
|
+
return sql.unsafe(text, values).then(wrapResult);
|
|
173
|
+
};
|
|
174
|
+
const arrays = (sql, text, values) => {
|
|
175
|
+
return sql.unsafe(text, values).values().then(wrapResult);
|
|
176
|
+
};
|
|
177
|
+
class PostgresJsTransactionAdapter {
|
|
178
|
+
constructor(adapter, sql) {
|
|
179
|
+
this.adapter = adapter;
|
|
180
|
+
this.sql = sql;
|
|
181
|
+
this.errorClass = PostgresError;
|
|
182
|
+
}
|
|
183
|
+
reconfigure(params) {
|
|
184
|
+
return this.adapter.reconfigure(params);
|
|
185
|
+
}
|
|
186
|
+
getDatabase() {
|
|
187
|
+
return this.adapter.getDatabase();
|
|
188
|
+
}
|
|
189
|
+
getUser() {
|
|
190
|
+
return this.adapter.getUser();
|
|
191
|
+
}
|
|
192
|
+
getSchema() {
|
|
193
|
+
return this.adapter.schema;
|
|
194
|
+
}
|
|
195
|
+
getHost() {
|
|
196
|
+
return this.adapter.getHost();
|
|
197
|
+
}
|
|
198
|
+
query(text, values) {
|
|
199
|
+
return query(this.sql, text, values);
|
|
200
|
+
}
|
|
201
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
202
|
+
arrays(text, values) {
|
|
203
|
+
return arrays(this.sql, text, values);
|
|
204
|
+
}
|
|
205
|
+
async transaction(_options, cb) {
|
|
206
|
+
return await cb(this);
|
|
207
|
+
}
|
|
208
|
+
close() {
|
|
209
|
+
return this.sql.end();
|
|
210
|
+
}
|
|
211
|
+
assignError(to, from) {
|
|
212
|
+
return this.adapter.assignError(to, from);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export { PostgresJsAdapter, PostgresJsTransactionAdapter, createDb };
|
|
217
|
+
//# sourceMappingURL=postgres-js.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-js.mjs","sources":["../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport postgres, { Error, PostgresError, Row, RowList } from 'postgres';\nimport {\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n createDbWithAdapter,\n DbResult,\n} from 'pqb';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n> extends PostgresJsAdapterOptions,\n DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>,\n AdapterConfigBase {\n databaseURL?: string;\n schema?: string;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n schema?: string;\n config: PostgresJsAdapterOptions;\n errorClass = PostgresError;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n\n this.schema = config.schema;\n if (this.schema) {\n this.config.connection = {\n ...config.connection,\n search_path: this.schema,\n };\n }\n\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const schema = url.searchParams.get('schema');\n if (schema) {\n this.schema = schema;\n url.searchParams.delete('schema');\n this.config.connection = {\n ...config.connection,\n search_path: schema,\n };\n }\n\n this.sql = postgres(url.toString(), this.config);\n } else {\n this.sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: AdapterBase) => Promise<Result>,\n ): Promise<Result> {\n return (\n options\n ? this.sql.begin(options, (sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n : this.sql.begin((sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n ) as never;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryResult<T>> => {\n return sql.unsafe(text, values as never).then(wrapResult);\n};\n\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryArraysResult<R>> => {\n return sql\n .unsafe(text, values as never)\n .values()\n .then(wrapResult);\n};\n\nexport class PostgresJsTransactionAdapter implements AdapterBase {\n errorClass = PostgresError;\n\n constructor(public adapter: PostgresJsAdapter, public sql: postgres.Sql) {}\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.schema;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: PostgresJsTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pqb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.56.3",
|
|
4
4
|
"description": "Postgres query builder",
|
|
5
5
|
"homepage": "https://orchid-orm.netlify.app/guide/orm-and-query-builder.html",
|
|
6
6
|
"repository": {
|
|
@@ -15,6 +15,16 @@
|
|
|
15
15
|
"require": "./dist/index.js",
|
|
16
16
|
"import": "./dist/index.mjs",
|
|
17
17
|
"types": "./dist/index.d.ts"
|
|
18
|
+
},
|
|
19
|
+
"./node-postgres": {
|
|
20
|
+
"require": "./dist/node-postgres.js",
|
|
21
|
+
"import": "./dist/node-postgres.mjs",
|
|
22
|
+
"types": "./dist/node-postgres.d.ts"
|
|
23
|
+
},
|
|
24
|
+
"./postgres-js": {
|
|
25
|
+
"require": "./dist/postgres-js.js",
|
|
26
|
+
"import": "./dist/postgres-js.mjs",
|
|
27
|
+
"types": "./dist/postgres-js.d.ts"
|
|
18
28
|
}
|
|
19
29
|
},
|
|
20
30
|
"files": [
|
|
@@ -29,20 +39,29 @@
|
|
|
29
39
|
"license": "ISC",
|
|
30
40
|
"dependencies": {
|
|
31
41
|
"@types/pg": ">=8",
|
|
32
|
-
"
|
|
33
|
-
"orchid-core": "0.28.1"
|
|
42
|
+
"orchid-core": "0.29.1"
|
|
34
43
|
},
|
|
35
44
|
"devDependencies": {
|
|
36
|
-
"bun-types": "1.0.5-canary.20231009T140142",
|
|
37
45
|
"zod": "^3.25.42",
|
|
38
46
|
"test-utils": "0.3.3"
|
|
39
47
|
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"pg": ">=8",
|
|
50
|
+
"postgres": ">=3"
|
|
51
|
+
},
|
|
52
|
+
"peerDependenciesMeta": {
|
|
53
|
+
"pg": {
|
|
54
|
+
"optional": true
|
|
55
|
+
},
|
|
56
|
+
"postgres": {
|
|
57
|
+
"optional": true
|
|
58
|
+
}
|
|
59
|
+
},
|
|
40
60
|
"scripts": {
|
|
41
61
|
"test": "jest --watch --verbose false",
|
|
42
62
|
"check": "jest",
|
|
43
63
|
"types": "tsc",
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"build": "rimraf ./dist/ && rollup -c ../../../rollup.config.mjs"
|
|
64
|
+
"test:ci": "jest --coverage --coverageReporters json-summary",
|
|
65
|
+
"build": "rimraf ./dist/ && rollup -c ./rollup.config.mjs"
|
|
47
66
|
}
|
|
48
67
|
}
|