prostgles-server 2.0.270 → 2.0.273
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/AuthHandler.d.ts +11 -3
- package/dist/AuthHandler.d.ts.map +1 -1
- package/dist/AuthHandler.js +38 -20
- package/dist/AuthHandler.js.map +1 -1
- package/dist/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DBSchemaBuilder.js +4 -0
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +149 -0
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -0
- package/{lib → dist/DboBuilder/QueryBuilder}/QueryBuilder.js +4 -223
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -0
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +5 -0
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -0
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js +225 -0
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js.map +1 -0
- package/dist/DboBuilder/delete.d.ts.map +1 -1
- package/dist/DboBuilder/delete.js +6 -1
- package/dist/DboBuilder/delete.js.map +1 -1
- package/dist/DboBuilder.d.ts +1 -1
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +3 -3
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts +4 -1
- package/dist/FileManager.d.ts.map +1 -1
- package/dist/FileManager.js +22 -3
- package/dist/FileManager.js.map +1 -1
- package/dist/Filtering.d.ts +1 -1
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Prostgles.d.ts +11 -1
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +2 -0
- package/dist/Prostgles.js.map +1 -1
- package/dist/TableConfig.d.ts +4 -1
- package/dist/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig.js +8 -6
- package/dist/TableConfig.js.map +1 -1
- package/dist/validation.js +1 -2
- package/dist/validation.js.map +1 -1
- package/lib/AuthHandler.d.ts +11 -3
- package/lib/AuthHandler.d.ts.map +1 -1
- package/lib/AuthHandler.js +38 -20
- package/lib/AuthHandler.ts +47 -21
- package/lib/DBSchemaBuilder.d.ts.map +1 -1
- package/lib/DBSchemaBuilder.js +4 -0
- package/lib/DBSchemaBuilder.ts +2 -0
- package/lib/{QueryBuilder.d.ts → DboBuilder/QueryBuilder/QueryBuilder.d.ts} +2 -3
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -0
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +1160 -0
- package/lib/{QueryBuilder.ts → DboBuilder/QueryBuilder/QueryBuilder.ts} +3 -282
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +5 -0
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -0
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +224 -0
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.ts +284 -0
- package/lib/DboBuilder/delete.d.ts.map +1 -1
- package/lib/DboBuilder/delete.js +6 -1
- package/lib/DboBuilder/delete.ts +6 -1
- package/lib/DboBuilder.d.ts +1 -1
- package/lib/DboBuilder.d.ts.map +1 -1
- package/lib/DboBuilder.js +3 -3
- package/lib/DboBuilder.ts +3 -3
- package/lib/FileManager.d.ts +4 -1
- package/lib/FileManager.d.ts.map +1 -1
- package/lib/FileManager.js +22 -3
- package/lib/FileManager.ts +26 -4
- package/lib/Filtering.d.ts +1 -1
- package/lib/Filtering.d.ts.map +1 -1
- package/lib/Filtering.ts +1 -1
- package/lib/Prostgles.d.ts +11 -1
- package/lib/Prostgles.d.ts.map +1 -1
- package/lib/Prostgles.js +2 -0
- package/lib/Prostgles.ts +14 -3
- package/lib/TableConfig.d.ts +4 -1
- package/lib/TableConfig.d.ts.map +1 -1
- package/lib/TableConfig.js +8 -6
- package/lib/TableConfig.ts +11 -6
- package/lib/validation.js +1 -2
- package/lib/validation.ts +2 -2
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/server/package-lock.json +1 -1
- package/lib/QueryBuilder.d.ts.map +0 -1
package/lib/Filtering.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
import { SelectItem } from "./QueryBuilder";
|
|
3
|
+
import { SelectItem } from "./DboBuilder/QueryBuilder/QueryBuilder";
|
|
4
4
|
import { isEmpty, getKeys, FullFilter, EXISTS_KEYS, FilterDataType, GeomFilterKeys, GeomFilter_Funcs, TextFilter_FullTextSearchFilterKeys } from "prostgles-types";
|
|
5
5
|
import { isPlainObject } from "./DboBuilder";
|
|
6
6
|
|
package/lib/Prostgles.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ declare type Keywords = {
|
|
|
31
31
|
export declare type DeepPartial<T> = {
|
|
32
32
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
33
33
|
};
|
|
34
|
-
declare type ExpressApp = {
|
|
34
|
+
export declare type ExpressApp = {
|
|
35
35
|
get: (routePath: string, cb: (req: {
|
|
36
36
|
params: {
|
|
37
37
|
name: string;
|
|
@@ -49,6 +49,16 @@ declare type ExpressApp = {
|
|
|
49
49
|
json: (response: AnyObject) => any;
|
|
50
50
|
};
|
|
51
51
|
}) => any) => any;
|
|
52
|
+
_router?: {
|
|
53
|
+
stack?: {
|
|
54
|
+
handle: Function;
|
|
55
|
+
path: undefined;
|
|
56
|
+
keys?: any[];
|
|
57
|
+
route?: {
|
|
58
|
+
path?: string;
|
|
59
|
+
};
|
|
60
|
+
}[];
|
|
61
|
+
};
|
|
52
62
|
};
|
|
53
63
|
/**
|
|
54
64
|
* Allows uploading and downloading files.
|
package/lib/Prostgles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prostgles.d.ts","sourceRoot":"","sources":["Prostgles.ts"],"names":[],"mappings":";AAMA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,GAAG,QAAQ,iCAAiC,CAAC,CAAC;AACvD,OAAO,WAAW,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIjF,OAAO,WAAW,EAAE,EAAc,IAAI,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,iBAAiB,EAAE,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,eAAe,EAA2C,YAAY,EAAE,MAAM,cAAc,CAAC;AAElH,OAAO,EAAE,eAAe,EAAE,CAAA;AAC1B,oBAAY,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAElD,OAAO,EAA8C,SAAS,EAAkD,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1J,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,oBAAY,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AACrD,aAAK,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAClE,aAAK,gBAAgB,GAAG,EAAE,CAAC,SAAS,CAAC;AACrC,eAAO,MAAM,aAAa,sEAAuE,CAAC;AAwDlG,eAAO,MAAM,UAAU,2DAA4D,CAAC;AACpF,oBAAY,IAAI,GAAG;IACjB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,EAAE,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAChC,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;CACjC,CAAC;AACF,oBAAY,KAAK,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC;AAIxC,aAAK,QAAQ,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC;AAYF,
|
|
1
|
+
{"version":3,"file":"Prostgles.d.ts","sourceRoot":"","sources":["Prostgles.ts"],"names":[],"mappings":"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"}
|
package/lib/Prostgles.js
CHANGED
package/lib/Prostgles.ts
CHANGED
|
@@ -114,7 +114,7 @@ export type DeepPartial<T> = {
|
|
|
114
114
|
// }>;
|
|
115
115
|
// }
|
|
116
116
|
|
|
117
|
-
type ExpressApp = {
|
|
117
|
+
export type ExpressApp = {
|
|
118
118
|
get: (
|
|
119
119
|
routePath: string,
|
|
120
120
|
cb: (
|
|
@@ -131,7 +131,17 @@ type ExpressApp = {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
) => any
|
|
134
|
-
) => any
|
|
134
|
+
) => any;
|
|
135
|
+
_router?: {
|
|
136
|
+
stack?: {
|
|
137
|
+
handle: Function;
|
|
138
|
+
path: undefined,
|
|
139
|
+
keys?: any[];
|
|
140
|
+
route?: {
|
|
141
|
+
path?: string;
|
|
142
|
+
}
|
|
143
|
+
}[]
|
|
144
|
+
}
|
|
135
145
|
};
|
|
136
146
|
|
|
137
147
|
/**
|
|
@@ -610,8 +620,9 @@ export class Prostgles {
|
|
|
610
620
|
// console.log("this.io.close")
|
|
611
621
|
// }
|
|
612
622
|
}
|
|
613
|
-
|
|
623
|
+
this.fileManager?.destroy();
|
|
614
624
|
this.dboBuilder?.destroy();
|
|
625
|
+
this.authHandler?.destroy();
|
|
615
626
|
this.dbo = undefined;
|
|
616
627
|
this.db = undefined;
|
|
617
628
|
await db.$pool.end();
|
package/lib/TableConfig.d.ts
CHANGED
|
@@ -112,7 +112,10 @@ declare type OneOf = {
|
|
|
112
112
|
};
|
|
113
113
|
declare type ColumnConfig<LANG_IDS = {
|
|
114
114
|
en: 1;
|
|
115
|
-
}> = NamedJoinColumn | MediaColumn | (BaseColumn<LANG_IDS> & (SQLDefColumn | ReferencedColumn | TextColumn | JSONBColumnDef | OneOf))
|
|
115
|
+
}> = StrictUnion<NamedJoinColumn | MediaColumn | (BaseColumn<LANG_IDS> & (SQLDefColumn | ReferencedColumn | TextColumn | JSONBColumnDef | OneOf))>;
|
|
116
|
+
declare type UnionKeys<T> = T extends T ? keyof T : never;
|
|
117
|
+
declare type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>> : never;
|
|
118
|
+
declare type StrictUnion<T> = StrictUnionHelper<T, T>;
|
|
116
119
|
declare type TableDefinition<LANG_IDS> = {
|
|
117
120
|
columns?: {
|
|
118
121
|
[column_name: string]: ColumnConfig<LANG_IDS>;
|
package/lib/TableConfig.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["TableConfig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["TableConfig.ts"],"names":[],"mappings":"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"}
|
package/lib/TableConfig.js
CHANGED
|
@@ -87,6 +87,8 @@ class TableConfigurator {
|
|
|
87
87
|
if ("columns" in td && td.columns?.[targetTable]) {
|
|
88
88
|
const cd = td.columns[targetTable];
|
|
89
89
|
if ("joinDef" in cd) {
|
|
90
|
+
if (!cd.joinDef)
|
|
91
|
+
throw "cd.joinDef missing";
|
|
90
92
|
const { joinDef } = cd;
|
|
91
93
|
const res = {
|
|
92
94
|
expectOne: false,
|
|
@@ -161,13 +163,13 @@ class TableConfigurator {
|
|
|
161
163
|
if ("columns" in tableConf) {
|
|
162
164
|
const getColDef = (name, colConf) => {
|
|
163
165
|
const colNameEsc = (0, prostgles_types_1.asName)(name);
|
|
164
|
-
const
|
|
166
|
+
const getColTypeDef = (colConf, pgType) => {
|
|
165
167
|
const { nullable, defaultValue } = colConf;
|
|
166
168
|
return `${pgType} ${!nullable ? " NOT NULL " : ""} ${defaultValue ? ` DEFAULT ${(0, PubSubManager_1.asValue)(defaultValue)} ` : ""}`;
|
|
167
169
|
};
|
|
168
170
|
if ("references" in colConf && colConf.references) {
|
|
169
171
|
const { tableName: lookupTable, columnName: lookupCol = "id" } = colConf.references;
|
|
170
|
-
return ` ${colNameEsc} ${
|
|
172
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf.references, "TEXT")} REFERENCES ${lookupTable} (${lookupCol}) `;
|
|
171
173
|
}
|
|
172
174
|
else if ("sqlDefinition" in colConf && colConf.sqlDefinition) {
|
|
173
175
|
return ` ${colNameEsc} ${colConf.sqlDefinition} `;
|
|
@@ -183,7 +185,7 @@ class TableConfigurator {
|
|
|
183
185
|
if (cArr.length) {
|
|
184
186
|
checks = `CHECK (${cArr.join(" AND ")})`;
|
|
185
187
|
}
|
|
186
|
-
return ` ${colNameEsc} ${
|
|
188
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf, "TEXT")} ${checks}`;
|
|
187
189
|
}
|
|
188
190
|
else if ("jsonbSchema" in colConf && colConf.jsonbSchema) {
|
|
189
191
|
/** Validate default value against jsonbSchema */
|
|
@@ -198,11 +200,11 @@ class TableConfigurator {
|
|
|
198
200
|
});
|
|
199
201
|
}
|
|
200
202
|
const checkStatement = (0, validation_1.getPGCheckConstraint)({ schema: colConf.jsonbSchema, escapedFieldName: colNameEsc, nullable: !!colConf.nullable }, 0);
|
|
201
|
-
return ` ${colNameEsc} ${
|
|
203
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf, "JSONB")} CHECK(${checkStatement})`;
|
|
202
204
|
}
|
|
203
205
|
else if ("oneOf" in colConf) {
|
|
204
|
-
if (!colConf.oneOf
|
|
205
|
-
throw new Error("Must not be empty");
|
|
206
|
+
if (!colConf.oneOf?.length)
|
|
207
|
+
throw new Error("colConf.oneOf Must not be empty");
|
|
206
208
|
const type = colConf.oneOf.every(v => Number.isFinite(v)) ? "NUMERIC" : "TEXT";
|
|
207
209
|
const checks = colConf.oneOf.map(v => `${colNameEsc} = ${(0, PubSubManager_1.asValue)(v)}`).join(" OR ");
|
|
208
210
|
return ` ${colNameEsc} ${type} ${colConf.nullable ? "" : "NOT NULL"} ${"defaultValue" in colConf ? ` DEFAULT ${(0, PubSubManager_1.asValue)(colConf.defaultValue)}` : ""} CHECK(${checks})`;
|
package/lib/TableConfig.ts
CHANGED
|
@@ -154,7 +154,11 @@ type OneOf = {
|
|
|
154
154
|
defaultValue?: OneOf["oneOf"][number];
|
|
155
155
|
};
|
|
156
156
|
|
|
157
|
-
type ColumnConfig<LANG_IDS = { en: 1 }> = NamedJoinColumn | MediaColumn | (BaseColumn<LANG_IDS> & (SQLDefColumn | ReferencedColumn | TextColumn | JSONBColumnDef | OneOf))
|
|
157
|
+
type ColumnConfig<LANG_IDS = { en: 1 }> = StrictUnion<NamedJoinColumn | MediaColumn | (BaseColumn<LANG_IDS> & (SQLDefColumn | ReferencedColumn | TextColumn | JSONBColumnDef | OneOf))>
|
|
158
|
+
|
|
159
|
+
type UnionKeys<T> = T extends T ? keyof T : never;
|
|
160
|
+
type StrictUnionHelper<T, TAll> = T extends any ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>> : never;
|
|
161
|
+
type StrictUnion<T> = StrictUnionHelper<T, T>
|
|
158
162
|
|
|
159
163
|
type TableDefinition<LANG_IDS> = {
|
|
160
164
|
columns?: {
|
|
@@ -309,6 +313,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
309
313
|
if ("columns" in td && td.columns?.[targetTable]) {
|
|
310
314
|
const cd = td.columns[targetTable];
|
|
311
315
|
if ("joinDef" in cd) {
|
|
316
|
+
if(!cd.joinDef) throw "cd.joinDef missing"
|
|
312
317
|
const { joinDef } = cd;
|
|
313
318
|
const res: JoinInfo = {
|
|
314
319
|
expectOne: false,
|
|
@@ -372,14 +377,14 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
372
377
|
if ("columns" in tableConf) {
|
|
373
378
|
const getColDef = (name: string, colConf: ColumnConfig): string => {
|
|
374
379
|
const colNameEsc = asName(name);
|
|
375
|
-
const
|
|
380
|
+
const getColTypeDef = (colConf: TextColDef, pgType: "TEXT" | "JSONB") => {
|
|
376
381
|
const { nullable, defaultValue } = colConf;
|
|
377
382
|
return `${pgType} ${!nullable ? " NOT NULL " : ""} ${defaultValue ? ` DEFAULT ${asValue(defaultValue)} ` : ""}`
|
|
378
383
|
}
|
|
379
384
|
if ("references" in colConf && colConf.references) {
|
|
380
385
|
|
|
381
386
|
const { tableName: lookupTable, columnName: lookupCol = "id" } = colConf.references;
|
|
382
|
-
return ` ${colNameEsc} ${
|
|
387
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf.references, "TEXT")} REFERENCES ${lookupTable} (${lookupCol}) `;
|
|
383
388
|
|
|
384
389
|
} else if ("sqlDefinition" in colConf && colConf.sqlDefinition) {
|
|
385
390
|
|
|
@@ -396,7 +401,7 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
396
401
|
if (cArr.length) {
|
|
397
402
|
checks = `CHECK (${cArr.join(" AND ")})`
|
|
398
403
|
}
|
|
399
|
-
return ` ${colNameEsc} ${
|
|
404
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf, "TEXT")} ${checks}`;
|
|
400
405
|
|
|
401
406
|
} else if ("jsonbSchema" in colConf && colConf.jsonbSchema) {
|
|
402
407
|
|
|
@@ -412,10 +417,10 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
412
417
|
})
|
|
413
418
|
}
|
|
414
419
|
const checkStatement = getPGCheckConstraint({ schema: colConf.jsonbSchema, escapedFieldName: colNameEsc, nullable: !!colConf.nullable }, 0)
|
|
415
|
-
return ` ${colNameEsc} ${
|
|
420
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf, "JSONB")} CHECK(${checkStatement})`;
|
|
416
421
|
|
|
417
422
|
} else if("oneOf" in colConf) {
|
|
418
|
-
if(!colConf.oneOf
|
|
423
|
+
if(!colConf.oneOf?.length) throw new Error("colConf.oneOf Must not be empty");
|
|
419
424
|
const type = colConf.oneOf.every(v => Number.isFinite(v))? "NUMERIC" : "TEXT";
|
|
420
425
|
const checks = colConf.oneOf.map(v => `${colNameEsc} = ${asValue(v)}`).join(" OR ");
|
|
421
426
|
return ` ${colNameEsc} ${type} ${colConf.nullable? "" : "NOT NULL"} ${"defaultValue" in colConf? ` DEFAULT ${asValue(colConf.defaultValue)}` : ""} CHECK(${checks})`;
|
package/lib/validation.js
CHANGED
|
@@ -67,8 +67,7 @@ function getPGCheckConstraint(args, depth) {
|
|
|
67
67
|
const valAsText = `${escapedFieldName}->>${(0, PubSubManager_1.asValue)(k)}`;
|
|
68
68
|
if (t.nullable)
|
|
69
69
|
checks.push(`${valAsJson} IS NULL`);
|
|
70
|
-
|
|
71
|
-
checks.push(`${escapedFieldName} ? ${(0, PubSubManager_1.asValue)(k)} = FALSE`);
|
|
70
|
+
checks.push(`jsonb_typeof(${escapedFieldName}) = 'object' ` + (t.optional ? `AND ${escapedFieldName} ? ${(0, PubSubManager_1.asValue)(k)} = FALSE` : ""));
|
|
72
71
|
if ("oneOfTypes" in t) {
|
|
73
72
|
checks.push(`(${t.oneOfTypes.map(subType => getPGCheckConstraint({ escapedFieldName: valAsJson, schema: subType, nullable }, depth + 1)).join(" OR ")})`);
|
|
74
73
|
}
|
package/lib/validation.ts
CHANGED
|
@@ -103,7 +103,7 @@ export function getPGCheckConstraint(args: { escapedFieldName: string; schema: V
|
|
|
103
103
|
const valAsJson = `${escapedFieldName}->${asValue(k)}`;
|
|
104
104
|
const valAsText = `${escapedFieldName}->>${asValue(k)}`;
|
|
105
105
|
if(t.nullable) checks.push(`${valAsJson} IS NULL`);
|
|
106
|
-
|
|
106
|
+
checks.push(`jsonb_typeof(${escapedFieldName}) = 'object' ` + (t.optional? `AND ${escapedFieldName} ? ${asValue(k)} = FALSE` : ""));
|
|
107
107
|
|
|
108
108
|
if("oneOfTypes" in t){
|
|
109
109
|
checks.push(`(${t.oneOfTypes.map(subType => getPGCheckConstraint({ escapedFieldName: valAsJson, schema: subType, nullable }, depth + 1)).join(" OR ")})`)
|
|
@@ -113,7 +113,7 @@ export function getPGCheckConstraint(args: { escapedFieldName: string; schema: V
|
|
|
113
113
|
}
|
|
114
114
|
const oneOfHasNull = t.oneOf.includes(null);
|
|
115
115
|
if(oneOfHasNull) checks.push(`${valAsText} IS NULL`);
|
|
116
|
-
|
|
116
|
+
const oneOf = t.oneOf.filter(o => o !== null);
|
|
117
117
|
oneOf.forEach(o => {
|
|
118
118
|
checks.push(`(${valAsText})${(jsToPGtypes as any)[typeof o]} = ${asValue(o)}`);
|
|
119
119
|
})
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
42864
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["QueryBuilder.ts"],"names":[],"mappings":"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"}
|