pqb 0.10.19 → 0.10.22
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 -14
- package/dist/index.js +84 -48
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +83 -47
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as orchid_core from 'orchid-core';
|
|
2
2
|
import { EmptyObject, RawExpression, ColumnTypeBase, MaybeArray, QueryResultRow, AdapterBase, QueryInput, ColumnsShapeBase, StringKey, ColumnOutput, NullableColumn, QueryInternal, QueryMetaBase, EmptyTuple, ColumnTypesBase, DbBase, ThenResult, ColumnShapeOutput, DefaultSelectColumns, SetOptional, Spread, CoalesceString, QueryBaseCommon, QueryCommon, ColumnDataBase, BaseOperators, PrimaryKeyColumn, HiddenColumn, ValidationContext, MessageParam, BaseNumberData, Code, numberTypeMethods, BaseStringData, DateColumnData, dateTypeMethods, JSONTypeAny, record, ArrayMethodsData, arrayMethods, name } from 'orchid-core';
|
|
3
3
|
import { PoolConfig, Pool, PoolClient } from 'pg';
|
|
4
|
+
import { inspect } from 'util';
|
|
4
5
|
|
|
5
6
|
declare type BaseRelation = {
|
|
6
7
|
type: string;
|
|
@@ -261,14 +262,18 @@ declare type QueryArraysResult<R extends any[] = any[]> = {
|
|
|
261
262
|
name: string;
|
|
262
263
|
}[];
|
|
263
264
|
};
|
|
264
|
-
declare type
|
|
265
|
-
|
|
265
|
+
declare type AdapterConfig = Omit<PoolConfig, 'types' | 'connectionString'> & {
|
|
266
|
+
schema?: string;
|
|
266
267
|
databaseURL?: string;
|
|
267
268
|
};
|
|
269
|
+
declare type AdapterOptions = AdapterConfig & {
|
|
270
|
+
types?: TypeParsers;
|
|
271
|
+
};
|
|
268
272
|
declare class Adapter implements AdapterBase {
|
|
269
273
|
types: TypeParsers;
|
|
270
274
|
pool: Pool;
|
|
271
275
|
config: PoolConfig;
|
|
276
|
+
schema?: string;
|
|
272
277
|
constructor({ types, ...config }: AdapterOptions);
|
|
273
278
|
query<T extends QueryResultRow = any>(query: QueryInput, types?: TypeParsers): Promise<QueryResult<T>>;
|
|
274
279
|
arrays<R extends any[] = any[]>(query: QueryInput, types?: TypeParsers): Promise<QueryArraysResult<R>>;
|
|
@@ -729,14 +734,23 @@ declare class OnQueryBuilder<S extends QueryBase = QueryBase, J extends QueryBas
|
|
|
729
734
|
_onJsonPathEquals<T extends this>(this: T, ...args: OnJsonPathEqualsArgs<T>): T;
|
|
730
735
|
}
|
|
731
736
|
|
|
732
|
-
declare class
|
|
737
|
+
declare abstract class OrchidOrmError extends Error {
|
|
738
|
+
abstract query: Query;
|
|
739
|
+
}
|
|
740
|
+
declare class NotFoundError extends OrchidOrmError {
|
|
741
|
+
query: Query;
|
|
742
|
+
constructor(query: Query, message?: string);
|
|
743
|
+
}
|
|
744
|
+
declare class OrchidOrmInternalError extends Error {
|
|
745
|
+
query: Query;
|
|
746
|
+
constructor(query: Query, message?: string);
|
|
733
747
|
}
|
|
734
748
|
declare type QueryErrorName = 'parseComplete' | 'bindComplete' | 'closeComplete' | 'noData' | 'portalSuspended' | 'replicationStart' | 'emptyQuery' | 'copyDone' | 'copyData' | 'rowDescription' | 'parameterDescription' | 'parameterStatus' | 'backendKeyData' | 'notification' | 'readyForQuery' | 'commandComplete' | 'dataRow' | 'copyInResponse' | 'copyOutResponse' | 'authenticationOk' | 'authenticationMD5Password' | 'authenticationCleartextPassword' | 'authenticationSASL' | 'authenticationSASLContinue' | 'authenticationSASLFinal' | 'error' | 'notice';
|
|
735
|
-
declare class QueryError<T extends {
|
|
749
|
+
declare abstract class QueryError<T extends {
|
|
736
750
|
shape: ColumnsShape;
|
|
737
751
|
} = {
|
|
738
752
|
shape: ColumnsShape;
|
|
739
|
-
}> extends
|
|
753
|
+
}> extends OrchidOrmInternalError {
|
|
740
754
|
message: string;
|
|
741
755
|
name: QueryErrorName;
|
|
742
756
|
stack: string | undefined;
|
|
@@ -762,15 +776,12 @@ declare class QueryError<T extends {
|
|
|
762
776
|
};
|
|
763
777
|
get columns(): T["shape"] extends infer T_1 ? { [K in keyof T_1]?: true | undefined; } : never;
|
|
764
778
|
}
|
|
765
|
-
declare class
|
|
766
|
-
constructor(message?: string);
|
|
767
|
-
}
|
|
768
|
-
declare class MoreThanOneRowError extends PormError {
|
|
769
|
-
}
|
|
770
|
-
declare class OrchidInternalError extends Error {
|
|
779
|
+
declare class MoreThanOneRowError extends OrchidOrmInternalError {
|
|
780
|
+
constructor(query: Query, message?: string);
|
|
771
781
|
}
|
|
772
|
-
declare class UnhandledTypeError extends
|
|
773
|
-
|
|
782
|
+
declare class UnhandledTypeError extends OrchidOrmInternalError {
|
|
783
|
+
query: Query;
|
|
784
|
+
constructor(query: Query, value: never);
|
|
774
785
|
}
|
|
775
786
|
|
|
776
787
|
declare type NoPrimaryKeyOption = 'error' | 'warning' | 'ignore';
|
|
@@ -819,6 +830,7 @@ declare class Db<Table extends string | undefined = undefined, Shape extends Col
|
|
|
819
830
|
whereQueryBuilder: typeof WhereQueryBuilder;
|
|
820
831
|
onQueryBuilder: typeof OnQueryBuilder;
|
|
821
832
|
constructor(adapter: Adapter, queryBuilder: Db, table: Table, shape: Shape, columnTypes: CT, options: DbTableOptions);
|
|
833
|
+
[inspect.custom](): string;
|
|
822
834
|
}
|
|
823
835
|
declare type DbResult<CT extends ColumnTypesBase> = Db<string, Record<string, never>, Query['relations'], ColumnTypesBase extends CT ? DefaultColumnTypes : CT> & {
|
|
824
836
|
<Table extends string, Shape extends ColumnsShape = ColumnsShape>(table: Table, shape?: ((t: ColumnTypesBase extends CT ? DefaultColumnTypes : CT) => Shape) | Shape, options?: DbTableOptions): Db<Table, Shape>;
|
|
@@ -3596,4 +3608,4 @@ declare const setQueryObjectValue: <T extends {
|
|
|
3596
3608
|
query: QueryData;
|
|
3597
3609
|
}>(q: T, object: string, key: string, value: unknown) => T;
|
|
3598
3610
|
|
|
3599
|
-
export { Adapter, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, BaseRelation, BeforeCallback, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnNameOfTable, ColumnOperators, ColumnParser, ColumnType, ColumnTypes, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeWithTimeZoneBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, Expression, ExpressionOfType, ExpressionOutput, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTable, ForeignKeyTableWithColumns, From, FromArgs, FromResult, GetArg, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingItem, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, JSONTypes, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinResult, JoinedTablesBase, Json, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operators,
|
|
3611
|
+
export { Adapter, AdapterConfig, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, BaseRelation, BeforeCallback, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnNameOfTable, ColumnOperators, ColumnParser, ColumnType, ColumnTypes, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeWithTimeZoneBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, Expression, ExpressionOfType, ExpressionOutput, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTable, ForeignKeyTableWithColumns, From, FromArgs, FromResult, GetArg, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingItem, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, JSONTypes, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinResult, JoinedTablesBase, Json, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operators, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderItem, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, Query, QueryArraysResult, QueryBase, QueryCallbacks, QueryData, QueryError, QueryErrorName, QueryGet, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QueryThen, QueryUpsertOrCreate, QueryWithTable, RawMethods, RealColumn, Relation, RelationQuery, RelationQueryBase, RelationQueryData, RelationsBase, Select, SelectAgg, SelectArg, SelectFunctionItem, SelectItem, SelectQueryData, Selectable, SelectableBase, SelectableFromShape, SerialColumn, SerialColumnData, SetQueryJoinedTables, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumnInfo, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWindows, SetQueryWith, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, Sql, StringColumn, StringExpression, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimeWithTimeZoneColumn, TimestampColumn, TimestampWithTimeZoneColumn, ToSqlCtx, ToSqlOptions, Transaction, TransactionAdapter, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertData, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowFunctionOptions, WindowItem, With, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addParserToQuery, addQueryOn, addQueryOrOn, addWhere, addWhereIn, addWhereNot, aggregate1FunctionNames, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, utils as columnUtils, columnsByType, columnsShapeToCode, createDb, defaultsKey, foreignKeyArgsToCode, foreignKeyArgumentToCode, foreignKeyToCode, getClonedQueryData, getColumnTypes, getQueryAs, getRaw, getShapeFromSelect, getTableData, getValueKey, handleResult, indexToCode, instantiateColumn, isQueryReturnsAll, isRequiredRelationKey, jsonTypes, logColors, logParamToLogObject, makeRegexToFindInSql, makeSql, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, relationQueryKey, resetTableData, setQueryObjectValue, toSql, toSqlCacheKey };
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var orchidCore = require('orchid-core');
|
|
6
6
|
var pg = require('pg');
|
|
7
|
+
var util = require('util');
|
|
7
8
|
|
|
8
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
10
|
|
|
@@ -2066,9 +2067,21 @@ const aggregateToSql = (ctx, table, item, quotedAs) => {
|
|
|
2066
2067
|
return sql.join("");
|
|
2067
2068
|
};
|
|
2068
2069
|
|
|
2069
|
-
class
|
|
2070
|
+
class OrchidOrmError extends Error {
|
|
2070
2071
|
}
|
|
2071
|
-
class
|
|
2072
|
+
class NotFoundError extends OrchidOrmError {
|
|
2073
|
+
constructor(query, message = "Record is not found") {
|
|
2074
|
+
super(message);
|
|
2075
|
+
this.query = query;
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2078
|
+
class OrchidOrmInternalError extends Error {
|
|
2079
|
+
constructor(query, message) {
|
|
2080
|
+
super(message);
|
|
2081
|
+
this.query = query;
|
|
2082
|
+
}
|
|
2083
|
+
}
|
|
2084
|
+
class QueryError extends OrchidOrmInternalError {
|
|
2072
2085
|
get isUnique() {
|
|
2073
2086
|
return this.code === "23505";
|
|
2074
2087
|
}
|
|
@@ -2089,18 +2102,15 @@ class QueryError extends Error {
|
|
|
2089
2102
|
return this.columnsCache = columns;
|
|
2090
2103
|
}
|
|
2091
2104
|
}
|
|
2092
|
-
class
|
|
2093
|
-
constructor(message
|
|
2094
|
-
super(message);
|
|
2105
|
+
class MoreThanOneRowError extends OrchidOrmInternalError {
|
|
2106
|
+
constructor(query, message) {
|
|
2107
|
+
super(query, message);
|
|
2095
2108
|
}
|
|
2096
2109
|
}
|
|
2097
|
-
class
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
class UnhandledTypeError extends OrchidInternalError {
|
|
2102
|
-
constructor(value) {
|
|
2103
|
-
super(`Unhandled type: ${JSON.stringify(value)} received`);
|
|
2110
|
+
class UnhandledTypeError extends OrchidOrmInternalError {
|
|
2111
|
+
constructor(query, value) {
|
|
2112
|
+
super(query, `Unhandled type: ${JSON.stringify(value)} received`);
|
|
2113
|
+
this.query = query;
|
|
2104
2114
|
}
|
|
2105
2115
|
}
|
|
2106
2116
|
|
|
@@ -2226,7 +2236,10 @@ const pushSubQuerySql = (query, as, values, list) => {
|
|
|
2226
2236
|
const { select } = query.query;
|
|
2227
2237
|
const first = select == null ? void 0 : select[0];
|
|
2228
2238
|
if (!select || !first) {
|
|
2229
|
-
throw new
|
|
2239
|
+
throw new OrchidOrmInternalError(
|
|
2240
|
+
query,
|
|
2241
|
+
`Nothing was selected for pluck`
|
|
2242
|
+
);
|
|
2230
2243
|
}
|
|
2231
2244
|
const cloned = query.clone();
|
|
2232
2245
|
cloned.query.select = [{ selectAs: { c: first } }];
|
|
@@ -2241,7 +2254,7 @@ const pushSubQuerySql = (query, as, values, list) => {
|
|
|
2241
2254
|
case "void":
|
|
2242
2255
|
break;
|
|
2243
2256
|
default:
|
|
2244
|
-
throw new UnhandledTypeError(returnType);
|
|
2257
|
+
throw new UnhandledTypeError(query, returnType);
|
|
2245
2258
|
}
|
|
2246
2259
|
let subQuerySql = `(${makeSql(query, { values }).text})`;
|
|
2247
2260
|
const { coalesceValue } = query.query;
|
|
@@ -3370,36 +3383,45 @@ class Adapter {
|
|
|
3370
3383
|
constructor(_a) {
|
|
3371
3384
|
var _b = _a, { types: types2 = defaultTypeParsers } = _b, config = __objRest$1(_b, ["types"]);
|
|
3372
3385
|
this.types = types2;
|
|
3386
|
+
let schema = config.schema;
|
|
3373
3387
|
if (config.databaseURL) {
|
|
3374
|
-
config.connectionString = config.databaseURL;
|
|
3375
3388
|
const url = new URL(config.databaseURL);
|
|
3376
|
-
|
|
3389
|
+
const ssl = url.searchParams.get("ssl");
|
|
3390
|
+
if (ssl === "false") {
|
|
3391
|
+
url.searchParams.delete("ssl");
|
|
3392
|
+
} else if (!config.ssl && ssl === "true") {
|
|
3377
3393
|
config.ssl = true;
|
|
3378
3394
|
}
|
|
3379
|
-
|
|
3395
|
+
if (!schema) {
|
|
3396
|
+
schema = url.searchParams.get("schema") || void 0;
|
|
3397
|
+
}
|
|
3380
3398
|
config.databaseURL = url.toString();
|
|
3399
|
+
config.connectionString = config.databaseURL;
|
|
3381
3400
|
}
|
|
3401
|
+
if (schema)
|
|
3402
|
+
this.schema = schema === "public" ? void 0 : schema;
|
|
3382
3403
|
this.config = config;
|
|
3383
3404
|
this.pool = new pg__default["default"].Pool(config);
|
|
3384
3405
|
}
|
|
3385
|
-
|
|
3386
|
-
return performQuery(this.pool, query, types2);
|
|
3406
|
+
query(query, types2) {
|
|
3407
|
+
return performQuery(this.pool, query, types2, this.schema);
|
|
3387
3408
|
}
|
|
3388
|
-
|
|
3389
|
-
return
|
|
3409
|
+
arrays(query, types2) {
|
|
3410
|
+
return performQuery(this.pool, query, types2, this.schema, "array");
|
|
3390
3411
|
}
|
|
3391
3412
|
async transaction(cb) {
|
|
3392
3413
|
const client = await this.pool.connect();
|
|
3393
3414
|
try {
|
|
3394
|
-
await
|
|
3415
|
+
await setSearchPath(client, this.schema);
|
|
3416
|
+
await performQueryOnClient(client, { text: "BEGIN" }, this.types);
|
|
3395
3417
|
let result;
|
|
3396
3418
|
try {
|
|
3397
3419
|
result = await cb(new TransactionAdapter(this, client, this.types));
|
|
3398
3420
|
} catch (err) {
|
|
3399
|
-
await
|
|
3421
|
+
await performQueryOnClient(client, { text: "ROLLBACK" }, this.types);
|
|
3400
3422
|
throw err;
|
|
3401
3423
|
}
|
|
3402
|
-
await
|
|
3424
|
+
await performQueryOnClient(client, { text: "COMMIT" }, this.types);
|
|
3403
3425
|
return result;
|
|
3404
3426
|
} finally {
|
|
3405
3427
|
client.release();
|
|
@@ -3416,28 +3438,34 @@ const defaultTypesConfig = {
|
|
|
3416
3438
|
return defaultTypeParsers[id] || returnArg;
|
|
3417
3439
|
}
|
|
3418
3440
|
};
|
|
3419
|
-
const
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3441
|
+
const setSearchPath = (client, schema) => {
|
|
3442
|
+
if (client.connection.schema !== schema) {
|
|
3443
|
+
client.connection.schema = schema;
|
|
3444
|
+
return client.query(`SET search_path = ${schema || "public"}`);
|
|
3445
|
+
}
|
|
3446
|
+
return;
|
|
3447
|
+
};
|
|
3448
|
+
const performQuery = async (pool, query, types2, schema, rowMode) => {
|
|
3449
|
+
const client = await pool.connect();
|
|
3450
|
+
try {
|
|
3451
|
+
await setSearchPath(client, schema);
|
|
3452
|
+
return await performQueryOnClient(client, query, types2, rowMode);
|
|
3453
|
+
} finally {
|
|
3454
|
+
client.release();
|
|
3455
|
+
}
|
|
3429
3456
|
};
|
|
3430
|
-
const
|
|
3431
|
-
|
|
3457
|
+
const performQueryOnClient = (client, query, types2, rowMode) => {
|
|
3458
|
+
const params = {
|
|
3432
3459
|
text: typeof query === "string" ? query : query.text,
|
|
3433
3460
|
values: typeof query === "string" ? void 0 : query.values,
|
|
3434
|
-
rowMode
|
|
3461
|
+
rowMode,
|
|
3435
3462
|
types: types2 ? {
|
|
3436
3463
|
getTypeParser(id) {
|
|
3437
3464
|
return types2[id] || returnArg;
|
|
3438
3465
|
}
|
|
3439
3466
|
} : defaultTypesConfig
|
|
3440
|
-
}
|
|
3467
|
+
};
|
|
3468
|
+
return client.query(params);
|
|
3441
3469
|
};
|
|
3442
3470
|
class TransactionAdapter {
|
|
3443
3471
|
constructor(adapter, client, types2) {
|
|
@@ -3448,10 +3476,10 @@ class TransactionAdapter {
|
|
|
3448
3476
|
this.config = adapter.config;
|
|
3449
3477
|
}
|
|
3450
3478
|
async query(query, types2) {
|
|
3451
|
-
return await
|
|
3479
|
+
return await performQueryOnClient(this.client, query, types2);
|
|
3452
3480
|
}
|
|
3453
3481
|
async arrays(query, types2) {
|
|
3454
|
-
return await
|
|
3482
|
+
return await performQueryOnClient(this.client, query, types2, "array");
|
|
3455
3483
|
}
|
|
3456
3484
|
async transaction(cb) {
|
|
3457
3485
|
return await cb(this);
|
|
@@ -3633,7 +3661,7 @@ const parseResult = (q, returnType = "all", result, isSubQuery) => {
|
|
|
3633
3661
|
switch (returnType) {
|
|
3634
3662
|
case "all": {
|
|
3635
3663
|
if (q.query.throwOnNotFound && result.rows.length === 0)
|
|
3636
|
-
throw new NotFoundError();
|
|
3664
|
+
throw new NotFoundError(q);
|
|
3637
3665
|
const { parsers } = q.query;
|
|
3638
3666
|
return parsers ? result.rows.map((row) => parseRecord(parsers, row)) : result.rows;
|
|
3639
3667
|
}
|
|
@@ -3647,7 +3675,7 @@ const parseResult = (q, returnType = "all", result, isSubQuery) => {
|
|
|
3647
3675
|
case "oneOrThrow": {
|
|
3648
3676
|
const row = result.rows[0];
|
|
3649
3677
|
if (!row)
|
|
3650
|
-
throw new NotFoundError();
|
|
3678
|
+
throw new NotFoundError(q);
|
|
3651
3679
|
const { parsers } = q.query;
|
|
3652
3680
|
return parsers ? parseRecord(parsers, row) : row;
|
|
3653
3681
|
}
|
|
@@ -3678,12 +3706,12 @@ const parseResult = (q, returnType = "all", result, isSubQuery) => {
|
|
|
3678
3706
|
case "valueOrThrow": {
|
|
3679
3707
|
const value = (_b = result.rows[0]) == null ? void 0 : _b[0];
|
|
3680
3708
|
if (value === void 0)
|
|
3681
|
-
throw new NotFoundError();
|
|
3709
|
+
throw new NotFoundError(q);
|
|
3682
3710
|
return parseValue(value, q);
|
|
3683
3711
|
}
|
|
3684
3712
|
case "rowCount": {
|
|
3685
3713
|
if (q.query.throwOnNotFound && result.rowCount === 0) {
|
|
3686
|
-
throw new NotFoundError();
|
|
3714
|
+
throw new NotFoundError(q);
|
|
3687
3715
|
}
|
|
3688
3716
|
return result.rowCount;
|
|
3689
3717
|
}
|
|
@@ -3767,7 +3795,7 @@ const addParserForSelectItem = (q, as, key, arg) => {
|
|
|
3767
3795
|
if (parsers) {
|
|
3768
3796
|
addParserToQuery(q.query, key, (item) => {
|
|
3769
3797
|
const t = rel.query.returnType || "all";
|
|
3770
|
-
subQueryResult.rows = t === "
|
|
3798
|
+
subQueryResult.rows = t === "value" || t === "valueOrThrow" ? [[item]] : t === "one" || t === "oneOrThrow" ? [item] : item;
|
|
3771
3799
|
return parseResult(rel, t, subQueryResult, true);
|
|
3772
3800
|
});
|
|
3773
3801
|
}
|
|
@@ -4665,7 +4693,7 @@ const insert = (self, {
|
|
|
4665
4693
|
const { handleResult } = q.query;
|
|
4666
4694
|
q.query.handleResult = async (q2, r, i) => {
|
|
4667
4695
|
if (r.rowCount === 0) {
|
|
4668
|
-
throw new NotFoundError();
|
|
4696
|
+
throw new NotFoundError(q2);
|
|
4669
4697
|
}
|
|
4670
4698
|
return await handleResult(q2, r, i);
|
|
4671
4699
|
};
|
|
@@ -5731,6 +5759,7 @@ class QueryUpsertOrCreate {
|
|
|
5731
5759
|
return q.create(data);
|
|
5732
5760
|
} else if (queryResult.rowCount > 1) {
|
|
5733
5761
|
throw new MoreThanOneRowError(
|
|
5762
|
+
q,
|
|
5734
5763
|
`Only one row was expected to find, found ${queryResult.rowCount} rows.`
|
|
5735
5764
|
);
|
|
5736
5765
|
}
|
|
@@ -6094,9 +6123,16 @@ class Db {
|
|
|
6094
6123
|
} : toSql;
|
|
6095
6124
|
this.relations = {};
|
|
6096
6125
|
modifyQuery == null ? void 0 : modifyQuery.forEach((cb) => cb(this));
|
|
6126
|
+
const self = this;
|
|
6097
6127
|
this.error = class extends QueryError {
|
|
6128
|
+
constructor(message) {
|
|
6129
|
+
super(self, message);
|
|
6130
|
+
}
|
|
6098
6131
|
};
|
|
6099
6132
|
}
|
|
6133
|
+
[util.inspect.custom]() {
|
|
6134
|
+
return `QueryObject<${this.table}>`;
|
|
6135
|
+
}
|
|
6100
6136
|
}
|
|
6101
6137
|
orchidCore.applyMixins(Db, [QueryMethods]);
|
|
6102
6138
|
Db.prototype.constructor = Db;
|
|
@@ -6211,12 +6247,12 @@ exports.NumberBaseColumn = NumberBaseColumn;
|
|
|
6211
6247
|
exports.OnConflictQueryBuilder = OnConflictQueryBuilder;
|
|
6212
6248
|
exports.OnQueryBuilder = OnQueryBuilder;
|
|
6213
6249
|
exports.Operators = Operators;
|
|
6214
|
-
exports.
|
|
6250
|
+
exports.OrchidOrmError = OrchidOrmError;
|
|
6251
|
+
exports.OrchidOrmInternalError = OrchidOrmInternalError;
|
|
6215
6252
|
exports.PathColumn = PathColumn;
|
|
6216
6253
|
exports.PluckResultColumnType = PluckResultColumnType;
|
|
6217
6254
|
exports.PointColumn = PointColumn;
|
|
6218
6255
|
exports.PolygonColumn = PolygonColumn;
|
|
6219
|
-
exports.PormError = PormError;
|
|
6220
6256
|
exports.QueryCallbacks = QueryCallbacks;
|
|
6221
6257
|
exports.QueryError = QueryError;
|
|
6222
6258
|
exports.QueryGet = QueryGet;
|