@opra/sqb 0.0.9 → 0.0.12
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.
|
@@ -38,7 +38,14 @@ class BaseEntityService {
|
|
|
38
38
|
async get(keyValue, options, userContext) {
|
|
39
39
|
const conn = await this.getConnection(userContext);
|
|
40
40
|
const repo = conn.getRepository(this.resourceType);
|
|
41
|
-
let out
|
|
41
|
+
let out;
|
|
42
|
+
try {
|
|
43
|
+
out = await repo.findByPk(keyValue, options);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
await this._onError(e);
|
|
47
|
+
throw new core_1.BadRequestError(e);
|
|
48
|
+
}
|
|
42
49
|
if (out && this.onTransformRow)
|
|
43
50
|
out = this.onTransformRow(out, userContext, 'findByPk');
|
|
44
51
|
return out;
|
|
@@ -46,12 +53,25 @@ class BaseEntityService {
|
|
|
46
53
|
async count(options, userContext) {
|
|
47
54
|
const conn = await this.getConnection(userContext);
|
|
48
55
|
const repo = conn.getRepository(this.resourceType);
|
|
49
|
-
|
|
56
|
+
try {
|
|
57
|
+
return await repo.count(options);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
await this._onError(e);
|
|
61
|
+
throw new core_1.BadRequestError(e);
|
|
62
|
+
}
|
|
50
63
|
}
|
|
51
64
|
async search(options, userContext) {
|
|
52
65
|
const conn = await this.getConnection(userContext);
|
|
53
66
|
const repo = conn.getRepository(this.resourceType);
|
|
54
|
-
|
|
67
|
+
let items;
|
|
68
|
+
try {
|
|
69
|
+
items = await repo.findAll(options);
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
await this._onError(e);
|
|
73
|
+
throw new core_1.BadRequestError(e);
|
|
74
|
+
}
|
|
55
75
|
if (items.length && this.onTransformRow) {
|
|
56
76
|
const newItems = [];
|
|
57
77
|
for (const item of items) {
|
|
@@ -71,6 +91,7 @@ class BaseEntityService {
|
|
|
71
91
|
out = await repo.create(data, options);
|
|
72
92
|
}
|
|
73
93
|
catch (e) {
|
|
94
|
+
await this._onError(e);
|
|
74
95
|
throw new core_1.BadRequestError(e);
|
|
75
96
|
}
|
|
76
97
|
if (out && this.onTransformRow)
|
|
@@ -85,6 +106,7 @@ class BaseEntityService {
|
|
|
85
106
|
out = await repo.update(keyValue, data, options);
|
|
86
107
|
}
|
|
87
108
|
catch (e) {
|
|
109
|
+
await this._onError(e);
|
|
88
110
|
throw new core_1.BadRequestError(e);
|
|
89
111
|
}
|
|
90
112
|
if (out && this.onTransformRow)
|
|
@@ -98,6 +120,7 @@ class BaseEntityService {
|
|
|
98
120
|
return await repo.updateAll(data, options);
|
|
99
121
|
}
|
|
100
122
|
catch (e) {
|
|
123
|
+
await this._onError(e);
|
|
101
124
|
throw new core_1.BadRequestError(e);
|
|
102
125
|
}
|
|
103
126
|
}
|
|
@@ -108,6 +131,7 @@ class BaseEntityService {
|
|
|
108
131
|
return await repo.destroy(keyValue, options);
|
|
109
132
|
}
|
|
110
133
|
catch (e) {
|
|
134
|
+
await this._onError(e);
|
|
111
135
|
throw new core_1.BadRequestError(e);
|
|
112
136
|
}
|
|
113
137
|
}
|
|
@@ -118,8 +142,13 @@ class BaseEntityService {
|
|
|
118
142
|
return await repo.destroyAll(options);
|
|
119
143
|
}
|
|
120
144
|
catch (e) {
|
|
145
|
+
await this._onError(e);
|
|
121
146
|
throw new core_1.BadRequestError(e);
|
|
122
147
|
}
|
|
123
148
|
}
|
|
149
|
+
async _onError(e) {
|
|
150
|
+
if (this.onError)
|
|
151
|
+
await this.onError(e);
|
|
152
|
+
}
|
|
124
153
|
}
|
|
125
154
|
exports.BaseEntityService = BaseEntityService;
|
package/cjs/convert-filter.js
CHANGED
|
@@ -9,7 +9,8 @@ function convertFilter(str) {
|
|
|
9
9
|
if (!ast)
|
|
10
10
|
return;
|
|
11
11
|
if (ast instanceof url_1.ComparisonExpression) {
|
|
12
|
-
const left =
|
|
12
|
+
const left = ast.left instanceof url_1.QualifiedIdentifier
|
|
13
|
+
? ast.left.value : convertFilter(ast.left);
|
|
13
14
|
const right = convertFilter(ast.right);
|
|
14
15
|
switch (ast.op) {
|
|
15
16
|
case '=':
|
|
@@ -5,7 +5,7 @@ export declare namespace BaseEntityService {
|
|
|
5
5
|
type FindAllOptions = Repository.FindAllOptions & {
|
|
6
6
|
total?: boolean;
|
|
7
7
|
};
|
|
8
|
-
type
|
|
8
|
+
type GetOptions = Repository.GetOptions;
|
|
9
9
|
type CreateOptions = Repository.CreateOptions;
|
|
10
10
|
type UpdateOptions = Repository.UpdateOptions;
|
|
11
11
|
type UpdateManyOptions = Repository.UpdateAllOptions;
|
|
@@ -17,7 +17,7 @@ export declare abstract class BaseEntityService<T> implements IEntityService {
|
|
|
17
17
|
protected _metadata: EntityMetadata;
|
|
18
18
|
protected constructor(resourceType: Type<T>);
|
|
19
19
|
processRequest(ctx: QueryContext): Promise<number | boolean | (T extends import("ts-gems").Builtin ? T : T extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T extends (infer U_1)[] ? any[] : { [P_1 in keyof T]?: (Exclude<T[P_1], undefined> extends infer T_1 ? T_1 extends Exclude<T[P_1], undefined> ? T_1 extends import("ts-gems").Builtin ? T_1 : T_1 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_1 extends (infer U_1)[] ? any[] : { [P_2 in keyof T_1]?: (Exclude<T_1[P_2], undefined> extends infer T_2 ? T_2 extends Exclude<T_1[P_2], undefined> ? T_2 extends import("ts-gems").Builtin ? T_2 : T_2 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_2 extends (infer U_1)[] ? any[] : { [P_3 in keyof T_2]?: (Exclude<T_2[P_3], undefined> extends infer T_3 ? T_3 extends Exclude<T_2[P_3], undefined> ? T_3 extends import("ts-gems").Builtin ? T_3 : T_3 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_3 extends (infer U_1)[] ? any[] : { [P_4 in keyof T_3]?: (Exclude<T_3[P_4], undefined> extends infer T_4 ? T_4 extends Exclude<T_3[P_4], undefined> ? T_4 extends import("ts-gems").Builtin ? T_4 : T_4 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_4 extends (infer U_1)[] ? any[] : { [P_5 in keyof T_4]?: (Exclude<T_4[P_5], undefined> extends infer T_5 ? T_5 extends Exclude<T_4[P_5], undefined> ? T_5 extends import("ts-gems").Builtin ? T_5 : T_5 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_5 extends (infer U_1)[] ? any[] : { [P_6 in keyof T_5]?: (Exclude<T_5[P_6], undefined> extends infer T_6 ? T_6 extends Exclude<T_5[P_6], undefined> ? T_6 extends import("ts-gems").Builtin ? T_6 : T_6 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_6 extends (infer U_1)[] ? any[] : { [P_7 in keyof T_6]?: (Exclude<T_6[P_7], undefined> extends infer T_7 ? T_7 extends Exclude<T_6[P_7], undefined> ? T_7 extends import("ts-gems").Builtin ? T_7 : T_7 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_7 extends (infer U_1)[] ? any[] : { [P_8 in keyof T_7]?: (Exclude<T_7[P_8], undefined> extends infer T_8 ? T_8 extends Exclude<T_7[P_8], undefined> ? T_8 extends import("ts-gems").Builtin ? T_8 : T_8 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_8 extends (infer U_1)[] ? any[] : { [P_9 in keyof T_8]?: (Exclude<T_8[P_9], undefined> extends infer T_9 ? T_9 extends Exclude<T_8[P_9], undefined> ? T_9 extends import("ts-gems").Builtin ? T_9 : T_9 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_9 extends (infer U_1)[] ? any[] : { [P_10 in keyof T_9]?: (Exclude<T_9[P_10], undefined> extends infer T_10 ? T_10 extends Exclude<T_9[P_10], undefined> ? T_10 extends import("ts-gems").Builtin ? T_10 : T_10 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_10 extends (infer U_1)[] ? any[] : { [P_11 in keyof T_10]?: any | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; }) | Maybe<T extends import("ts-gems").Builtin ? T : T extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T extends (infer U_1)[] ? any[] : { [P_1 in keyof T]?: (Exclude<T[P_1], undefined> extends infer T_1 ? T_1 extends Exclude<T[P_1], undefined> ? T_1 extends import("ts-gems").Builtin ? T_1 : T_1 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_1 extends (infer U_1)[] ? any[] : { [P_2 in keyof T_1]?: (Exclude<T_1[P_2], undefined> extends infer T_2 ? T_2 extends Exclude<T_1[P_2], undefined> ? T_2 extends import("ts-gems").Builtin ? T_2 : T_2 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_2 extends (infer U_1)[] ? any[] : { [P_3 in keyof T_2]?: (Exclude<T_2[P_3], undefined> extends infer T_3 ? T_3 extends Exclude<T_2[P_3], undefined> ? T_3 extends import("ts-gems").Builtin ? T_3 : T_3 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_3 extends (infer U_1)[] ? any[] : { [P_4 in keyof T_3]?: (Exclude<T_3[P_4], undefined> extends infer T_4 ? T_4 extends Exclude<T_3[P_4], undefined> ? T_4 extends import("ts-gems").Builtin ? T_4 : T_4 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_4 extends (infer U_1)[] ? any[] : { [P_5 in keyof T_4]?: (Exclude<T_4[P_5], undefined> extends infer T_5 ? T_5 extends Exclude<T_4[P_5], undefined> ? T_5 extends import("ts-gems").Builtin ? T_5 : T_5 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_5 extends (infer U_1)[] ? any[] : { [P_6 in keyof T_5]?: (Exclude<T_5[P_6], undefined> extends infer T_6 ? T_6 extends Exclude<T_5[P_6], undefined> ? T_6 extends import("ts-gems").Builtin ? T_6 : T_6 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_6 extends (infer U_1)[] ? any[] : { [P_7 in keyof T_6]?: (Exclude<T_6[P_7], undefined> extends infer T_7 ? T_7 extends Exclude<T_6[P_7], undefined> ? T_7 extends import("ts-gems").Builtin ? T_7 : T_7 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_7 extends (infer U_1)[] ? any[] : { [P_8 in keyof T_7]?: (Exclude<T_7[P_8], undefined> extends infer T_8 ? T_8 extends Exclude<T_7[P_8], undefined> ? T_8 extends import("ts-gems").Builtin ? T_8 : T_8 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_8 extends (infer U_1)[] ? any[] : { [P_9 in keyof T_8]?: (Exclude<T_8[P_9], undefined> extends infer T_9 ? T_9 extends Exclude<T_8[P_9], undefined> ? T_9 extends import("ts-gems").Builtin ? T_9 : T_9 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_9 extends (infer U_1)[] ? any[] : { [P_10 in keyof T_9]?: (Exclude<T_9[P_10], undefined> extends infer T_10 ? T_10 extends Exclude<T_9[P_10], undefined> ? T_10 extends import("ts-gems").Builtin ? T_10 : T_10 extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<U extends import("ts-gems").Builtin ? U : U extends Promise<infer U> ? Promise<any> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : U extends (infer U_1)[] ? any[] : { [P in keyof U]?: any | null | undefined; }> : T_10 extends (infer U_1)[] ? any[] : { [P_11 in keyof T_10]?: any | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; } : never : never) | null | undefined; }>[] | undefined>;
|
|
20
|
-
get(keyValue: any, options?: BaseEntityService.
|
|
20
|
+
get(keyValue: any, options?: BaseEntityService.GetOptions, userContext?: any): Promise<Maybe<EntityOutput<T>>>;
|
|
21
21
|
count(options?: BaseEntityService.FindAllOptions, userContext?: any): Promise<Maybe<number>>;
|
|
22
22
|
search(options?: BaseEntityService.FindAllOptions, userContext?: any): Promise<Maybe<EntityOutput<T>>[]>;
|
|
23
23
|
create(data: EntityInput<T>, options?: BaseEntityService.CreateOptions, userContext?: any): Promise<Maybe<EntityOutput<T>>>;
|
|
@@ -25,6 +25,8 @@ export declare abstract class BaseEntityService<T> implements IEntityService {
|
|
|
25
25
|
updateMany(data: EntityInput<T>, options?: BaseEntityService.UpdateManyOptions, userContext?: any): Promise<Maybe<number>>;
|
|
26
26
|
delete(keyValue: any, options?: BaseEntityService.DeleteOptions, userContext?: any): Promise<boolean>;
|
|
27
27
|
deleteMany(options?: BaseEntityService.DeleteManyOptions, userContext?: any): Promise<number>;
|
|
28
|
+
private _onError;
|
|
28
29
|
protected abstract getConnection(userContext?: any): SqbConnection | SqbClient | Promise<SqbConnection | SqbClient>;
|
|
30
|
+
protected onError?(e: unknown): void | Promise<void>;
|
|
29
31
|
protected onTransformRow?(row: EntityOutput<T>, userContext: any, method: string): EntityOutput<T>;
|
|
30
32
|
}
|
|
@@ -35,7 +35,14 @@ export class BaseEntityService {
|
|
|
35
35
|
async get(keyValue, options, userContext) {
|
|
36
36
|
const conn = await this.getConnection(userContext);
|
|
37
37
|
const repo = conn.getRepository(this.resourceType);
|
|
38
|
-
let out
|
|
38
|
+
let out;
|
|
39
|
+
try {
|
|
40
|
+
out = await repo.findByPk(keyValue, options);
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
await this._onError(e);
|
|
44
|
+
throw new BadRequestError(e);
|
|
45
|
+
}
|
|
39
46
|
if (out && this.onTransformRow)
|
|
40
47
|
out = this.onTransformRow(out, userContext, 'findByPk');
|
|
41
48
|
return out;
|
|
@@ -43,12 +50,25 @@ export class BaseEntityService {
|
|
|
43
50
|
async count(options, userContext) {
|
|
44
51
|
const conn = await this.getConnection(userContext);
|
|
45
52
|
const repo = conn.getRepository(this.resourceType);
|
|
46
|
-
|
|
53
|
+
try {
|
|
54
|
+
return await repo.count(options);
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
await this._onError(e);
|
|
58
|
+
throw new BadRequestError(e);
|
|
59
|
+
}
|
|
47
60
|
}
|
|
48
61
|
async search(options, userContext) {
|
|
49
62
|
const conn = await this.getConnection(userContext);
|
|
50
63
|
const repo = conn.getRepository(this.resourceType);
|
|
51
|
-
|
|
64
|
+
let items;
|
|
65
|
+
try {
|
|
66
|
+
items = await repo.findAll(options);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
await this._onError(e);
|
|
70
|
+
throw new BadRequestError(e);
|
|
71
|
+
}
|
|
52
72
|
if (items.length && this.onTransformRow) {
|
|
53
73
|
const newItems = [];
|
|
54
74
|
for (const item of items) {
|
|
@@ -68,6 +88,7 @@ export class BaseEntityService {
|
|
|
68
88
|
out = await repo.create(data, options);
|
|
69
89
|
}
|
|
70
90
|
catch (e) {
|
|
91
|
+
await this._onError(e);
|
|
71
92
|
throw new BadRequestError(e);
|
|
72
93
|
}
|
|
73
94
|
if (out && this.onTransformRow)
|
|
@@ -82,6 +103,7 @@ export class BaseEntityService {
|
|
|
82
103
|
out = await repo.update(keyValue, data, options);
|
|
83
104
|
}
|
|
84
105
|
catch (e) {
|
|
106
|
+
await this._onError(e);
|
|
85
107
|
throw new BadRequestError(e);
|
|
86
108
|
}
|
|
87
109
|
if (out && this.onTransformRow)
|
|
@@ -95,6 +117,7 @@ export class BaseEntityService {
|
|
|
95
117
|
return await repo.updateAll(data, options);
|
|
96
118
|
}
|
|
97
119
|
catch (e) {
|
|
120
|
+
await this._onError(e);
|
|
98
121
|
throw new BadRequestError(e);
|
|
99
122
|
}
|
|
100
123
|
}
|
|
@@ -105,6 +128,7 @@ export class BaseEntityService {
|
|
|
105
128
|
return await repo.destroy(keyValue, options);
|
|
106
129
|
}
|
|
107
130
|
catch (e) {
|
|
131
|
+
await this._onError(e);
|
|
108
132
|
throw new BadRequestError(e);
|
|
109
133
|
}
|
|
110
134
|
}
|
|
@@ -115,7 +139,12 @@ export class BaseEntityService {
|
|
|
115
139
|
return await repo.destroyAll(options);
|
|
116
140
|
}
|
|
117
141
|
catch (e) {
|
|
142
|
+
await this._onError(e);
|
|
118
143
|
throw new BadRequestError(e);
|
|
119
144
|
}
|
|
120
145
|
}
|
|
146
|
+
async _onError(e) {
|
|
147
|
+
if (this.onError)
|
|
148
|
+
await this.onError(e);
|
|
149
|
+
}
|
|
121
150
|
}
|
package/esm/convert-filter.js
CHANGED
|
@@ -5,7 +5,8 @@ export function convertFilter(str) {
|
|
|
5
5
|
if (!ast)
|
|
6
6
|
return;
|
|
7
7
|
if (ast instanceof ComparisonExpression) {
|
|
8
|
-
const left =
|
|
8
|
+
const left = ast.left instanceof QualifiedIdentifier
|
|
9
|
+
? ast.left.value : convertFilter(ast.left);
|
|
9
10
|
const right = convertFilter(ast.right);
|
|
10
11
|
switch (ast.op) {
|
|
11
12
|
case '=':
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/sqb",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"description": "Opra SQB adapter package",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"@sqb/connect": "^4.5.1"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@opra/core": "^0.0.
|
|
36
|
-
"@opra/optionals": "^0.0.
|
|
37
|
-
"@opra/url": "^0.0.
|
|
35
|
+
"@opra/core": "^0.0.12",
|
|
36
|
+
"@opra/optionals": "^0.0.12",
|
|
37
|
+
"@opra/url": "^0.0.12",
|
|
38
38
|
"@sqb/connect": ">= 4.5.0",
|
|
39
39
|
"@sqb/sqljs": "^4.5.1"
|
|
40
40
|
},
|