@taylordb/query-builder 0.4.0 → 0.6.0
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/cjs/@types/aggregate.d.ts +7 -7
- package/dist/cjs/@types/internal-types.d.ts +6 -14
- package/dist/cjs/@types/query-builder.d.ts +1 -0
- package/dist/cjs/@types/type-helpers.d.ts +6 -6
- package/dist/cjs/__tests__/query-builder.spec.js +32 -0
- package/dist/cjs/__tests__/query-builder.spec.js.map +1 -1
- package/dist/cjs/__tests__/taylorclient.types.d.ts +83 -94
- package/dist/cjs/aggregation-query-builder.d.ts +8 -6
- package/dist/cjs/aggregation-query-builder.js.map +1 -1
- package/dist/cjs/batch-query-builder.d.ts +3 -1
- package/dist/cjs/delete-query-builder.d.ts +1 -1
- package/dist/cjs/executor.d.ts +3 -1
- package/dist/cjs/executor.js +1 -1
- package/dist/cjs/executor.js.map +1 -1
- package/dist/cjs/insert-query-builder.d.ts +3 -3
- package/dist/cjs/insert-query-builder.js.map +1 -1
- package/dist/cjs/query-builder.d.ts +14 -12
- package/dist/cjs/query-builder.js +5 -1
- package/dist/cjs/query-builder.js.map +1 -1
- package/dist/cjs/selection-builder.d.ts +2 -2
- package/dist/cjs/selection-builder.js.map +1 -1
- package/dist/cjs/subscription-manager.d.ts +3 -1
- package/dist/cjs/subscription-manager.js +15 -0
- package/dist/cjs/subscription-manager.js.map +1 -1
- package/dist/cjs/update-query-builder.d.ts +2 -2
- package/dist/cjs/update-query-builder.js.map +1 -1
- package/dist/cjs/where-query-builder.d.ts +11 -10
- package/dist/cjs/where-query-builder.js +46 -17
- package/dist/cjs/where-query-builder.js.map +1 -1
- package/dist/esm/@types/aggregate.d.ts +7 -7
- package/dist/esm/@types/internal-types.d.ts +6 -14
- package/dist/esm/@types/query-builder.d.ts +1 -0
- package/dist/esm/@types/type-helpers.d.ts +6 -6
- package/dist/esm/__tests__/query-builder.spec.js +32 -0
- package/dist/esm/__tests__/query-builder.spec.js.map +1 -1
- package/dist/esm/__tests__/taylorclient.types.d.ts +83 -94
- package/dist/esm/aggregation-query-builder.d.ts +8 -6
- package/dist/esm/aggregation-query-builder.js.map +1 -1
- package/dist/esm/batch-query-builder.d.ts +3 -1
- package/dist/esm/delete-query-builder.d.ts +1 -1
- package/dist/esm/executor.d.ts +3 -1
- package/dist/esm/executor.js +1 -1
- package/dist/esm/executor.js.map +1 -1
- package/dist/esm/insert-query-builder.d.ts +3 -3
- package/dist/esm/insert-query-builder.js.map +1 -1
- package/dist/esm/query-builder.d.ts +14 -12
- package/dist/esm/query-builder.js +5 -1
- package/dist/esm/query-builder.js.map +1 -1
- package/dist/esm/selection-builder.d.ts +2 -2
- package/dist/esm/selection-builder.js.map +1 -1
- package/dist/esm/subscription-manager.d.ts +3 -1
- package/dist/esm/subscription-manager.js +15 -0
- package/dist/esm/subscription-manager.js.map +1 -1
- package/dist/esm/update-query-builder.d.ts +2 -2
- package/dist/esm/update-query-builder.js.map +1 -1
- package/dist/esm/where-query-builder.d.ts +11 -10
- package/dist/esm/where-query-builder.js +46 -17
- package/dist/esm/where-query-builder.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -2,23 +2,23 @@ import { AggregationQueryMetaData, MetadataWithTableName } from '@taylordb/share
|
|
|
2
2
|
import { AnyDB } from './internal-types.js';
|
|
3
3
|
import { InferDataType } from './type-helpers.js';
|
|
4
4
|
export type AggregationValue = number | null | object | undefined;
|
|
5
|
-
export type Aggregates<DB extends AnyDB, TName extends keyof DB
|
|
6
|
-
[K in keyof DB[
|
|
5
|
+
export type Aggregates<DB extends AnyDB, TName extends keyof DB, TAggregations extends {
|
|
6
|
+
[K in keyof DB[TName] & string]?: readonly (keyof DB[TName][K]['aggregations'])[];
|
|
7
7
|
}> = {
|
|
8
|
-
-readonly [K in keyof TAggregations & keyof DB[
|
|
9
|
-
-readonly [P in NonNullable<TAggregations[K]>[number]]: DB[
|
|
8
|
+
-readonly [K in keyof TAggregations & keyof DB[TName]]: {
|
|
9
|
+
-readonly [P in NonNullable<TAggregations[K]>[number]]: DB[TName][K]['aggregations'][P];
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
12
|
type Head<T extends readonly any[]> = T extends readonly [infer H, ...any[]] ? H : never;
|
|
13
13
|
type Tail<T extends readonly any[]> = T extends readonly [any, ...infer R] ? R : never;
|
|
14
|
-
export type AggregateRecord<DB extends AnyDB, TName extends keyof DB
|
|
15
|
-
[K in keyof DB[
|
|
14
|
+
export type AggregateRecord<DB extends AnyDB, TName extends keyof DB, TGroupBy extends readonly (keyof DB[TName] & string)[], TAggregations extends {
|
|
15
|
+
[K in keyof DB[TName] & string]?: readonly (keyof DB[TName][K]['aggregations'])[];
|
|
16
16
|
}> = TGroupBy extends readonly [] ? {
|
|
17
17
|
count: number;
|
|
18
18
|
aggregates: Aggregates<DB, TName, TAggregations>;
|
|
19
19
|
} : {
|
|
20
20
|
field: Head<TGroupBy>;
|
|
21
|
-
value: InferDataType<DB[
|
|
21
|
+
value: InferDataType<DB[TName][Head<TGroupBy>]>;
|
|
22
22
|
count: number;
|
|
23
23
|
aggregates: Aggregates<DB, TName, TAggregations>;
|
|
24
24
|
} & (Tail<TGroupBy> extends readonly [] ? object : {
|
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import { MetadataWithTableName, ObjConfigurationVisibleField, SelectQueryMetaData } from '@taylordb/shared';
|
|
2
|
-
export type Filters = {
|
|
3
|
-
[key: string]: {
|
|
4
|
-
[key: string]: any;
|
|
5
|
-
};
|
|
6
|
-
};
|
|
7
|
-
export type Aggregates = {
|
|
8
|
-
[key: string]: {
|
|
9
|
-
[key: string]: any;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
1
|
+
import { ColumnType, Filters, MetadataWithTableName, ObjConfigurationVisibleField, SelectQueryMetaData } from '@taylordb/shared';
|
|
12
2
|
export type AnyDB = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
[key in keyof any]: {
|
|
4
|
+
[key in keyof any]: ColumnType<any, any, any, any, any, any>;
|
|
5
|
+
};
|
|
16
6
|
};
|
|
17
7
|
export type SelectionQueryNode = ObjConfigurationVisibleField<string> & {
|
|
18
8
|
queryType: 'link';
|
|
@@ -22,3 +12,5 @@ export type RootQueryNode = Omit<MetadataWithTableName<SelectQueryMetaData>, 'fi
|
|
|
22
12
|
queryType: 'root';
|
|
23
13
|
};
|
|
24
14
|
export type QueryNode = SelectionQueryNode | RootQueryNode;
|
|
15
|
+
export type FilterableNode = Pick<QueryNode, 'filtersSet'>;
|
|
16
|
+
export type Filter = Filters<string>;
|
|
@@ -2,7 +2,7 @@ import { ColumnType, LinkColumnType } from '@taylordb/shared';
|
|
|
2
2
|
import { QueryBuilder } from '../query-builder.js';
|
|
3
3
|
import { AnyDB } from './internal-types.js';
|
|
4
4
|
import { LinkColumnNames, NonLinkColumnNames } from './query-builder.js';
|
|
5
|
-
export type InferDataType<TColumn> = TColumn extends ColumnType<
|
|
5
|
+
export type InferDataType<TColumn> = TColumn extends ColumnType<infer D, any, any, any> ? D : never;
|
|
6
6
|
export type TableShape<TTable> = {
|
|
7
7
|
[K in keyof TTable]: InferDataType<TTable[K]>;
|
|
8
8
|
};
|
|
@@ -11,14 +11,14 @@ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (
|
|
|
11
11
|
type InferSubqueryShape<TFunc> = TFunc extends (b: any) => QueryBuilder<any, any, infer SubSelection, infer LinkName> ? {
|
|
12
12
|
[K in LinkName & string]: SubSelection[];
|
|
13
13
|
} : object;
|
|
14
|
-
export type ResolveSelection<DB extends AnyDB, TName extends keyof DB
|
|
15
|
-
[I in keyof TFields]: TFields[I] extends NonLinkColumnNames<DB[
|
|
16
|
-
[K in TFields[I]]: InferDataType<DB[
|
|
14
|
+
export type ResolveSelection<DB extends AnyDB, TName extends keyof DB, TFields extends readonly any[], TCurrentSelection> = TCurrentSelection & UnionToIntersection<{
|
|
15
|
+
[I in keyof TFields]: TFields[I] extends NonLinkColumnNames<DB[TName]> ? {
|
|
16
|
+
[K in TFields[I]]: InferDataType<DB[TName][K]>;
|
|
17
17
|
} : TFields[I] extends (b: any) => QueryBuilder<any, any, any, any> ? InferSubqueryShape<TFields[I]> : object;
|
|
18
18
|
}[number]>;
|
|
19
|
-
export type ResolveWithPlain<DB extends AnyDB, TName extends keyof DB
|
|
19
|
+
export type ResolveWithPlain<DB extends AnyDB, TName extends keyof DB, TRelations extends (LinkColumnNames<DB[TName]> & string) | readonly (LinkColumnNames<DB[TName]> & string)[], TCurrentSelection> = TCurrentSelection & UnionToIntersection<{
|
|
20
20
|
[K in TRelations extends readonly any[] ? TRelations[number] : TRelations]: {
|
|
21
|
-
[P in K]: TableShape<DB[
|
|
21
|
+
[P in K]: TableShape<DB[DB[TName][P] extends LinkColumnType<infer L> ? L : never]>[];
|
|
22
22
|
};
|
|
23
23
|
}[TRelations extends readonly any[] ? TRelations[number] : TRelations]>;
|
|
24
24
|
export type ResolveWithObject<TRelations extends Record<string, (qb: any) => QueryBuilder<any, any, any, any>>, TCurrentSelection> = TCurrentSelection & {
|
|
@@ -125,5 +125,37 @@ describe('QueryBuilder', () => {
|
|
|
125
125
|
},
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
|
+
it('should compile a cross-filter query', () => {
|
|
129
|
+
const { variables } = qb
|
|
130
|
+
.selectFrom('customers')
|
|
131
|
+
.where('orders', 'hasAnyOf', qb => qb.where('amount', '>', 100))
|
|
132
|
+
.compile();
|
|
133
|
+
expect(variables.metadata[0]).toMatchObject({
|
|
134
|
+
type: 'select',
|
|
135
|
+
tableName: 'customers',
|
|
136
|
+
filtersSet: {
|
|
137
|
+
conjunction: 'and',
|
|
138
|
+
filtersSet: [
|
|
139
|
+
{
|
|
140
|
+
field: 'orders',
|
|
141
|
+
operator: 'hasAnyOf',
|
|
142
|
+
value: [
|
|
143
|
+
'cross-filter',
|
|
144
|
+
{
|
|
145
|
+
conjunction: 'and',
|
|
146
|
+
filtersSet: [
|
|
147
|
+
{
|
|
148
|
+
field: 'amount',
|
|
149
|
+
operator: '>',
|
|
150
|
+
value: 100,
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
});
|
|
128
160
|
});
|
|
129
161
|
//# sourceMappingURL=query-builder.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.spec.js","sourceRoot":"","sources":["../../../src/__tests__/query-builder.spec.ts"],"names":[],"mappings":";;AAAA,0CAAiD;
|
|
1
|
+
{"version":3,"file":"query-builder.spec.js","sourceRoot":"","sources":["../../../src/__tests__/query-builder.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,104 +6,98 @@
|
|
|
6
6
|
*/
|
|
7
7
|
type IsWithinOperatorValue = 'pastWeek' | 'pastMonth' | 'pastYear' | 'nextWeek' | 'nextMonth' | 'nextYear' | 'daysFromNow' | 'daysAgo' | 'currentWeek' | 'currentMonth' | 'currentYear';
|
|
8
8
|
type DefaultDateFilterValue = ('today' | 'tomorrow' | 'yesterday' | 'oneWeekAgo' | 'oneWeekFromNow' | 'oneMonthAgo' | 'oneMonthFromNow') | ['exactDay' | 'exactTimestamp', string] | ['daysAgo' | 'daysFromNow', number];
|
|
9
|
-
export type
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
hasAnyOf: string[];
|
|
15
|
-
contains: string;
|
|
16
|
-
startsWith: string;
|
|
17
|
-
endsWith: string;
|
|
18
|
-
doesNotContain: string;
|
|
19
|
-
};
|
|
20
|
-
number: {
|
|
21
|
-
'=': number;
|
|
22
|
-
'!=': number;
|
|
23
|
-
'>': number;
|
|
24
|
-
'>=': number;
|
|
25
|
-
'<': number;
|
|
26
|
-
'<=': number;
|
|
27
|
-
hasAnyOf: number[];
|
|
28
|
-
hasNoneOf: number[];
|
|
29
|
-
};
|
|
30
|
-
checkbox: {
|
|
31
|
-
'=': number;
|
|
32
|
-
};
|
|
33
|
-
link: {
|
|
34
|
-
hasAnyOf: number[];
|
|
35
|
-
hasAllOf: number[];
|
|
36
|
-
isExactly: number[];
|
|
37
|
-
'=': number;
|
|
38
|
-
hasNoneOf: number[];
|
|
39
|
-
};
|
|
40
|
-
date: {
|
|
41
|
-
'=': DefaultDateFilterValue;
|
|
42
|
-
'!=': DefaultDateFilterValue;
|
|
43
|
-
'<': DefaultDateFilterValue;
|
|
44
|
-
'>': DefaultDateFilterValue;
|
|
45
|
-
'<=': DefaultDateFilterValue;
|
|
46
|
-
'>=': DefaultDateFilterValue;
|
|
47
|
-
isWithIn: IsWithinOperatorValue | {
|
|
48
|
-
value: 'daysAgo' | 'daysFromNow';
|
|
49
|
-
date: number;
|
|
50
|
-
};
|
|
51
|
-
isEmpty: boolean;
|
|
52
|
-
isNotEmpty: boolean;
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
type Aggregates = {
|
|
56
|
-
number: {
|
|
57
|
-
sum: number;
|
|
58
|
-
average: number;
|
|
59
|
-
median: number;
|
|
60
|
-
min: number | null;
|
|
61
|
-
max: number | null;
|
|
62
|
-
range: number;
|
|
63
|
-
standardDeviation: number;
|
|
64
|
-
histogram: Record<string, number>;
|
|
65
|
-
empty: number;
|
|
66
|
-
filled: number;
|
|
67
|
-
unique: number;
|
|
68
|
-
percentEmpty: number;
|
|
69
|
-
percentFilled: number;
|
|
70
|
-
percentUnique: number;
|
|
71
|
-
};
|
|
72
|
-
date: {
|
|
73
|
-
empty: number;
|
|
74
|
-
filled: number;
|
|
75
|
-
unique: number;
|
|
76
|
-
percentEmpty: number;
|
|
77
|
-
percentFilled: number;
|
|
78
|
-
percentUnique: number;
|
|
79
|
-
min: number | null;
|
|
80
|
-
max: number | null;
|
|
81
|
-
daysRange: number | null;
|
|
82
|
-
monthRange: number | null;
|
|
83
|
-
};
|
|
84
|
-
link: {
|
|
85
|
-
empty: number;
|
|
86
|
-
filled: number;
|
|
87
|
-
percentEmpty: number;
|
|
88
|
-
percentFilled: number;
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
export type ColumnType<S, U, I, T> = {
|
|
9
|
+
export type ColumnType<S, U, I, T, F extends {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
} = object, A extends {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
} = object> = {
|
|
92
14
|
raw: S;
|
|
93
15
|
insert: I;
|
|
94
16
|
update: U;
|
|
95
17
|
type: T;
|
|
18
|
+
filters: F;
|
|
19
|
+
aggregations: A;
|
|
96
20
|
};
|
|
97
|
-
export type DateColumnType = ColumnType<string | undefined, string | undefined, string | undefined, 'date'
|
|
98
|
-
|
|
21
|
+
export type DateColumnType = ColumnType<string | undefined, string | undefined, string | undefined, 'date', {
|
|
22
|
+
'=': DefaultDateFilterValue;
|
|
23
|
+
'!=': DefaultDateFilterValue;
|
|
24
|
+
'<': DefaultDateFilterValue;
|
|
25
|
+
'>': DefaultDateFilterValue;
|
|
26
|
+
'<=': DefaultDateFilterValue;
|
|
27
|
+
'>=': DefaultDateFilterValue;
|
|
28
|
+
isWithIn: IsWithinOperatorValue | {
|
|
29
|
+
value: 'daysAgo' | 'daysFromNow';
|
|
30
|
+
date: number;
|
|
31
|
+
};
|
|
32
|
+
isEmpty: boolean;
|
|
33
|
+
isNotEmpty: boolean;
|
|
34
|
+
}, {
|
|
35
|
+
empty: number;
|
|
36
|
+
filled: number;
|
|
37
|
+
unique: number;
|
|
38
|
+
percentEmpty: number;
|
|
39
|
+
percentFilled: number;
|
|
40
|
+
percentUnique: number;
|
|
41
|
+
min: number | null;
|
|
42
|
+
max: number | null;
|
|
43
|
+
daysRange: number | null;
|
|
44
|
+
monthRange: number | null;
|
|
45
|
+
}>;
|
|
46
|
+
export type TextColumnType = ColumnType<string | undefined, string | undefined, string | null, 'text', {
|
|
47
|
+
'=': string;
|
|
48
|
+
'!=': string;
|
|
49
|
+
caseEqual: string;
|
|
50
|
+
hasAnyOf: string[];
|
|
51
|
+
contains: string;
|
|
52
|
+
startsWith: string;
|
|
53
|
+
endsWith: string;
|
|
54
|
+
doesNotContain: string;
|
|
55
|
+
}>;
|
|
99
56
|
export type LinkColumnType<T extends string> = ColumnType<object, number[] | {
|
|
100
57
|
newIds: number[];
|
|
101
58
|
deletedIds: number[];
|
|
102
|
-
} | undefined, number[] | undefined, 'link'
|
|
59
|
+
} | undefined, number[] | undefined, 'link', {
|
|
60
|
+
hasAnyOf: number[];
|
|
61
|
+
hasAllOf: number[];
|
|
62
|
+
isExactly: number[];
|
|
63
|
+
'=': number;
|
|
64
|
+
hasNoneOf: number[];
|
|
65
|
+
}, {
|
|
66
|
+
empty: number;
|
|
67
|
+
filled: number;
|
|
68
|
+
percentEmpty: number;
|
|
69
|
+
percentFilled: number;
|
|
70
|
+
}> & {
|
|
103
71
|
linkedTo: T;
|
|
104
72
|
};
|
|
105
|
-
export type NumberColumnType = ColumnType<number | undefined, number | undefined, number | undefined, 'number'
|
|
106
|
-
|
|
73
|
+
export type NumberColumnType = ColumnType<number | undefined, number | undefined, number | undefined, 'number', {
|
|
74
|
+
'=': number;
|
|
75
|
+
'!=': number;
|
|
76
|
+
'>': number;
|
|
77
|
+
'>=': number;
|
|
78
|
+
'<': number;
|
|
79
|
+
'<=': number;
|
|
80
|
+
hasAnyOf: number[];
|
|
81
|
+
hasNoneOf: number[];
|
|
82
|
+
}, {
|
|
83
|
+
sum: number;
|
|
84
|
+
average: number;
|
|
85
|
+
median: number;
|
|
86
|
+
min: number | null;
|
|
87
|
+
max: number | null;
|
|
88
|
+
range: number;
|
|
89
|
+
standardDeviation: number;
|
|
90
|
+
histogram: Record<string, number>;
|
|
91
|
+
empty: number;
|
|
92
|
+
filled: number;
|
|
93
|
+
unique: number;
|
|
94
|
+
percentEmpty: number;
|
|
95
|
+
percentFilled: number;
|
|
96
|
+
percentUnique: number;
|
|
97
|
+
}>;
|
|
98
|
+
export type CheckboxColumnType = ColumnType<boolean | undefined, boolean | undefined, boolean | undefined, 'checkbox', {
|
|
99
|
+
'=': number;
|
|
100
|
+
}>;
|
|
107
101
|
export type SelectTable = {
|
|
108
102
|
id: NumberColumnType;
|
|
109
103
|
name: TextColumnType;
|
|
@@ -123,7 +117,7 @@ export type CollaboratorsTable = {
|
|
|
123
117
|
emailAddress: TextColumnType;
|
|
124
118
|
avatar: TextColumnType;
|
|
125
119
|
};
|
|
126
|
-
export interface
|
|
120
|
+
export interface TaylorDatabase {
|
|
127
121
|
/**
|
|
128
122
|
*
|
|
129
123
|
*
|
|
@@ -135,11 +129,6 @@ export interface Tables {
|
|
|
135
129
|
collaboratorsTable: CollaboratorsTable;
|
|
136
130
|
customers: CustomersTable;
|
|
137
131
|
}
|
|
138
|
-
export interface TaylorDatabase {
|
|
139
|
-
filters: Filters;
|
|
140
|
-
aggregates: Aggregates;
|
|
141
|
-
tables: Tables;
|
|
142
|
-
}
|
|
143
132
|
interface CustomersTable {
|
|
144
133
|
id: NumberColumnType;
|
|
145
134
|
createdAt: DateColumnType;
|
|
@@ -2,24 +2,26 @@ import type { AggregateNode, AggregateRecord } from './@types/aggregate.js';
|
|
|
2
2
|
import type { AnyDB } from './@types/internal-types.js';
|
|
3
3
|
import { Executor } from './executor.js';
|
|
4
4
|
import { FilterableQueryBuilder } from './where-query-builder.js';
|
|
5
|
-
export declare class AggregationQueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
6
|
-
[K in keyof DB[
|
|
5
|
+
export declare class AggregationQueryBuilder<DB extends AnyDB, TableName extends keyof DB, TGroupBy extends readonly (keyof DB[TableName] & string)[] = [], TAggregations extends {
|
|
6
|
+
[K in keyof DB[TableName] & string]?: readonly (keyof DB[TableName][K]['aggregations'])[];
|
|
7
7
|
} = object> extends FilterableQueryBuilder<DB, TableName> {
|
|
8
8
|
#private;
|
|
9
9
|
constructor(node: AggregateNode, executor: Executor);
|
|
10
|
-
groupBy<const TField extends keyof DB[
|
|
10
|
+
groupBy<const TField extends keyof DB[TableName] & string>(field: TField, direction?: 'asc' | 'desc'): AggregationQueryBuilder<DB, TableName, [
|
|
11
11
|
...TGroupBy,
|
|
12
12
|
TField
|
|
13
13
|
], TAggregations>;
|
|
14
14
|
withAggregates<const T extends {
|
|
15
|
-
[K in keyof DB[
|
|
15
|
+
[K in keyof DB[TableName] & string]?: readonly (keyof DB[TableName][K]['aggregations'])[];
|
|
16
16
|
}>(aggregates: T): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations & T>;
|
|
17
17
|
limit(count: number): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
18
18
|
offset(count: number): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
19
19
|
paginate(page: number, limit: number): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
20
|
-
orderBy(field: keyof DB[
|
|
20
|
+
orderBy(field: keyof DB[TableName], direction?: 'asc' | 'desc'): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
21
21
|
execute(): Promise<AggregateRecord<DB, TableName, TGroupBy, TAggregations>[]>;
|
|
22
|
-
subscribe(callback: (result: AggregateRecord<DB, TableName, TGroupBy, TAggregations>[]) => void): Promise<
|
|
22
|
+
subscribe(callback: (result: AggregateRecord<DB, TableName, TGroupBy, TAggregations>[]) => void): Promise<{
|
|
23
|
+
unsubscribe: () => Promise<void>;
|
|
24
|
+
}>;
|
|
23
25
|
compile(): {
|
|
24
26
|
query: string;
|
|
25
27
|
variables: Record<string, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation-query-builder.js","sourceRoot":"","sources":["../../src/aggregation-query-builder.ts"],"names":[],"mappings":";;;AAOA,qEAAkE;AAElE,MAAa,uBAQX,SAAQ,+CAAqC;IAC7C,KAAK,CAAgB;IAErB,YAAY,IAAmB,EAAE,QAAkB;QACjD,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,CACL,KAAa,EACb,YAA4B,KAAK;QAOjC,MAAM,WAAW,GAAkC;YACjD,KAAK;YACL,SAAS;SACV,CAAC;QAEF,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC;SAC1D,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,cAAc,CAMZ,UAAa;QAEb,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC,GAAG,CACvC,SAAS,CAAC,EAAE,CAAC,SAAmB,CACjC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,YAAY,EAAE,aAAa;SAC5B,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CACH,KAAa;QAEb,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;SACvD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;SACxD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,QAAQ,CACN,IAAY,EACZ,KAAa;QAEb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"aggregation-query-builder.js","sourceRoot":"","sources":["../../src/aggregation-query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,9 @@ export declare class BatchQueryBuilder<const TBuilders extends readonly AnyQuery
|
|
|
18
18
|
}>;
|
|
19
19
|
subscribe(callback: (...results: {
|
|
20
20
|
-readonly [K in keyof TBuilders]: InferExecuteResult<TBuilders[K]>;
|
|
21
|
-
}) => void): Promise<
|
|
21
|
+
}) => void): Promise<{
|
|
22
|
+
unsubscribe: () => Promise<void>;
|
|
23
|
+
}>;
|
|
22
24
|
compile(): {
|
|
23
25
|
query: string;
|
|
24
26
|
variables: Record<string, any>;
|
|
@@ -2,7 +2,7 @@ import type { DeleteNode } from './@types/delete.js';
|
|
|
2
2
|
import type { AnyDB } from './@types/internal-types.js';
|
|
3
3
|
import { Executor } from './executor.js';
|
|
4
4
|
import { FilterableQueryBuilder } from './where-query-builder.js';
|
|
5
|
-
export declare class DeleteQueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
5
|
+
export declare class DeleteQueryBuilder<DB extends AnyDB, TableName extends keyof DB> extends FilterableQueryBuilder<DB, TableName> {
|
|
6
6
|
#private;
|
|
7
7
|
constructor(node: DeleteNode, executor: Executor);
|
|
8
8
|
execute(): Promise<{
|
package/dist/cjs/executor.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export declare class Executor {
|
|
|
10
10
|
constructor(baseUrl: string, apiKey: string);
|
|
11
11
|
execute<T>(builder: Compilable): Promise<T>;
|
|
12
12
|
rawRequest<T>(query: string, variables: Record<string, any>, headers?: Record<string, string>): Promise<T>;
|
|
13
|
-
subscribe<TResult>(builders: AnySubscribableQueryBuilder[], callback: (result: TResult) => void): Promise<
|
|
13
|
+
subscribe<TResult>(builders: AnySubscribableQueryBuilder[], callback: (result: TResult) => void): Promise<{
|
|
14
|
+
unsubscribe: () => Promise<void>;
|
|
15
|
+
}>;
|
|
14
16
|
}
|
|
15
17
|
export {};
|
package/dist/cjs/executor.js
CHANGED
|
@@ -58,7 +58,7 @@ class Executor {
|
|
|
58
58
|
}
|
|
59
59
|
throw new Error('Unexpected response format');
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
subscribe(builders, callback) {
|
|
62
62
|
const metadatas = builders.map(b => b._prepareMetadata());
|
|
63
63
|
return this.#subscriptionManager.subscribe(metadatas, callback);
|
|
64
64
|
}
|
package/dist/cjs/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,13 @@ import type { AnyDB } from './@types/internal-types.js';
|
|
|
3
3
|
import { NonLinkColumnNames } from './@types/query-builder.js';
|
|
4
4
|
import { ResolveSelection } from './@types/type-helpers.js';
|
|
5
5
|
import { Executor } from './executor.js';
|
|
6
|
-
export declare class InsertQueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
6
|
+
export declare class InsertQueryBuilder<DB extends AnyDB, TableName extends keyof DB, Selection = {
|
|
7
7
|
id: number;
|
|
8
8
|
}> {
|
|
9
9
|
#private;
|
|
10
10
|
constructor(node: InsertNode, executor: Executor);
|
|
11
|
-
values(values: Insertable<DB[
|
|
12
|
-
returning<const TFields extends readonly NonLinkColumnNames<DB[
|
|
11
|
+
values(values: Insertable<DB[TableName]> | Insertable<DB[TableName]>[]): InsertQueryBuilder<DB, TableName, Selection>;
|
|
12
|
+
returning<const TFields extends readonly NonLinkColumnNames<DB[TableName]>[]>(fields: TFields): InsertQueryBuilder<DB, TableName, ResolveSelection<DB, TableName, TFields, object>>;
|
|
13
13
|
execute(): Promise<Selection[]>;
|
|
14
14
|
compile(): {
|
|
15
15
|
query: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../src/insert-query-builder.ts"],"names":[],"mappings":";;;AAKA,yDAAkD;AAClD,iEAA0D;AAE1D,MAAa,kBAAkB;IAK7B,KAAK,CAAa;IAClB,SAAS,CAAW;IAEpB,YAAY,IAAgB,EAAE,QAAkB;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,MAAM,CACJ,
|
|
1
|
+
{"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../src/insert-query-builder.ts"],"names":[],"mappings":";;;AAKA,yDAAkD;AAClD,iEAA0D;AAE1D,MAAa,kBAAkB;IAK7B,KAAK,CAAa;IAClB,SAAS,CAAW;IAEpB,YAAY,IAAgB,EAAE,QAAkB;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,MAAM,CACJ,MAA+D;QAE/D,OAAO,IAAI,kBAAkB,CAC3B;YACE,GAAG,IAAI,CAAC,KAAK;YACb,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC1D,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,SAAS,CACP,MAAe;QAMf,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACpC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,IAAI,uCAAgB,CAAgB,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpE,aAAa;gBACb,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YACD,OAAO,KAAe,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,kBAAkB,CAC3B;YACE,GAAG,IAAI,CAAC,KAAK;YACb,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC;SACpD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,6DAA6D,CAAC;QAE5E,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAE3C,OAAO;YACL,KAAK;YACL,SAAS,EAAE;gBACT,QAAQ;aACT;SACF,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,YAAY,GAAG,CAAC,OAA+B,EAAS,EAAE;YAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,eAAe,GAAG,IAAI,+BAAY,CACtC,KAAkB,EAClB,IAAI,CAAC,SAAS,CACf,CAAC;gBACF,OAAO,eAAe,CAAC,gBAAgB,EAAE,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YACpD,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACpC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEX,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YACzC,SAAS,EAAE,kBAAkB;SAC9B,CAAC;IACJ,CAAC;CACF;AA7FD,gDA6FC"}
|
|
@@ -9,24 +9,26 @@ import { Executor } from './executor.js';
|
|
|
9
9
|
import { InsertQueryBuilder } from './insert-query-builder.js';
|
|
10
10
|
import { UpdateQueryBuilder } from './update-query-builder.js';
|
|
11
11
|
import { FilterableQueryBuilder } from './where-query-builder.js';
|
|
12
|
-
export declare class QueryBuilder<DB extends AnyDB, TableName extends keyof DB
|
|
12
|
+
export declare class QueryBuilder<DB extends AnyDB, TableName extends keyof DB, Selection = object, LinkName = null> extends FilterableQueryBuilder<DB, TableName> {
|
|
13
13
|
_node: QueryNode;
|
|
14
14
|
constructor(node: QueryNode, executor: Executor);
|
|
15
|
-
select<const TFields extends readonly NonLinkColumnNames<DB[
|
|
15
|
+
select<const TFields extends readonly NonLinkColumnNames<DB[TableName]>[]>(fields: TFields): QueryBuilder<DB, TableName, ResolveSelection<DB, TableName, TFields, Selection>>;
|
|
16
16
|
selectAll(): QueryBuilder<DB, TableName, Selection & {
|
|
17
|
-
[K in keyof DB[
|
|
17
|
+
[K in keyof DB[TableName]]: InferDataType<DB[TableName][K]>;
|
|
18
18
|
}>;
|
|
19
|
-
with<const TArg extends (LinkColumnNames<DB[
|
|
19
|
+
with<const TArg extends (LinkColumnNames<DB[TableName]> & string) | readonly (LinkColumnNames<DB[TableName]> & string)[]>(relations: TArg): QueryBuilder<DB, TableName, ResolveWithPlain<DB, TableName, TArg, Selection>>;
|
|
20
20
|
with<const TArg extends {
|
|
21
|
-
[K in LinkColumnNames<DB[
|
|
21
|
+
[K in LinkColumnNames<DB[TableName]>]?: (qb: QueryBuilder<DB, DB[TableName][K] extends LinkColumnType<any> ? DB[TableName][K]['linkedTo'] : never, object, K>) => QueryBuilder<DB, any, any, any>;
|
|
22
22
|
}>(relations: TArg): QueryBuilder<DB, TableName, ResolveWithObject<TArg, Selection>>;
|
|
23
23
|
limit(count: number): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
24
24
|
offset(count: number): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
25
25
|
paginate(page: number, limit: number): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
26
|
-
orderBy(field: keyof DB[
|
|
26
|
+
orderBy(field: keyof DB[TableName], direction?: 'asc' | 'desc'): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
27
27
|
execute(): Promise<Selection[]>;
|
|
28
28
|
executeTakeFirst(): Promise<Selection | null>;
|
|
29
|
-
subscribe(callback: (result: Selection[]) => void): Promise<
|
|
29
|
+
subscribe(callback: (result: Selection[]) => void): Promise<{
|
|
30
|
+
unsubscribe: () => Promise<void>;
|
|
31
|
+
}>;
|
|
30
32
|
compile(): {
|
|
31
33
|
query: string;
|
|
32
34
|
variables: Record<string, any>;
|
|
@@ -41,12 +43,12 @@ export declare class RootQueryBuilder<DB extends AnyDB> {
|
|
|
41
43
|
baseUrl: string;
|
|
42
44
|
apiKey: string;
|
|
43
45
|
});
|
|
44
|
-
selectFrom<TableName extends keyof Omit<DB
|
|
45
|
-
insertInto<TableName extends keyof Omit<DB
|
|
46
|
-
update<TableName extends keyof Omit<DB
|
|
47
|
-
deleteFrom<TableName extends keyof Omit<DB
|
|
46
|
+
selectFrom<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(from: TableName): QueryBuilder<DB, TableName>;
|
|
47
|
+
insertInto<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(into: TableName): InsertQueryBuilder<DB, TableName>;
|
|
48
|
+
update<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): UpdateQueryBuilder<DB, TableName>;
|
|
49
|
+
deleteFrom<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): DeleteQueryBuilder<DB, TableName>;
|
|
48
50
|
batch<const TBuilders extends readonly AnyQueryBuilder[]>(builders: TBuilders): AreAllBuildersSubscribable<TBuilders> extends true ? BatchQueryBuilder<TBuilders> : Omit<BatchQueryBuilder<TBuilders>, 'subscribe'>;
|
|
49
|
-
aggregateFrom<TableName extends keyof Omit<DB
|
|
51
|
+
aggregateFrom<TableName extends keyof Omit<DB, 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): AggregationQueryBuilder<DB, TableName>;
|
|
50
52
|
}
|
|
51
53
|
export declare function createQueryBuilder<DB extends AnyDB>(config: {
|
|
52
54
|
baseUrl: string;
|
|
@@ -11,10 +11,14 @@ const insert_query_builder_js_1 = require("./insert-query-builder.js");
|
|
|
11
11
|
const selection_builder_js_1 = require("./selection-builder.js");
|
|
12
12
|
const update_query_builder_js_1 = require("./update-query-builder.js");
|
|
13
13
|
const where_query_builder_js_1 = require("./where-query-builder.js");
|
|
14
|
+
const DEFAULT_LIMIT = 50;
|
|
14
15
|
class QueryBuilder extends where_query_builder_js_1.FilterableQueryBuilder {
|
|
15
16
|
constructor(node, executor) {
|
|
16
17
|
super(node, executor);
|
|
17
|
-
this._node =
|
|
18
|
+
this._node = {
|
|
19
|
+
...node,
|
|
20
|
+
pagination: { limit: DEFAULT_LIMIT, offset: 0, ...node.pagination },
|
|
21
|
+
};
|
|
18
22
|
}
|
|
19
23
|
select(fields) {
|
|
20
24
|
return new QueryBuilder({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query-builder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import type { AnyDB } from './@types/internal-types.js';
|
|
|
3
3
|
import { LinkColumnNames } from './@types/query-builder.js';
|
|
4
4
|
import { Executor } from './executor.js';
|
|
5
5
|
import { QueryBuilder } from './query-builder.js';
|
|
6
|
-
export declare class SelectionBuilder<DB extends AnyDB, CurrentTableName extends keyof DB
|
|
6
|
+
export declare class SelectionBuilder<DB extends AnyDB, CurrentTableName extends keyof DB> {
|
|
7
7
|
_executor: Executor;
|
|
8
8
|
constructor(executor: Executor);
|
|
9
|
-
useLink<LinkName extends LinkColumnNames<DB[
|
|
9
|
+
useLink<LinkName extends LinkColumnNames<DB[CurrentTableName]> & string>(from: LinkName): QueryBuilder<DB, DB[CurrentTableName][LinkName] extends LinkColumnType<any> ? DB[CurrentTableName][LinkName]["linkedTo"] : never, object, LinkName>;
|
|
10
10
|
}
|