@taylordb/query-builder 0.1.2 → 0.2.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/{src → cjs}/__tests__/query-builder.spec.js +1 -1
- package/dist/{src → cjs}/__tests__/query-builder.spec.js.map +1 -1
- package/dist/{src → cjs}/aggregation-query-builder.d.ts +1 -0
- package/dist/{src → cjs}/aggregation-query-builder.js +4 -1
- package/dist/{src → cjs}/aggregation-query-builder.js.map +1 -1
- package/dist/cjs/batch-query-builder.d.ts +27 -0
- package/dist/{src → cjs}/batch-query-builder.js +10 -0
- package/dist/cjs/batch-query-builder.js.map +1 -0
- package/dist/cjs/executor.d.ts +15 -0
- package/dist/cjs/executor.js +67 -0
- package/dist/cjs/executor.js.map +1 -0
- package/dist/{src → cjs}/insert-query-builder.d.ts +8 -6
- package/dist/{src → cjs}/insert-query-builder.js +2 -1
- package/dist/cjs/insert-query-builder.js.map +1 -0
- package/dist/{src → cjs}/query-builder.d.ts +4 -2
- package/dist/{src → cjs}/query-builder.js +7 -0
- package/dist/cjs/query-builder.js.map +1 -0
- package/dist/cjs/subscription-manager.d.ts +19 -0
- package/dist/cjs/subscription-manager.js +105 -0
- package/dist/cjs/subscription-manager.js.map +1 -0
- package/dist/esm/@types/aggregate.d.ts +28 -0
- package/dist/esm/@types/aggregate.js +3 -0
- package/dist/esm/@types/aggregate.js.map +1 -0
- package/dist/esm/@types/delete.d.ts +2 -0
- package/dist/esm/@types/delete.js +3 -0
- package/dist/esm/@types/delete.js.map +1 -0
- package/dist/esm/@types/insert.d.ts +8 -0
- package/dist/esm/@types/insert.js +3 -0
- package/dist/esm/@types/insert.js.map +1 -0
- package/dist/esm/@types/internal-types.d.ts +24 -0
- package/dist/esm/@types/internal-types.js +3 -0
- package/dist/esm/@types/internal-types.js.map +1 -0
- package/dist/esm/@types/query-builder.d.ts +7 -0
- package/dist/esm/@types/query-builder.js +3 -0
- package/dist/esm/@types/query-builder.js.map +1 -0
- package/dist/esm/@types/type-helpers.d.ts +27 -0
- package/dist/esm/@types/type-helpers.js +3 -0
- package/dist/esm/@types/type-helpers.js.map +1 -0
- package/dist/esm/@types/update.d.ts +5 -0
- package/dist/esm/@types/update.js +3 -0
- package/dist/esm/@types/update.js.map +1 -0
- package/dist/esm/__tests__/query-builder.spec.js +129 -0
- package/dist/esm/__tests__/query-builder.spec.js.map +1 -0
- package/dist/esm/__tests__/taylorclient.types.js.map +1 -0
- package/dist/esm/aggregation-query-builder.d.ts +28 -0
- package/dist/esm/aggregation-query-builder.js +83 -0
- package/dist/esm/aggregation-query-builder.js.map +1 -0
- package/dist/esm/batch-query-builder.d.ts +27 -0
- package/dist/esm/batch-query-builder.js +38 -0
- package/dist/esm/batch-query-builder.js.map +1 -0
- package/dist/esm/delete-query-builder.d.ts +16 -0
- package/dist/esm/delete-query-builder.js +36 -0
- package/dist/esm/delete-query-builder.js.map +1 -0
- package/dist/esm/executor.d.ts +15 -0
- package/dist/esm/executor.js +67 -0
- package/dist/esm/executor.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/insert-query-builder.d.ts +19 -0
- package/dist/esm/insert-query-builder.js +69 -0
- package/dist/esm/insert-query-builder.js.map +1 -0
- package/dist/esm/query-builder.d.ts +54 -0
- package/dist/esm/query-builder.js +209 -0
- package/dist/esm/query-builder.js.map +1 -0
- package/dist/esm/selection-builder.d.ts +10 -0
- package/dist/esm/selection-builder.js +20 -0
- package/dist/esm/selection-builder.js.map +1 -0
- package/dist/esm/subscription-manager.d.ts +19 -0
- package/dist/esm/subscription-manager.js +105 -0
- package/dist/esm/subscription-manager.js.map +1 -0
- package/dist/esm/update-query-builder.d.ts +17 -0
- package/dist/esm/update-query-builder.js +43 -0
- package/dist/esm/update-query-builder.js.map +1 -0
- package/dist/esm/where-query-builder.d.ts +14 -0
- package/dist/esm/where-query-builder.js +68 -0
- package/dist/esm/where-query-builder.js.map +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +16 -5
- package/dist/sample/sample-1/index.js +0 -68
- package/dist/sample/sample-1/index.js.map +0 -1
- package/dist/sample/sample-1/taylorclient.types.js.map +0 -1
- package/dist/src/batch-query-builder.d.ts +0 -16
- package/dist/src/batch-query-builder.js.map +0 -1
- package/dist/src/executor.d.ts +0 -12
- package/dist/src/executor.js +0 -37
- package/dist/src/executor.js.map +0 -1
- package/dist/src/insert-query-builder.js.map +0 -1
- package/dist/src/query-builder.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs}/@types/aggregate.d.ts +0 -0
- /package/dist/{src → cjs}/@types/aggregate.js +0 -0
- /package/dist/{src → cjs}/@types/aggregate.js.map +0 -0
- /package/dist/{src → cjs}/@types/delete.d.ts +0 -0
- /package/dist/{src → cjs}/@types/delete.js +0 -0
- /package/dist/{src → cjs}/@types/delete.js.map +0 -0
- /package/dist/{src → cjs}/@types/insert.d.ts +0 -0
- /package/dist/{src → cjs}/@types/insert.js +0 -0
- /package/dist/{src → cjs}/@types/insert.js.map +0 -0
- /package/dist/{src → cjs}/@types/internal-types.d.ts +0 -0
- /package/dist/{src → cjs}/@types/internal-types.js +0 -0
- /package/dist/{src → cjs}/@types/internal-types.js.map +0 -0
- /package/dist/{src → cjs}/@types/query-builder.d.ts +0 -0
- /package/dist/{src → cjs}/@types/query-builder.js +0 -0
- /package/dist/{src → cjs}/@types/query-builder.js.map +0 -0
- /package/dist/{src → cjs}/@types/type-helpers.d.ts +0 -0
- /package/dist/{src → cjs}/@types/type-helpers.js +0 -0
- /package/dist/{src → cjs}/@types/type-helpers.js.map +0 -0
- /package/dist/{src → cjs}/@types/update.d.ts +0 -0
- /package/dist/{src → cjs}/@types/update.js +0 -0
- /package/dist/{src → cjs}/@types/update.js.map +0 -0
- /package/dist/{src → cjs}/__tests__/query-builder.spec.d.ts +0 -0
- /package/dist/{sample/sample-1 → cjs/__tests__}/taylorclient.types.d.ts +0 -0
- /package/dist/{sample/sample-1 → cjs/__tests__}/taylorclient.types.js +0 -0
- /package/dist/{src → cjs}/__tests__/taylorclient.types.js.map +0 -0
- /package/dist/{src → cjs}/delete-query-builder.d.ts +0 -0
- /package/dist/{src → cjs}/delete-query-builder.js +0 -0
- /package/dist/{src → cjs}/delete-query-builder.js.map +0 -0
- /package/dist/{src → cjs}/index.d.ts +0 -0
- /package/dist/{src → cjs}/index.js +0 -0
- /package/dist/{src → cjs}/index.js.map +0 -0
- /package/dist/{src → cjs}/selection-builder.d.ts +0 -0
- /package/dist/{src → cjs}/selection-builder.js +0 -0
- /package/dist/{src → cjs}/selection-builder.js.map +0 -0
- /package/dist/{src → cjs}/update-query-builder.d.ts +0 -0
- /package/dist/{src → cjs}/update-query-builder.js +0 -0
- /package/dist/{src → cjs}/update-query-builder.js.map +0 -0
- /package/dist/{src → cjs}/where-query-builder.d.ts +0 -0
- /package/dist/{src → cjs}/where-query-builder.js +0 -0
- /package/dist/{src → cjs}/where-query-builder.js.map +0 -0
- /package/dist/{sample/sample-1/index.d.ts → esm/__tests__/query-builder.spec.d.ts} +0 -0
- /package/dist/{src → esm}/__tests__/taylorclient.types.d.ts +0 -0
- /package/dist/{src → esm}/__tests__/taylorclient.types.js +0 -0
|
@@ -117,7 +117,7 @@ describe('QueryBuilder', () => {
|
|
|
117
117
|
})
|
|
118
118
|
.compile();
|
|
119
119
|
expect(variables.metadata[0]).toMatchObject({
|
|
120
|
-
type: '
|
|
120
|
+
type: 'aggregation',
|
|
121
121
|
tableName: 'customers',
|
|
122
122
|
groupings: [{ field: 'firstName', direction: 'asc' }],
|
|
123
123
|
aggregations: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.spec.js","sourceRoot":"","sources":["../../../src/__tests__/query-builder.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query-builder.spec.js","sourceRoot":"","sources":["../../../src/__tests__/query-builder.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ export declare class AggregationQueryBuilder<DB extends AnyDB, TableName extends
|
|
|
19
19
|
paginate(page: number, limit: number): AggregationQueryBuilder<DB, TableName, TGroupBy, TAggregations>;
|
|
20
20
|
orderBy(field: keyof DB['tables'][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<void>;
|
|
22
23
|
compile(): {
|
|
23
24
|
query: string;
|
|
24
25
|
variables: Record<string, any>;
|
|
@@ -57,6 +57,9 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
|
|
|
57
57
|
const response = await this._executor.execute(this);
|
|
58
58
|
return response;
|
|
59
59
|
}
|
|
60
|
+
subscribe(callback) {
|
|
61
|
+
return this._executor.subscribe([this], callback);
|
|
62
|
+
}
|
|
60
63
|
compile() {
|
|
61
64
|
const query = 'mutation ($metadata: JSON) { execute(metadata: $metadata) }';
|
|
62
65
|
const metadata = [this._prepareMetadata()];
|
|
@@ -64,7 +67,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
|
|
|
64
67
|
}
|
|
65
68
|
_prepareMetadata() {
|
|
66
69
|
return {
|
|
67
|
-
type: '
|
|
70
|
+
type: 'aggregation',
|
|
68
71
|
tableName: this.#node.tableName,
|
|
69
72
|
groupings: this.#node.groupings,
|
|
70
73
|
aggregations: this.#node.aggregations,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation-query-builder.js","sourceRoot":"","sources":["../../src/aggregation-query-builder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"aggregation-query-builder.js","sourceRoot":"","sources":["../../src/aggregation-query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AggregationQueryBuilder } from './aggregation-query-builder.js';
|
|
2
|
+
import { DeleteQueryBuilder } from './delete-query-builder.js';
|
|
3
|
+
import { Executor } from './executor.js';
|
|
4
|
+
import { InsertQueryBuilder } from './insert-query-builder.js';
|
|
5
|
+
import { QueryBuilder } from './query-builder.js';
|
|
6
|
+
import { UpdateQueryBuilder } from './update-query-builder.js';
|
|
7
|
+
export type AnySubscribableQueryBuilder = QueryBuilder<any, any, any, any> | AggregationQueryBuilder<any, any, any, any>;
|
|
8
|
+
export type AnyQueryBuilder = AnySubscribableQueryBuilder | InsertQueryBuilder<any, any, any> | UpdateQueryBuilder<any, any> | DeleteQueryBuilder<any, any>;
|
|
9
|
+
type InferExecuteResult<TBuilder> = TBuilder extends {
|
|
10
|
+
execute: () => Promise<any>;
|
|
11
|
+
} ? Awaited<ReturnType<TBuilder['execute']>> : never;
|
|
12
|
+
export type AreAllBuildersSubscribable<TBuilders extends readonly AnyQueryBuilder[]> = TBuilders[number] extends AnySubscribableQueryBuilder ? true : false;
|
|
13
|
+
export declare class BatchQueryBuilder<const TBuilders extends readonly AnyQueryBuilder[]> {
|
|
14
|
+
#private;
|
|
15
|
+
constructor(builders: TBuilders, executor: Executor);
|
|
16
|
+
execute(): Promise<{
|
|
17
|
+
-readonly [K in keyof TBuilders]: InferExecuteResult<TBuilders[K]>;
|
|
18
|
+
}>;
|
|
19
|
+
subscribe(callback: (...results: {
|
|
20
|
+
-readonly [K in keyof TBuilders]: InferExecuteResult<TBuilders[K]>;
|
|
21
|
+
}) => void): Promise<void>;
|
|
22
|
+
compile(): {
|
|
23
|
+
query: string;
|
|
24
|
+
variables: Record<string, any>;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BatchQueryBuilder = void 0;
|
|
4
|
+
const aggregation_query_builder_js_1 = require("./aggregation-query-builder.js");
|
|
5
|
+
const query_builder_js_1 = require("./query-builder.js");
|
|
4
6
|
class BatchQueryBuilder {
|
|
5
7
|
#builders;
|
|
6
8
|
#executor;
|
|
@@ -11,6 +13,14 @@ class BatchQueryBuilder {
|
|
|
11
13
|
async execute() {
|
|
12
14
|
return this.#executor.execute(this);
|
|
13
15
|
}
|
|
16
|
+
subscribe(callback) {
|
|
17
|
+
const builders = this.#builders.filter(builder => builder instanceof aggregation_query_builder_js_1.AggregationQueryBuilder ||
|
|
18
|
+
builder instanceof query_builder_js_1.QueryBuilder);
|
|
19
|
+
if (builders.length !== this.#builders.length) {
|
|
20
|
+
throw new Error('Batch contains non-subscribable queries (e.g., insert, update, delete)');
|
|
21
|
+
}
|
|
22
|
+
return this.#executor.subscribe(builders, callback);
|
|
23
|
+
}
|
|
14
24
|
compile() {
|
|
15
25
|
const query = 'mutation ($metadata: JSON) { execute(metadata: $metadata) }';
|
|
16
26
|
const metadata = this.#builders.map(builder => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-query-builder.js","sourceRoot":"","sources":["../../src/batch-query-builder.ts"],"names":[],"mappings":";;;AAAA,iFAAyE;AAIzE,yDAAkD;AAuBlD,MAAa,iBAAiB;IAG5B,SAAS,CAAY;IACrB,SAAS,CAAW;IAEpB,YAAY,QAAmB,EAAE,QAAkB;QACjD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QAGX,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,CACP,QAIS;QAET,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACpC,OAAO,CAAC,EAAE,CACR,OAAO,YAAY,sDAAuB;YAC1C,OAAO,YAAY,+BAAY,CAClC,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAe,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,6DAA6D,CAAC;QAE5E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC5C,OAAO,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,KAAK;YACL,SAAS,EAAE;gBACT,QAAQ;aACT;SACF,CAAC;IACJ,CAAC;CACF;AArDD,8CAqDC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AnySubscribableQueryBuilder } from './batch-query-builder.js';
|
|
2
|
+
interface Compilable {
|
|
3
|
+
compile(): {
|
|
4
|
+
query: string;
|
|
5
|
+
variables: Record<string, any>;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export declare class Executor {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(baseUrl: string, apiKey: string);
|
|
11
|
+
execute<T>(builder: Compilable): Promise<T>;
|
|
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<void>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Executor = void 0;
|
|
4
|
+
const subscription_manager_js_1 = require("./subscription-manager.js");
|
|
5
|
+
const generateUUID = () => {
|
|
6
|
+
if (globalThis.crypto && globalThis.crypto.randomUUID) {
|
|
7
|
+
return globalThis.crypto.randomUUID();
|
|
8
|
+
}
|
|
9
|
+
// A simple fallback for environments without crypto.randomUUID
|
|
10
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
|
|
11
|
+
const r = (Math.random() * 16) | 0;
|
|
12
|
+
const v = c === 'x' ? r : (r & 0x3) | 0x8;
|
|
13
|
+
return v.toString(16);
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
class Executor {
|
|
17
|
+
#baseUrl;
|
|
18
|
+
#apiKey;
|
|
19
|
+
#subscriptionManager;
|
|
20
|
+
constructor(baseUrl, apiKey) {
|
|
21
|
+
this.#baseUrl = baseUrl;
|
|
22
|
+
this.#apiKey = apiKey;
|
|
23
|
+
this.#subscriptionManager = new subscription_manager_js_1.SubscriptionManager(this, {
|
|
24
|
+
baseUrl,
|
|
25
|
+
apiKey,
|
|
26
|
+
clientId: generateUUID(),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async execute(builder) {
|
|
30
|
+
const { query, variables } = builder.compile();
|
|
31
|
+
return this.rawRequest(query, variables);
|
|
32
|
+
}
|
|
33
|
+
async rawRequest(query, variables, headers) {
|
|
34
|
+
const response = await fetch(this.#baseUrl, {
|
|
35
|
+
method: 'POST',
|
|
36
|
+
headers: {
|
|
37
|
+
'Content-Type': 'application/json',
|
|
38
|
+
Authorization: `Bearer ${this.#apiKey}`,
|
|
39
|
+
schema: 'readable',
|
|
40
|
+
...(headers ? { ...headers } : {}),
|
|
41
|
+
},
|
|
42
|
+
body: JSON.stringify({ query, variables }),
|
|
43
|
+
});
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
const errorText = await response.text();
|
|
46
|
+
throw new Error(`Request failed with status ${response.status}: ${errorText}`);
|
|
47
|
+
}
|
|
48
|
+
const jsonResponse = await response.json();
|
|
49
|
+
if (jsonResponse.errors) {
|
|
50
|
+
throw new Error(`GraphQL errors: ${JSON.stringify(jsonResponse.errors)}`);
|
|
51
|
+
}
|
|
52
|
+
if (jsonResponse.data) {
|
|
53
|
+
const [firstKey] = Object.keys(jsonResponse.data);
|
|
54
|
+
if (Array.isArray(jsonResponse.data[firstKey])) {
|
|
55
|
+
return jsonResponse.data[firstKey];
|
|
56
|
+
}
|
|
57
|
+
return jsonResponse.data;
|
|
58
|
+
}
|
|
59
|
+
throw new Error('Unexpected response format');
|
|
60
|
+
}
|
|
61
|
+
async subscribe(builders, callback) {
|
|
62
|
+
const metadatas = builders.map(b => b._prepareMetadata());
|
|
63
|
+
return this.#subscriptionManager.subscribe(metadatas, callback);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.Executor = Executor;
|
|
67
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import type { Insertable, InsertNode } from './@types/insert.js';
|
|
2
2
|
import type { AnyDB } from './@types/internal-types.js';
|
|
3
|
+
import { NonLinkColumnNames } from './@types/query-builder.js';
|
|
4
|
+
import { ResolveSelection } from './@types/type-helpers.js';
|
|
3
5
|
import { Executor } from './executor.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
export declare class InsertQueryBuilder<DB extends AnyDB, TableName extends keyof DB['tables'], Selection = {
|
|
7
|
+
id: number;
|
|
8
|
+
}> {
|
|
7
9
|
#private;
|
|
8
10
|
constructor(node: InsertNode, executor: Executor);
|
|
9
|
-
values(values: Insertable<DB['tables'][TableName]> | Insertable<DB['tables'][TableName]>[]): InsertQueryBuilder<DB, TableName>;
|
|
10
|
-
returning<
|
|
11
|
-
execute
|
|
11
|
+
values(values: Insertable<DB['tables'][TableName]> | Insertable<DB['tables'][TableName]>[]): InsertQueryBuilder<DB, TableName, Selection>;
|
|
12
|
+
returning<const TFields extends readonly NonLinkColumnNames<DB['tables'][TableName]>[]>(fields: TFields): InsertQueryBuilder<DB, TableName, ResolveSelection<DB, TableName, TFields, object>>;
|
|
13
|
+
execute(): Promise<Selection[]>;
|
|
12
14
|
compile(): {
|
|
13
15
|
query: string;
|
|
14
16
|
variables: Record<string, any>;
|
|
@@ -20,6 +20,7 @@ class InsertQueryBuilder {
|
|
|
20
20
|
const newSelects = fields.map(field => {
|
|
21
21
|
if (typeof field === 'function') {
|
|
22
22
|
const builder = new selection_builder_js_1.SelectionBuilder(this.#executor);
|
|
23
|
+
// @ts-ignore
|
|
23
24
|
const subQuery = field(builder);
|
|
24
25
|
return subQuery._node;
|
|
25
26
|
}
|
|
@@ -31,7 +32,7 @@ class InsertQueryBuilder {
|
|
|
31
32
|
}, this.#executor);
|
|
32
33
|
}
|
|
33
34
|
async execute() {
|
|
34
|
-
return this.#executor.execute(this);
|
|
35
|
+
return (await this.#executor.execute(this))[0];
|
|
35
36
|
}
|
|
36
37
|
compile() {
|
|
37
38
|
const query = 'mutation ($metadata: JSON) { execute(metadata: $metadata) }';
|
|
@@ -0,0 +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,MAEyC;QAEzC,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,CAKP,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;AAnGD,gDAmGC"}
|
|
@@ -3,7 +3,7 @@ import { AnyDB, QueryNode, RootQueryNode, SelectionQueryNode } from './@types/in
|
|
|
3
3
|
import { LinkColumnNames, NonLinkColumnNames } from './@types/query-builder.js';
|
|
4
4
|
import { InferDataType, ResolveSelection, ResolveWithObject, ResolveWithPlain } from './@types/type-helpers.js';
|
|
5
5
|
import { AggregationQueryBuilder } from './aggregation-query-builder.js';
|
|
6
|
-
import { AnyQueryBuilder, BatchQueryBuilder } from './batch-query-builder.js';
|
|
6
|
+
import { AnyQueryBuilder, AreAllBuildersSubscribable, BatchQueryBuilder } from './batch-query-builder.js';
|
|
7
7
|
import { DeleteQueryBuilder } from './delete-query-builder.js';
|
|
8
8
|
import { Executor } from './executor.js';
|
|
9
9
|
import { InsertQueryBuilder } from './insert-query-builder.js';
|
|
@@ -25,6 +25,8 @@ export declare class QueryBuilder<DB extends AnyDB, TableName extends keyof DB['
|
|
|
25
25
|
paginate(page: number, limit: number): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
26
26
|
orderBy(field: keyof DB['tables'][TableName], direction?: 'asc' | 'desc'): QueryBuilder<DB, TableName, Selection, LinkName>;
|
|
27
27
|
execute(): Promise<Selection[]>;
|
|
28
|
+
executeTakeFirst(): Promise<Selection | null>;
|
|
29
|
+
subscribe(callback: (result: Selection[]) => void): Promise<void>;
|
|
28
30
|
compile(): {
|
|
29
31
|
query: string;
|
|
30
32
|
variables: Record<string, any>;
|
|
@@ -43,7 +45,7 @@ export declare class RootQueryBuilder<DB extends AnyDB> {
|
|
|
43
45
|
insertInto<TableName extends keyof Omit<DB['tables'], 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(into: TableName): InsertQueryBuilder<DB, TableName>;
|
|
44
46
|
update<TableName extends keyof Omit<DB['tables'], 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): UpdateQueryBuilder<DB, TableName>;
|
|
45
47
|
deleteFrom<TableName extends keyof Omit<DB['tables'], 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): DeleteQueryBuilder<DB, TableName>;
|
|
46
|
-
batch(builders:
|
|
48
|
+
batch<const TBuilders extends readonly AnyQueryBuilder[]>(builders: TBuilders): AreAllBuildersSubscribable<TBuilders> extends true ? BatchQueryBuilder<TBuilders> : Omit<BatchQueryBuilder<TBuilders>, 'subscribe'>;
|
|
47
49
|
aggregateFrom<TableName extends keyof Omit<DB['tables'], 'selectTable' | 'attachmentTable' | 'collaboratorsTable'> & string>(tableName: TableName): AggregationQueryBuilder<DB, TableName>;
|
|
48
50
|
}
|
|
49
51
|
export declare function createQueryBuilder<DB extends AnyDB>(config: {
|
|
@@ -84,6 +84,13 @@ class QueryBuilder extends where_query_builder_js_1.FilterableQueryBuilder {
|
|
|
84
84
|
const response = await this._executor.execute(this);
|
|
85
85
|
return response[0];
|
|
86
86
|
}
|
|
87
|
+
async executeTakeFirst() {
|
|
88
|
+
const response = await this._executor.execute(this);
|
|
89
|
+
return response[0]?.[0] ?? null;
|
|
90
|
+
}
|
|
91
|
+
subscribe(callback) {
|
|
92
|
+
return this._executor.subscribe([this], callback);
|
|
93
|
+
}
|
|
87
94
|
compile() {
|
|
88
95
|
const query = 'mutation ($metadata: JSON) { execute(metadata: $metadata) }';
|
|
89
96
|
const metadata = [this._prepareMetadata()];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Executor } from './executor.js';
|
|
2
|
+
export type DriverSubscriptionResponse = {
|
|
3
|
+
id: string;
|
|
4
|
+
delta: object[];
|
|
5
|
+
tableName: string;
|
|
6
|
+
subscriptionId: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class SubscriptionManager {
|
|
9
|
+
#private;
|
|
10
|
+
private executor;
|
|
11
|
+
private config;
|
|
12
|
+
constructor(executor: Executor, config: {
|
|
13
|
+
baseUrl: string;
|
|
14
|
+
apiKey: string;
|
|
15
|
+
timeZone?: string;
|
|
16
|
+
clientId?: string;
|
|
17
|
+
});
|
|
18
|
+
subscribe<TResult>(metadatas: any[], callback: (...results: TResult[]) => void): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SubscriptionManager = void 0;
|
|
7
|
+
const fast_json_patch_1 = __importDefault(require("fast-json-patch"));
|
|
8
|
+
const socket_io_client_1 = require("socket.io-client");
|
|
9
|
+
class SubscriptionManager {
|
|
10
|
+
executor;
|
|
11
|
+
config;
|
|
12
|
+
#socket = null;
|
|
13
|
+
#subscriptions = new Map();
|
|
14
|
+
#isConnecting = false;
|
|
15
|
+
constructor(executor, config) {
|
|
16
|
+
this.executor = executor;
|
|
17
|
+
this.config = config;
|
|
18
|
+
}
|
|
19
|
+
async #connect() {
|
|
20
|
+
if (this.#socket || this.#isConnecting) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.#isConnecting = true;
|
|
24
|
+
try {
|
|
25
|
+
const socketUrl = this.config.baseUrl
|
|
26
|
+
.replace(/^http/, 'ws')
|
|
27
|
+
.replace('api', 'bamboo');
|
|
28
|
+
this.#socket = (0, socket_io_client_1.io)(socketUrl, {
|
|
29
|
+
auth: {
|
|
30
|
+
token: this.config.apiKey,
|
|
31
|
+
'time-zone': this.config.timeZone || 'UTC',
|
|
32
|
+
'client-id': this.config.clientId,
|
|
33
|
+
},
|
|
34
|
+
query: {},
|
|
35
|
+
});
|
|
36
|
+
this.#socket.emit('listen', { clientId: this.config.clientId });
|
|
37
|
+
this.#socket.on('patch', this.#handlePatch.bind(this));
|
|
38
|
+
await new Promise((resolve, reject) => {
|
|
39
|
+
if (!this.#socket)
|
|
40
|
+
return reject('Socket not initialized');
|
|
41
|
+
this.#socket.on('connect', () => {
|
|
42
|
+
resolve();
|
|
43
|
+
});
|
|
44
|
+
this.#socket.on('connect_error', err => {
|
|
45
|
+
reject(err);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
this.#socket.emit('subscribe', { clientId: this.config.clientId });
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
this.#isConnecting = false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async subscribe(metadatas, callback) {
|
|
55
|
+
await this.#connect();
|
|
56
|
+
const param = metadatas.map(metadata => ({
|
|
57
|
+
metadata,
|
|
58
|
+
options: {
|
|
59
|
+
returns: ['patch', 'affectedFields'],
|
|
60
|
+
},
|
|
61
|
+
}));
|
|
62
|
+
const result = await this.executor.rawRequest(`
|
|
63
|
+
query ($param: [SubscriptionMetadataInput]!) {
|
|
64
|
+
plugins {
|
|
65
|
+
subscriptions {
|
|
66
|
+
subscribe(subscriptions: $param) {
|
|
67
|
+
subscriptionId
|
|
68
|
+
data
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
`, { param }, { 'client-id': this.config.clientId });
|
|
74
|
+
const subscriptions = result.plugins.subscriptions.subscribe;
|
|
75
|
+
const initialData = subscriptions.map(s => s.data);
|
|
76
|
+
for (const sub of subscriptions) {
|
|
77
|
+
this.#subscriptions.set(sub.subscriptionId, {
|
|
78
|
+
data: sub.data,
|
|
79
|
+
callback: (patchedData) => {
|
|
80
|
+
// This needs to be more robust for batching.
|
|
81
|
+
// For now, we'll just update the single data and call back.
|
|
82
|
+
const idx = subscriptions.findIndex(s => s.subscriptionId === sub.subscriptionId);
|
|
83
|
+
if (idx !== -1) {
|
|
84
|
+
initialData[idx] = patchedData;
|
|
85
|
+
callback(...initialData);
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
callback(...initialData);
|
|
91
|
+
}
|
|
92
|
+
#handlePatch(response) {
|
|
93
|
+
for (const patch of response.patches) {
|
|
94
|
+
const sub = this.#subscriptions.get(patch.subscriptionId);
|
|
95
|
+
if (sub) {
|
|
96
|
+
// @ts-ignore
|
|
97
|
+
const { newDocument } = fast_json_patch_1.default.applyPatch(sub.data, patch.delta);
|
|
98
|
+
sub.data = newDocument;
|
|
99
|
+
sub.callback(newDocument);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.SubscriptionManager = SubscriptionManager;
|
|
105
|
+
//# sourceMappingURL=subscription-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../src/subscription-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AggregationQueryMetaData, MetadataWithTableName } from '@taylordb/shared';
|
|
2
|
+
import { AnyDB } from './internal-types.js';
|
|
3
|
+
import { InferDataType } from './type-helpers.js';
|
|
4
|
+
export type AggregationValue = number | null | object | undefined;
|
|
5
|
+
export type Aggregates<DB extends AnyDB, TName extends keyof DB['tables'], TAggregations extends {
|
|
6
|
+
[K in keyof DB['tables'][TName] & string]?: readonly (keyof DB['aggregates'][DB['tables'][TName][K]['type']])[];
|
|
7
|
+
}> = {
|
|
8
|
+
-readonly [K in keyof TAggregations & keyof DB['tables'][TName]]: {
|
|
9
|
+
-readonly [P in NonNullable<TAggregations[K]>[number]]: DB['aggregates'][DB['tables'][TName][K]['type']][P];
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
type Head<T extends readonly any[]> = T extends readonly [infer H, ...any[]] ? H : never;
|
|
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['tables'], TGroupBy extends readonly (keyof DB['tables'][TName] & string)[], TAggregations extends {
|
|
15
|
+
[K in keyof DB['tables'][TName] & string]?: readonly (keyof DB['aggregates'][DB['tables'][TName][K]['type']])[];
|
|
16
|
+
}> = TGroupBy extends readonly [] ? {
|
|
17
|
+
count: number;
|
|
18
|
+
aggregates: Aggregates<DB, TName, TAggregations>;
|
|
19
|
+
} : {
|
|
20
|
+
field: Head<TGroupBy>;
|
|
21
|
+
value: InferDataType<DB['tables'][TName][Head<TGroupBy>]>;
|
|
22
|
+
count: number;
|
|
23
|
+
aggregates: Aggregates<DB, TName, TAggregations>;
|
|
24
|
+
} & (Tail<TGroupBy> extends readonly [] ? object : {
|
|
25
|
+
children: AggregateRecord<DB, TName, Tail<TGroupBy>, TAggregations>[];
|
|
26
|
+
});
|
|
27
|
+
export type AggregateNode = Omit<MetadataWithTableName<AggregationQueryMetaData>, 'fields'>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/@types/aggregate.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/@types/delete.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ColumnType, CreateMutationMetaData, MetadataWithTableName } from '@taylordb/shared';
|
|
2
|
+
import { QueryNode } from './internal-types.js';
|
|
3
|
+
export type InsertNode = MetadataWithTableName<CreateMutationMetaData> & {
|
|
4
|
+
returning: (string | QueryNode)[];
|
|
5
|
+
};
|
|
6
|
+
export type Insertable<T> = {
|
|
7
|
+
[K in keyof T]?: T[K] extends ColumnType<any, any, infer I, any> ? I : never;
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../src/@types/insert.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
};
|
|
12
|
+
export type AnyDB = {
|
|
13
|
+
filters: Filters;
|
|
14
|
+
aggregates: Aggregates;
|
|
15
|
+
tables: any;
|
|
16
|
+
};
|
|
17
|
+
export type SelectionQueryNode = ObjConfigurationVisibleField<string> & {
|
|
18
|
+
queryType: 'link';
|
|
19
|
+
};
|
|
20
|
+
export type RootQueryNode = Omit<MetadataWithTableName<SelectQueryMetaData>, 'fields'> & {
|
|
21
|
+
fields?: ('*' | string | SelectionQueryNode)[];
|
|
22
|
+
queryType: 'root';
|
|
23
|
+
};
|
|
24
|
+
export type QueryNode = SelectionQueryNode | RootQueryNode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-types.js","sourceRoot":"","sources":["../../../src/@types/internal-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LinkColumnType } from '@taylordb/shared';
|
|
2
|
+
export type NonLinkColumnNames<T> = {
|
|
3
|
+
[K in keyof T]: T[K] extends LinkColumnType<any> ? never : K;
|
|
4
|
+
}[keyof T];
|
|
5
|
+
export type LinkColumnNames<T> = {
|
|
6
|
+
[K in keyof T]: T[K] extends LinkColumnType<any> ? K : never;
|
|
7
|
+
}[keyof T];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../../src/@types/query-builder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ColumnType, LinkColumnType } from '@taylordb/shared';
|
|
2
|
+
import { QueryBuilder } from '../query-builder.js';
|
|
3
|
+
import { AnyDB } from './internal-types.js';
|
|
4
|
+
import { LinkColumnNames, NonLinkColumnNames } from './query-builder.js';
|
|
5
|
+
export type InferDataType<TColumn> = TColumn extends ColumnType<any, any, any, infer D> ? D : never;
|
|
6
|
+
export type TableShape<TTable> = {
|
|
7
|
+
[K in keyof TTable]: InferDataType<TTable[K]>;
|
|
8
|
+
};
|
|
9
|
+
type InferSubqueryResult<TSubquery> = TSubquery extends QueryBuilder<any, any, infer TSelection, any> ? TSelection[] : never;
|
|
10
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
11
|
+
type InferSubqueryShape<TFunc> = TFunc extends (b: any) => QueryBuilder<any, any, infer SubSelection, infer LinkName> ? {
|
|
12
|
+
[K in LinkName & string]: SubSelection[];
|
|
13
|
+
} : object;
|
|
14
|
+
export type ResolveSelection<DB extends AnyDB, TName extends keyof DB['tables'], TFields extends readonly any[], TCurrentSelection> = TCurrentSelection & UnionToIntersection<{
|
|
15
|
+
[I in keyof TFields]: TFields[I] extends NonLinkColumnNames<DB['tables'][TName]> ? {
|
|
16
|
+
[K in TFields[I]]: InferDataType<DB['tables'][TName][K]>;
|
|
17
|
+
} : TFields[I] extends (b: any) => QueryBuilder<any, any, any, any> ? InferSubqueryShape<TFields[I]> : object;
|
|
18
|
+
}[number]>;
|
|
19
|
+
export type ResolveWithPlain<DB extends AnyDB, TName extends keyof DB['tables'], TRelations extends (LinkColumnNames<DB['tables'][TName]> & string) | readonly (LinkColumnNames<DB['tables'][TName]> & string)[], TCurrentSelection> = TCurrentSelection & UnionToIntersection<{
|
|
20
|
+
[K in TRelations extends readonly any[] ? TRelations[number] : TRelations]: {
|
|
21
|
+
[P in K]: TableShape<DB['tables'][DB['tables'][TName][P] extends LinkColumnType<infer L> ? L : never]>[];
|
|
22
|
+
};
|
|
23
|
+
}[TRelations extends readonly any[] ? TRelations[number] : TRelations]>;
|
|
24
|
+
export type ResolveWithObject<TRelations extends Record<string, (qb: any) => QueryBuilder<any, any, any, any>>, TCurrentSelection> = TCurrentSelection & {
|
|
25
|
+
-readonly [K in keyof TRelations]: InferSubqueryResult<ReturnType<TRelations[K]>>;
|
|
26
|
+
};
|
|
27
|
+
export {};
|