pqb 0.10.4 → 0.10.6
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 +3 -3
- package/dist/index.js +33 -32
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +33 -32
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -460,17 +460,17 @@ declare class QueryGet {
|
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
declare type SelectArg<T extends QueryBase> = StringKey<keyof T['selectable']> | (T['relations'] extends Record<string, Relation> ? StringKey<keyof T['relations']> : never) | SelectAsArg<T>;
|
|
463
|
-
declare type SelectAsArg<T extends QueryBase> = Record<string, StringKey<keyof T['selectable']> | RawExpression | ((q: T) => Query)>;
|
|
463
|
+
declare type SelectAsArg<T extends QueryBase> = Record<string, StringKey<keyof T['selectable']> | RawExpression | ((q: T) => Query | RawExpression)>;
|
|
464
464
|
declare type SelectResult<T extends Query, Args extends SelectArg<T>[], SelectAsArgs = SimpleSpread<FilterTuple<Args, SelectAsArg<T>>>> = AddQuerySelect<T, {
|
|
465
465
|
[Arg in Args[number] as Arg extends keyof T['selectable'] ? T['selectable'][Arg]['as'] : Arg extends keyof T['relations'] ? Arg : never]: Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['returns'] extends 'many' ? ArrayOfColumnsObjects<T['relations'][Arg]['table']['result']> : T['relations'][Arg]['options']['required'] extends true ? ColumnsObject<T['relations'][Arg]['table']['result']> : NullableColumn<ColumnsObject<T['relations'][Arg]['table']['result']>> : never : never;
|
|
466
466
|
} & {
|
|
467
|
-
[K in keyof SelectAsArgs]: SelectAsArgs[K] extends keyof T['selectable'] ? T['selectable'][SelectAsArgs[K]]['column'] : SelectAsArgs[K] extends RawExpression ? SelectAsArgs[K]['__column'] : SelectAsArgs[K] extends (q: T) => Query ? SelectSubQueryResult<ReturnType<SelectAsArgs[K]>> : SelectAsArgs[K] extends ((q: T) => Query) | RawExpression ? SelectSubQueryResult<ReturnType<Exclude<SelectAsArgs[K], RawExpression>>> | Exclude<SelectAsArgs[K], (q: T) => Query>['__column'] : never;
|
|
467
|
+
[K in keyof SelectAsArgs]: SelectAsArgs[K] extends keyof T['selectable'] ? T['selectable'][SelectAsArgs[K]]['column'] : SelectAsArgs[K] extends RawExpression ? SelectAsArgs[K]['__column'] : SelectAsArgs[K] extends (q: T) => RawExpression ? ReturnType<SelectAsArgs[K]>['__column'] : SelectAsArgs[K] extends (q: T) => Query ? SelectSubQueryResult<ReturnType<SelectAsArgs[K]>> : SelectAsArgs[K] extends ((q: T) => Query) | RawExpression ? SelectSubQueryResult<ReturnType<Exclude<SelectAsArgs[K], RawExpression>>> | Exclude<SelectAsArgs[K], (q: T) => Query>['__column'] : never;
|
|
468
468
|
}>;
|
|
469
469
|
declare type SelectSubQueryResult<Arg extends Query & {
|
|
470
470
|
[isRequiredRelationKey]?: boolean;
|
|
471
471
|
}> = QueryReturnsAll<Arg['returnType']> extends true ? ArrayOfColumnsObjects<Arg['result']> : Arg['returnType'] extends 'valueOrThrow' ? Arg['result']['value'] : Arg['returnType'] extends 'pluck' ? PluckResultColumnType<Arg['result']['pluck']> : Arg[isRequiredRelationKey] extends true ? ColumnsObject<Arg['result']> : NullableColumn<ColumnsObject<Arg['result']>>;
|
|
472
472
|
declare const addParserForRawExpression: (q: Query, key: string | getValueKey, raw: RawExpression) => void;
|
|
473
|
-
declare const addParserForSelectItem: <T extends Query>(q: T, as: string | getValueKey | undefined, key: string, arg: RawExpression<ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>> | Exclude<keyof T["selectable"], number | symbol> | ((q: T) => Query)) => string | RawExpression | Query;
|
|
473
|
+
declare const addParserForSelectItem: <T extends Query>(q: T, as: string | getValueKey | undefined, key: string, arg: RawExpression<ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>> | Exclude<keyof T["selectable"], number | symbol> | ((q: T) => Query | RawExpression)) => string | RawExpression | Query;
|
|
474
474
|
declare const addParserToQuery: (query: QueryData, key: string | getValueKey, parser: ColumnParser) => void;
|
|
475
475
|
declare const processSelectArg: <T extends Query>(q: T, as: string | undefined, arg: SelectArg<T>, columnAs?: string | getValueKey) => SelectItem;
|
|
476
476
|
declare const getShapeFromSelect: (q: Query, isSubQuery?: boolean) => ColumnsShapeBase;
|
package/dist/index.js
CHANGED
|
@@ -714,34 +714,31 @@ const columnIndexesToCode = (indexes) => {
|
|
|
714
714
|
const code = [];
|
|
715
715
|
for (const index of indexes) {
|
|
716
716
|
orchidCore.addCode(code, `.${index.unique ? "unique" : "index"}(`);
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
if (index.where)
|
|
740
|
-
arr.push(`where: ${orchidCore.singleQuote(index.where)},`);
|
|
717
|
+
const arr = [];
|
|
718
|
+
if (index.collate)
|
|
719
|
+
arr.push(`collate: ${orchidCore.singleQuote(index.collate)},`);
|
|
720
|
+
if (index.opclass)
|
|
721
|
+
arr.push(`opclass: ${orchidCore.singleQuote(index.opclass)},`);
|
|
722
|
+
if (index.order)
|
|
723
|
+
arr.push(`order: ${orchidCore.singleQuote(index.order)},`);
|
|
724
|
+
if (index.name)
|
|
725
|
+
arr.push(`name: ${orchidCore.singleQuote(index.name)},`);
|
|
726
|
+
if (index.using)
|
|
727
|
+
arr.push(`using: ${orchidCore.singleQuote(index.using)},`);
|
|
728
|
+
if (index.include)
|
|
729
|
+
arr.push(
|
|
730
|
+
`include: ${typeof index.include === "string" ? orchidCore.singleQuote(index.include) : `[${index.include.map(orchidCore.singleQuote).join(", ")}]`},`
|
|
731
|
+
);
|
|
732
|
+
if (index.with)
|
|
733
|
+
arr.push(`with: ${orchidCore.singleQuote(index.with)},`);
|
|
734
|
+
if (index.tablespace)
|
|
735
|
+
arr.push(`tablespace: ${orchidCore.singleQuote(index.tablespace)},`);
|
|
736
|
+
if (index.where)
|
|
737
|
+
arr.push(`where: ${orchidCore.singleQuote(index.where)},`);
|
|
738
|
+
if (arr.length) {
|
|
741
739
|
orchidCore.addCode(code, "{");
|
|
742
740
|
orchidCore.addCode(code, arr);
|
|
743
741
|
orchidCore.addCode(code, "}");
|
|
744
|
-
break;
|
|
745
742
|
}
|
|
746
743
|
orchidCore.addCode(code, ")");
|
|
747
744
|
}
|
|
@@ -3724,13 +3721,17 @@ const addParserForSelectItem = (q, as, key, arg) => {
|
|
|
3724
3721
|
q.isSubQuery = true;
|
|
3725
3722
|
const rel = arg(q);
|
|
3726
3723
|
q.isSubQuery = false;
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3724
|
+
if (orchidCore.isRaw(rel)) {
|
|
3725
|
+
addParserForRawExpression(q, key, rel);
|
|
3726
|
+
} else {
|
|
3727
|
+
const { parsers } = rel.query;
|
|
3728
|
+
if (parsers) {
|
|
3729
|
+
addParserToQuery(q.query, key, (item) => {
|
|
3730
|
+
const t = rel.query.returnType || "all";
|
|
3731
|
+
subQueryResult.rows = t === "all" || t === "rows" || t === "pluck" ? item : [item];
|
|
3732
|
+
return parseResult(rel, t, subQueryResult, true);
|
|
3733
|
+
});
|
|
3734
|
+
}
|
|
3734
3735
|
}
|
|
3735
3736
|
return rel;
|
|
3736
3737
|
} else {
|