@squidcloud/client 1.0.87 → 1.0.88
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.
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { BaseQueryBuilder, DocumentData, FieldName, HasDereference, Operator, Pagination, PaginationOptions, PrimitiveFieldType, SnapshotEmitter } from '@squidcloud/common';
|
|
1
|
+
import { BaseQueryBuilder, DocumentData, FieldName, FieldSort, HasDereference, Operator, Pagination, PaginationOptions, PrimitiveFieldType, SimpleCondition, SnapshotEmitter } from '@squidcloud/common';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { DocumentReference } from '../document-reference';
|
|
4
4
|
import { QueryBuilder } from './query-builder.factory';
|
|
5
5
|
import { Alias } from './query.types';
|
|
6
|
-
type SimpleJoinQueryBuilder<Aliases extends Record<Alias, Alias[]>, ReturnType extends Record<Alias, DocumentData>, LatestAlias extends Alias, RootAlias extends Alias> = Pick<JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>, 'join' | 'snapshot' | 'snapshots' | 'grouped' | 'dereference'>;
|
|
7
6
|
type WithDocumentReferences<T extends Record<any, DocumentData>> = {
|
|
8
7
|
[k in keyof T]: DocumentReference<Required<T>[k]>;
|
|
9
8
|
};
|
|
@@ -61,6 +60,7 @@ export declare class JoinQueryBuilder<Aliases extends Record<Alias, Alias[]>, Re
|
|
|
61
60
|
* @returns The query builder
|
|
62
61
|
*/
|
|
63
62
|
limit(limit: number): this;
|
|
63
|
+
getLimit(): number;
|
|
64
64
|
/**
|
|
65
65
|
* Adds a sort order to the query. You can add multiple sort orders to the query. The order in which you add them
|
|
66
66
|
* determines the order in which they are applied.
|
|
@@ -83,11 +83,11 @@ export declare class JoinQueryBuilder<Aliases extends Record<Alias, Alias[]>, Re
|
|
|
83
83
|
right: keyof NewReturnType & FieldName;
|
|
84
84
|
}, options: {
|
|
85
85
|
leftAlias: LeftAlias;
|
|
86
|
-
}):
|
|
86
|
+
}): JoinQueryBuilder<Omit<Aliases, LeftAlias> & Record<LeftAlias, [...Aliases[LeftAlias], NewAlias]> & Record<NewAlias, []>, ReturnType & Partial<Record<NewAlias, NewReturnType>>, NewAlias, RootAlias>;
|
|
87
87
|
join<NewAlias extends string, NewReturnType extends DocumentData>(queryBuilder: QueryBuilder<NewReturnType>, alias: Exclude<NewAlias, keyof ReturnType>, joinFields: {
|
|
88
88
|
left: keyof Required<ReturnType>[LatestAlias] & FieldName;
|
|
89
89
|
right: keyof NewReturnType & FieldName;
|
|
90
|
-
}):
|
|
90
|
+
}): JoinQueryBuilder<Omit<Aliases, LatestAlias> & Record<LatestAlias, [...Aliases[LatestAlias], NewAlias]> & Record<NewAlias, []>, ReturnType & Partial<Record<NewAlias, NewReturnType>>, NewAlias, RootAlias>;
|
|
91
91
|
/** @inheritDoc */
|
|
92
92
|
snapshot(): Promise<Array<WithDocumentReferences<ReturnType>>>;
|
|
93
93
|
/** @inheritDoc */
|
|
@@ -96,6 +96,11 @@ export declare class JoinQueryBuilder<Aliases extends Record<Alias, Alias[]>, Re
|
|
|
96
96
|
grouped(): GroupedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
|
|
97
97
|
/** @inheritDoc */
|
|
98
98
|
dereference(): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
|
|
99
|
+
getSortOrders(): Array<FieldSort<any>>;
|
|
100
|
+
clone(): JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>;
|
|
101
|
+
addCompositeCondition(conditions: Array<SimpleCondition>): JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>;
|
|
102
|
+
flipSortOrder(): JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>;
|
|
103
|
+
extractData(data: WithDocumentReferences<ReturnType>): any;
|
|
99
104
|
paginate(options?: Partial<PaginationOptions>): Pagination<WithDocumentReferences<ReturnType>>;
|
|
100
105
|
}
|
|
101
106
|
declare class DereferencedJoin<Aliases extends Record<Alias, Alias[]>, ReturnType extends Record<Alias, DocumentData>, RootAlias extends Alias, LatestAlias extends Alias> implements SnapshotEmitter<ReturnType>, HasGrouped {
|
|
@@ -107,7 +112,14 @@ declare class DereferencedJoin<Aliases extends Record<Alias, Alias[]>, ReturnTyp
|
|
|
107
112
|
snapshot(): Promise<Array<ReturnType>>;
|
|
108
113
|
/** @inheritDoc */
|
|
109
114
|
snapshots(subscribe?: boolean): Observable<Array<ReturnType>>;
|
|
115
|
+
getSortOrders(): Array<FieldSort<any>>;
|
|
116
|
+
clone(): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
|
|
117
|
+
addCompositeCondition(conditions: Array<SimpleCondition>): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
|
|
118
|
+
flipSortOrder(): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
|
|
119
|
+
limit(limit: number): DereferencedJoin<Aliases, ReturnType, RootAlias, LatestAlias>;
|
|
120
|
+
extractData(data: ReturnType): any;
|
|
110
121
|
paginate(options?: Partial<PaginationOptions>): Pagination<ReturnType>;
|
|
122
|
+
getLimit(): number;
|
|
111
123
|
}
|
|
112
124
|
declare class GroupedJoin<Aliases extends Record<Alias, Alias[]>, ReturnType extends Record<Alias, DocumentData>, RootAlias extends Alias, LatestAlias extends Alias> implements SnapshotEmitter<Grouped<Aliases, WithDocumentReferences<ReturnType>, RootAlias>>, HasDereference {
|
|
113
125
|
readonly joinQueryBuilder: JoinQueryBuilder<Aliases, ReturnType, LatestAlias, RootAlias>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseQueryBuilder, DocumentData, FieldName, FieldSort, HasDereference, Operator, Pagination, PaginationOptions, PrimitiveFieldType, SnapshotEmitter } from '@squidcloud/common';
|
|
1
|
+
import { BaseQueryBuilder, DocumentData, FieldName, FieldSort, HasDereference, Operator, Pagination, PaginationOptions, PrimitiveFieldType, SimpleCondition, SnapshotEmitter } from '@squidcloud/common';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { DocumentReference } from '../document-reference';
|
|
4
4
|
/** A query builder that can be used to build a query that returns a list of documents. */
|
|
@@ -14,6 +14,7 @@ export declare class QueryBuilder<DocumentType extends DocumentData> extends Bas
|
|
|
14
14
|
where(fieldName: (keyof DocumentType & FieldName) | string, operator: Operator | 'in' | 'not in', value: PrimitiveFieldType | Array<PrimitiveFieldType>): this;
|
|
15
15
|
/** @inheritDoc */
|
|
16
16
|
limit(limit: number): this;
|
|
17
|
+
getLimit(): number;
|
|
17
18
|
/** @inheritDoc */
|
|
18
19
|
sortBy(fieldName: keyof DocumentType & FieldName, asc?: boolean): this;
|
|
19
20
|
private mergeConditions;
|
|
@@ -44,6 +45,11 @@ export declare class QueryBuilder<DocumentType extends DocumentData> extends Bas
|
|
|
44
45
|
get hash(): string;
|
|
45
46
|
/** @inheritDoc */
|
|
46
47
|
dereference(): SnapshotEmitter<DocumentType>;
|
|
48
|
+
getSortOrders(): Array<FieldSort<any>>;
|
|
49
|
+
clone(): QueryBuilder<DocumentType>;
|
|
50
|
+
addCompositeCondition(conditions: Array<SimpleCondition>): QueryBuilder<DocumentType>;
|
|
51
|
+
flipSortOrder(): QueryBuilder<DocumentType>;
|
|
52
|
+
extractData(data: DocumentReference<DocumentType>): DocumentType;
|
|
47
53
|
paginate(options?: Partial<PaginationOptions>): Pagination<DocumentReference<DocumentType>>;
|
|
48
54
|
}
|
|
49
55
|
/** Describes the changes to a query result. */
|