prostgles-server 4.2.549 → 4.2.550
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/DboBuilder/TableHandler/TableHandler.d.ts +18 -5
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +12 -6
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js +56 -13
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.d.ts +21 -0
- package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.d.ts.map +1 -0
- package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.js +69 -0
- package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.js.map +1 -0
- package/dist/DboBuilder/TableHandler/insert/insert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insert.js +21 -11
- package/dist/DboBuilder/TableHandler/insert/insert.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js +1 -2
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +2 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -95
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
- package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/update.js +20 -12
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.js +13 -1
- package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js +5 -5
- package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.js +20 -8
- package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.d.ts +0 -12
- package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.js +27 -75
- package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts +14 -0
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts.map +1 -0
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js +32 -0
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js.map +1 -0
- package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/size.js +23 -8
- package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.js +2 -2
- package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +1 -1
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts +34 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/TableConfig/TableConfig.d.ts +3 -15
- package/dist/TableConfig/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig/TableConfig.js.map +1 -1
- package/dist/TableConfig/getCreateSchemaQueries.d.ts +4 -28
- package/dist/TableConfig/getCreateSchemaQueries.d.ts.map +1 -1
- package/dist/TableConfig/getTableConfigSchemaQueries.d.ts +4 -28
- package/dist/TableConfig/getTableConfigSchemaQueries.d.ts.map +1 -1
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +3 -1
- package/dist/utils/utils.js.map +1 -1
- package/lib/DboBuilder/TableHandler/TableHandler.ts +21 -6
- package/lib/DboBuilder/TableHandler/delete.ts +83 -15
- package/lib/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.ts +88 -0
- package/lib/DboBuilder/TableHandler/insert/insert.ts +25 -11
- package/lib/DboBuilder/TableHandler/insert/insertNestedRecords.ts +1 -2
- package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +7 -5
- package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +34 -110
- package/lib/DboBuilder/TableHandler/update.ts +21 -12
- package/lib/DboBuilder/TableHandler/updateBatch.ts +15 -2
- package/lib/DboBuilder/ViewHandler/ViewHandler.ts +5 -5
- package/lib/DboBuilder/ViewHandler/count.ts +24 -9
- package/lib/DboBuilder/ViewHandler/find.ts +35 -96
- package/lib/DboBuilder/ViewHandler/getReturnTypeQuery.ts +50 -0
- package/lib/DboBuilder/ViewHandler/size.ts +26 -12
- package/lib/DboBuilder/dboBuilderUtils.ts +1 -1
- package/lib/DboBuilder/parseUpdateRules.ts +1 -1
- package/lib/PublishParser/publishTypesAndUtils.ts +42 -1
- package/lib/TableConfig/TableConfig.ts +4 -18
- package/lib/utils/utils.ts +2 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":";;;AASA,qDAA2C;AAG3C,yDAAsD;
|
|
1
|
+
{"version":3,"file":"TableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,20 +26,8 @@ export declare const tableConfigWithMigrations: (db: DB, { tableConfig, tableCon
|
|
|
26
26
|
row: import("prostgles-types").AnyObject;
|
|
27
27
|
onInserted: Promise<void>;
|
|
28
28
|
}>;
|
|
29
|
-
afterEach?:
|
|
30
|
-
|
|
31
|
-
changedFields?: string[];
|
|
32
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
33
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
34
|
-
}) => Promise<void>;
|
|
35
|
-
}[] | undefined;
|
|
36
|
-
afterAll?: {
|
|
37
|
-
commands: Partial<Record<"insert" | "update", 1>>;
|
|
38
|
-
changedFields?: string[];
|
|
39
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
40
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
41
|
-
}) => Promise<void>;
|
|
42
|
-
}[] | undefined;
|
|
29
|
+
afterEach?: import("../PublishParser/publishTypesAndUtils").AfterEachTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
30
|
+
afterAll?: import("../PublishParser/publishTypesAndUtils").AfterAllTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
43
31
|
} | undefined;
|
|
44
32
|
triggers?: {
|
|
45
33
|
[triggerName: string]: {
|
|
@@ -82,20 +70,8 @@ export declare const tableConfigWithMigrations: (db: DB, { tableConfig, tableCon
|
|
|
82
70
|
row: import("prostgles-types").AnyObject;
|
|
83
71
|
onInserted: Promise<void>;
|
|
84
72
|
}>;
|
|
85
|
-
afterEach?:
|
|
86
|
-
|
|
87
|
-
changedFields?: string[];
|
|
88
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
89
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
90
|
-
}) => Promise<void>;
|
|
91
|
-
}[] | undefined;
|
|
92
|
-
afterAll?: {
|
|
93
|
-
commands: Partial<Record<"insert" | "update", 1>>;
|
|
94
|
-
changedFields?: string[];
|
|
95
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
96
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
97
|
-
}) => Promise<void>;
|
|
98
|
-
}[] | undefined;
|
|
73
|
+
afterEach?: import("../PublishParser/publishTypesAndUtils").AfterEachTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
74
|
+
afterAll?: import("../PublishParser/publishTypesAndUtils").AfterAllTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
99
75
|
} | undefined;
|
|
100
76
|
triggers?: {
|
|
101
77
|
[triggerName: string]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCreateSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAGrF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,CAAC,oBAAoB,CAAC,EACvC,uBAAuB,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAChF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,IAAI,EAAE,EACN,wCAAwC,oBAAoB,EAC5D,mBAAmB,MAAM;;;;;;
|
|
1
|
+
{"version":3,"file":"getCreateSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAGrF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,CAAC,oBAAoB,CAAC,EACvC,uBAAuB,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAChF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,IAAI,EAAE,EACN,wCAAwC,oBAAoB,EAC5D,mBAAmB,MAAM;;;;;;qBAqCK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAgDT,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;0BAUb,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;;EA9DhD,CAAC"}
|
|
@@ -21,20 +21,8 @@ export declare const getTableConfigSchemaQueries: (opts: SchemaRelatedOptions, {
|
|
|
21
21
|
row: import("prostgles-types").AnyObject;
|
|
22
22
|
onInserted: Promise<void>;
|
|
23
23
|
}>;
|
|
24
|
-
afterEach?:
|
|
25
|
-
|
|
26
|
-
changedFields?: string[];
|
|
27
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
28
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
29
|
-
}) => Promise<void>;
|
|
30
|
-
}[] | undefined;
|
|
31
|
-
afterAll?: {
|
|
32
|
-
commands: Partial<Record<"insert" | "update", 1>>;
|
|
33
|
-
changedFields?: string[];
|
|
34
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
35
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
36
|
-
}) => Promise<void>;
|
|
37
|
-
}[] | undefined;
|
|
24
|
+
afterEach?: import("../PublishParser/publishTypesAndUtils").AfterEachTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
25
|
+
afterAll?: import("../PublishParser/publishTypesAndUtils").AfterAllTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
38
26
|
} | undefined;
|
|
39
27
|
triggers?: {
|
|
40
28
|
[triggerName: string]: {
|
|
@@ -84,20 +72,8 @@ export declare const getTableConfigSchemaQueries: (opts: SchemaRelatedOptions, {
|
|
|
84
72
|
row: import("prostgles-types").AnyObject;
|
|
85
73
|
onInserted: Promise<void>;
|
|
86
74
|
}>;
|
|
87
|
-
afterEach?:
|
|
88
|
-
|
|
89
|
-
changedFields?: string[];
|
|
90
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
91
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
92
|
-
}) => Promise<void>;
|
|
93
|
-
}[] | undefined;
|
|
94
|
-
afterAll?: {
|
|
95
|
-
commands: Partial<Record<"insert" | "update", 1>>;
|
|
96
|
-
changedFields?: string[];
|
|
97
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
98
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
99
|
-
}) => Promise<void>;
|
|
100
|
-
}[] | undefined;
|
|
75
|
+
afterEach?: import("../PublishParser/publishTypesAndUtils").AfterEachTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
76
|
+
afterAll?: import("../PublishParser/publishTypesAndUtils").AfterAllTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
101
77
|
} | undefined;
|
|
102
78
|
triggers?: {
|
|
103
79
|
[triggerName: string]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableConfigSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getTableConfigSchemaQueries.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,2BAA2B,GACtC,MAAM,oBAAoB,EAC1B,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;;;;;;
|
|
1
|
+
{"version":3,"file":"getTableConfigSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getTableConfigSchemaQueries.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,2BAA2B,GACtC,MAAM,oBAAoB,EAC1B,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;;;;;;qBAwBlD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDjC,CAAC"}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export { get } from "prostgles-types";
|
|
|
2
2
|
export declare const clone: <T extends any[] | Record<string, any>>(obj: T) => T;
|
|
3
3
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
4
4
|
export declare const escapeTSNames: (str: string, capitalize?: boolean) => string;
|
|
5
|
+
export declare const isArray: <T>(data: T) => data is Extract<T, readonly unknown[]>;
|
|
5
6
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,KAAG,CAMrE,CAAC;AAEF,eAAO,MAAM,KAAK,GAAa,IAAI,MAAM,qBAIxC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,oBAAkB,WAK5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,KAAG,CAMrE,CAAC;AAEF,eAAO,MAAM,KAAK,GAAa,IAAI,MAAM,qBAIxC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,oBAAkB,WAK5D,CAAC;AAQF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,OAAO,EAAE,CAAwB,CAAC"}
|
package/dist/utils/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.escapeTSNames = exports.sleep = exports.clone = exports.get = void 0;
|
|
3
|
+
exports.isArray = exports.escapeTSNames = exports.sleep = exports.clone = exports.get = void 0;
|
|
4
4
|
var prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
Object.defineProperty(exports, "get", { enumerable: true, get: function () { return prostgles_types_1.get; } });
|
|
6
6
|
const clone = (obj) => {
|
|
@@ -31,4 +31,6 @@ const canBeUsedAsIsInTypescript = (str) => {
|
|
|
31
31
|
const startsWithCharOrUnderscore = str[0]?.match(/^[a-z_]+$/i);
|
|
32
32
|
return Boolean(isAlphaNumericOrUnderline && startsWithCharOrUnderscore);
|
|
33
33
|
};
|
|
34
|
+
const isArray = (data) => Array.isArray(data);
|
|
35
|
+
exports.isArray = isArray;
|
|
34
36
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AAA7B,sGAAA,GAAG,OAAA;AACL,MAAM,KAAK,GAAG,CAAwC,GAAM,EAAK,EAAE;IACxE,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;QAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAM,CAAC;AAC9C,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB;AAEK,MAAM,KAAK,GAAG,UAAU,EAAU;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB;AAEK,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE;IAC/D,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,yBAAyB,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AACF,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAW,EAAE;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,yBAAyB,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,0BAA0B,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC,yBAAyB,IAAI,0BAA0B,CAAC,CAAC;AAC1E,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AAA7B,sGAAA,GAAG,OAAA;AACL,MAAM,KAAK,GAAG,CAAwC,GAAM,EAAK,EAAE;IACxE,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;QAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAM,CAAC;AAC9C,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB;AAEK,MAAM,KAAK,GAAG,UAAU,EAAU;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB;AAEK,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE;IAC/D,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,yBAAyB,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AACF,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAW,EAAE;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,yBAAyB,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,0BAA0B,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC,yBAAyB,IAAI,0BAA0B,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,CAAI,IAAO,EAA0C,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAAtF,QAAA,OAAO,WAA+E"}
|
|
@@ -10,7 +10,12 @@ import type {
|
|
|
10
10
|
} from "prostgles-types";
|
|
11
11
|
import { asName, isDefined } from "prostgles-types";
|
|
12
12
|
import type { DB } from "../../Prostgles";
|
|
13
|
-
import type {
|
|
13
|
+
import type {
|
|
14
|
+
DeleteRule,
|
|
15
|
+
InsertRule,
|
|
16
|
+
ParsedTableRule,
|
|
17
|
+
UpdateRule,
|
|
18
|
+
} from "../../PublishParser/PublishParser";
|
|
14
19
|
import { getSyncBatchOptions } from "../../PubSubManager/SyncReplication/getSyncBatchOptions";
|
|
15
20
|
import type TableConfigurator from "../../TableConfig/TableConfig";
|
|
16
21
|
import type { TableDefinition } from "../../TableConfig/TableConfig";
|
|
@@ -70,12 +75,21 @@ export class TableHandler extends ViewHandler {
|
|
|
70
75
|
return localParams?.tx?.dbTX ?? this.tx?.dbTX;
|
|
71
76
|
};
|
|
72
77
|
|
|
78
|
+
getTransaction = (localParams: LocalParams | undefined) => {
|
|
79
|
+
return localParams?.tx || this.tx;
|
|
80
|
+
};
|
|
81
|
+
|
|
73
82
|
getHooksAndChecks = (
|
|
74
83
|
command:
|
|
84
|
+
| { name: "delete"; rule: undefined | DeleteRule }
|
|
75
85
|
| { name: "update"; rule: undefined | UpdateRule }
|
|
76
86
|
| { name: "insert"; rule: undefined | InsertRule },
|
|
87
|
+
localParams: LocalParams | undefined,
|
|
77
88
|
) => {
|
|
78
|
-
const {
|
|
89
|
+
const { postValidate, checkFilter } = command.name === "delete" ? {} : (command.rule ?? {});
|
|
90
|
+
if (postValidate && !localParams) {
|
|
91
|
+
throw new Error("Unexpected: no localParams for postValidate");
|
|
92
|
+
}
|
|
79
93
|
const afterEachHooks = this.config?.hooks?.afterEach
|
|
80
94
|
?.map((hook) => {
|
|
81
95
|
const { commands } = hook;
|
|
@@ -110,16 +124,17 @@ export class TableHandler extends ViewHandler {
|
|
|
110
124
|
};
|
|
111
125
|
shouldWrapInTx = (
|
|
112
126
|
command:
|
|
127
|
+
| { name: "delete"; rule: undefined | DeleteRule }
|
|
113
128
|
| { name: "update"; rule: undefined | UpdateRule }
|
|
114
129
|
| { name: "insert"; rule: undefined | InsertRule },
|
|
115
130
|
localParams: LocalParams | undefined,
|
|
116
131
|
) => {
|
|
117
|
-
const
|
|
118
|
-
const hasAfterChecks = this.getHooksAndChecks(command).length > 0;
|
|
119
|
-
return !
|
|
132
|
+
const transaction = this.getTransaction(localParams);
|
|
133
|
+
const hasAfterChecks = this.getHooksAndChecks(command, localParams).length > 0;
|
|
134
|
+
return { shouldWrap: !transaction && hasAfterChecks, hasAfterChecks };
|
|
120
135
|
};
|
|
121
136
|
getFinalDbo = (localParams: LocalParams | undefined) => {
|
|
122
|
-
return this.
|
|
137
|
+
return this.getTransaction(localParams)?.dbTX ?? this.dboBuilder.dbo;
|
|
123
138
|
};
|
|
124
139
|
|
|
125
140
|
parseUpdateRules = parseUpdateRules.bind(this);
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type pgPromise from "pg-promise";
|
|
2
|
-
import type
|
|
2
|
+
import { includes, type AnyObject, type DeleteParams, type FieldFilter } from "prostgles-types";
|
|
3
3
|
import type { DeleteRule, ParsedTableRule } from "../../PublishParser/PublishParser";
|
|
4
4
|
import type { Filter, LocalParams } from "../DboBuilder";
|
|
5
|
-
import {
|
|
6
|
-
|
|
5
|
+
import {
|
|
6
|
+
getErrorAsObject,
|
|
7
|
+
getSerializedClientErrorFromPGError,
|
|
8
|
+
rejectWithPGClientError,
|
|
9
|
+
withUserRLS,
|
|
10
|
+
} from "../DboBuilder";
|
|
7
11
|
import type { TableHandler } from "./TableHandler";
|
|
8
12
|
import { onDeleteFromFileTable } from "./onDeleteFromFileTable";
|
|
13
|
+
import { getReturnTypeQuery } from "../ViewHandler/getReturnTypeQuery";
|
|
14
|
+
import { executeHooksCheckAndPostValidation } from "./executeHooksCheckAndPostValidation";
|
|
9
15
|
|
|
10
16
|
export async function _delete(
|
|
11
17
|
this: TableHandler,
|
|
@@ -21,12 +27,26 @@ export async function _delete(
|
|
|
21
27
|
filter = filter || {};
|
|
22
28
|
this.checkFilter(filter);
|
|
23
29
|
|
|
30
|
+
const operation = { name: "delete", rule: tableRules?.delete } as const;
|
|
31
|
+
const { hasAfterChecks, shouldWrap } = this.shouldWrapInTx(operation, localParams);
|
|
32
|
+
if (shouldWrap) {
|
|
33
|
+
return this.dboBuilder.getTX((t) =>
|
|
34
|
+
(t[this.name] as Partial<typeof this> | undefined)?.delete?.(
|
|
35
|
+
filter,
|
|
36
|
+
params,
|
|
37
|
+
param3_unused,
|
|
38
|
+
tableRules,
|
|
39
|
+
localParams,
|
|
40
|
+
),
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
24
44
|
let forcedFilter: AnyObject | undefined = {},
|
|
25
45
|
filterFields: FieldFilter | undefined = "*",
|
|
26
46
|
returningFields: FieldFilter | undefined = "*",
|
|
27
47
|
validate: DeleteRule["validate"];
|
|
28
48
|
|
|
29
|
-
const { testRule = false
|
|
49
|
+
const { testRule = false } = localParams || {};
|
|
30
50
|
if (tableRules) {
|
|
31
51
|
if (!tableRules.delete) throw "delete rules missing";
|
|
32
52
|
forcedFilter = tableRules.delete.forcedFilter;
|
|
@@ -78,16 +98,24 @@ export async function _delete(
|
|
|
78
98
|
queryWithoutRLS += filterOpts.where;
|
|
79
99
|
await validate?.(filterOpts.filter);
|
|
80
100
|
|
|
101
|
+
const FULL_ROW_KEY = "_prostgles_full_row" as const;
|
|
102
|
+
const fullRowReturning =
|
|
103
|
+
hasAfterChecks ? `to_jsonb(${this.escapedName}) as ${FULL_ROW_KEY}` : undefined;
|
|
81
104
|
let returningQuery = "";
|
|
82
105
|
if (returning !== undefined) {
|
|
83
106
|
queryType = "any";
|
|
84
107
|
if (!returningFields) {
|
|
85
|
-
throw "Returning
|
|
108
|
+
throw "Returning disallowed";
|
|
86
109
|
}
|
|
87
110
|
returningQuery = this.makeReturnQuery(
|
|
88
111
|
await this.prepareReturning(returning, this.parseFieldFilter(returningFields)),
|
|
89
112
|
);
|
|
113
|
+
if (hasAfterChecks) {
|
|
114
|
+
returningQuery += `, ${fullRowReturning}`;
|
|
115
|
+
}
|
|
90
116
|
queryWithoutRLS += returningQuery;
|
|
117
|
+
} else if (hasAfterChecks) {
|
|
118
|
+
queryWithoutRLS += ` RETURNING ${fullRowReturning}`;
|
|
91
119
|
}
|
|
92
120
|
|
|
93
121
|
// TODO - delete orphaned files
|
|
@@ -99,7 +127,18 @@ export async function _delete(
|
|
|
99
127
|
// }
|
|
100
128
|
|
|
101
129
|
const queryWithRLS = withUserRLS(localParams, queryWithoutRLS);
|
|
102
|
-
|
|
130
|
+
|
|
131
|
+
const queryToReturn = await getReturnTypeQuery({
|
|
132
|
+
handler: this,
|
|
133
|
+
localParams,
|
|
134
|
+
queryWithoutRLS,
|
|
135
|
+
queryWithRLS,
|
|
136
|
+
returnType: params?.returnType,
|
|
137
|
+
newQuery: undefined,
|
|
138
|
+
});
|
|
139
|
+
if (queryToReturn) {
|
|
140
|
+
return queryToReturn as unknown[];
|
|
141
|
+
}
|
|
103
142
|
|
|
104
143
|
/**
|
|
105
144
|
* Delete file
|
|
@@ -120,21 +159,50 @@ export async function _delete(
|
|
|
120
159
|
return result;
|
|
121
160
|
}
|
|
122
161
|
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
162
|
+
const dbHandler = this.getTransaction(localParams)?.t ?? this.db;
|
|
163
|
+
|
|
164
|
+
const isOneOrNone = includes(["row", "value"], params?.returnType);
|
|
165
|
+
const queryPromise =
|
|
166
|
+
isOneOrNone ?
|
|
167
|
+
dbHandler.oneOrNone<AnyObject>(queryWithRLS).then((data) => (data ? [data] : []))
|
|
168
|
+
: dbHandler.any<AnyObject>(queryWithRLS);
|
|
169
|
+
|
|
170
|
+
const deletedRows = await queryPromise.catch((err) =>
|
|
171
|
+
rejectWithPGClientError(err, {
|
|
172
|
+
type: "tableMethod",
|
|
173
|
+
localParams,
|
|
174
|
+
view: this,
|
|
175
|
+
prostgles: this.dboBuilder.prostgles,
|
|
176
|
+
}),
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
if (hasAfterChecks) {
|
|
180
|
+
const fullRows = deletedRows.map((d) => {
|
|
181
|
+
const fullRow = d[FULL_ROW_KEY] as AnyObject | undefined;
|
|
182
|
+
if (!fullRow) throw "Missing full row for after checks";
|
|
183
|
+
return fullRow;
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
await executeHooksCheckAndPostValidation({
|
|
187
|
+
tableHandler: this,
|
|
188
|
+
operation,
|
|
189
|
+
localParams,
|
|
190
|
+
rows: fullRows,
|
|
191
|
+
data: [],
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const originalReturnRows = deletedRows.map(
|
|
196
|
+
({ [FULL_ROW_KEY]: _, ...originalReturn }) => originalReturn,
|
|
197
|
+
);
|
|
198
|
+
|
|
131
199
|
await this._log({
|
|
132
200
|
command: "delete",
|
|
133
201
|
localParams,
|
|
134
202
|
data: { filter, params },
|
|
135
203
|
duration: Date.now() - start,
|
|
136
204
|
});
|
|
137
|
-
return
|
|
205
|
+
return isOneOrNone ? originalReturnRows[0] : originalReturnRows;
|
|
138
206
|
} catch (e) {
|
|
139
207
|
await this._log({
|
|
140
208
|
command: "delete",
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { AnyObject } from "prostgles-types";
|
|
2
|
+
import type { DeleteRule, InsertRule, UpdateRule } from "../../PublishParser/PublishParser";
|
|
3
|
+
import { isArray } from "../../utils/utils";
|
|
4
|
+
import type { LocalParams } from "../DboBuilder";
|
|
5
|
+
import type { TableHandler } from "./TableHandler";
|
|
6
|
+
|
|
7
|
+
export const executeHooksCheckAndPostValidation = async ({
|
|
8
|
+
tableHandler,
|
|
9
|
+
operation,
|
|
10
|
+
data,
|
|
11
|
+
localParams,
|
|
12
|
+
rows,
|
|
13
|
+
}: {
|
|
14
|
+
tableHandler: TableHandler;
|
|
15
|
+
operation:
|
|
16
|
+
| { name: "delete"; rule: undefined | DeleteRule }
|
|
17
|
+
| { name: "update"; rule: undefined | UpdateRule }
|
|
18
|
+
| { name: "insert"; rule: undefined | InsertRule };
|
|
19
|
+
localParams: LocalParams | undefined;
|
|
20
|
+
data: AnyObject | AnyObject[];
|
|
21
|
+
rows: AnyObject[];
|
|
22
|
+
}) => {
|
|
23
|
+
const command = operation.name;
|
|
24
|
+
const transaction = tableHandler.getTransaction(localParams);
|
|
25
|
+
const hooks = tableHandler.getHooksAndChecks(operation, localParams);
|
|
26
|
+
let changedFieldsSet = undefined as undefined | Set<string>;
|
|
27
|
+
const getChangedFieldsSet = () => {
|
|
28
|
+
changedFieldsSet ??= new Set<string>(
|
|
29
|
+
(isArray(data) ? data : [data]).map((row) => Object.keys(row)).flat(),
|
|
30
|
+
);
|
|
31
|
+
return changedFieldsSet;
|
|
32
|
+
};
|
|
33
|
+
const applicableHooks = hooks.filter((hook) => {
|
|
34
|
+
if (hook.type === "checkFilter") return false;
|
|
35
|
+
if (hook.type === "postValidate") return true;
|
|
36
|
+
const { commands, changedFields } = hook;
|
|
37
|
+
return (
|
|
38
|
+
commands[command] &&
|
|
39
|
+
(!changedFields || changedFields.some((f) => getChangedFieldsSet().has(f)))
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
if (applicableHooks.length) {
|
|
44
|
+
if (!transaction) {
|
|
45
|
+
throw new Error("Unexpected: hooks/postValidate require a transaction dbo handler");
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const txParams = {
|
|
49
|
+
tx: transaction.t,
|
|
50
|
+
dbx: transaction.dbTX,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
for (const row of rows) {
|
|
54
|
+
const commonParams = {
|
|
55
|
+
row: row,
|
|
56
|
+
...txParams,
|
|
57
|
+
command,
|
|
58
|
+
data,
|
|
59
|
+
} as const;
|
|
60
|
+
for (const hook of applicableHooks) {
|
|
61
|
+
if (hook.type === "afterEach") {
|
|
62
|
+
await hook.validate({
|
|
63
|
+
...commonParams,
|
|
64
|
+
localParams,
|
|
65
|
+
});
|
|
66
|
+
} else if (hook.type === "postValidate") {
|
|
67
|
+
if (!localParams) throw new Error("Unexpected: no localParams for postValidate");
|
|
68
|
+
await hook.validate({
|
|
69
|
+
...commonParams,
|
|
70
|
+
localParams,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
for (const hook of applicableHooks) {
|
|
77
|
+
if (hook.type === "afterAll") {
|
|
78
|
+
await hook.validate({
|
|
79
|
+
...txParams,
|
|
80
|
+
command,
|
|
81
|
+
data: Array.isArray(data) ? data : [data],
|
|
82
|
+
rows,
|
|
83
|
+
localParams,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
@@ -13,6 +13,7 @@ import type { TableHandler } from "../TableHandler";
|
|
|
13
13
|
import { insertTest } from "../insertTest";
|
|
14
14
|
import { runInsertUpdateQuery } from "../runInsertUpdateQuery";
|
|
15
15
|
import { insertNestedRecords } from "./insertNestedRecords";
|
|
16
|
+
import { getReturnTypeQuery } from "../../ViewHandler/getReturnTypeQuery";
|
|
16
17
|
|
|
17
18
|
export async function insert(
|
|
18
19
|
this: TableHandler,
|
|
@@ -26,16 +27,16 @@ export async function insert(
|
|
|
26
27
|
const start = Date.now();
|
|
27
28
|
try {
|
|
28
29
|
const { removeDisallowedFields = false } = insertParams ?? {};
|
|
29
|
-
const {
|
|
30
|
+
const { nestedInsert } = localParams ?? {};
|
|
30
31
|
|
|
31
32
|
const rule = tableRules?.[ACTION];
|
|
32
33
|
const { validate, allowedNestedInserts, requiredNestedInserts } = rule ?? {};
|
|
33
34
|
|
|
34
|
-
const finalDBtx = this.
|
|
35
|
-
/** Post validate and checkFilter require a transaction dbo handler because they
|
|
36
|
-
if (this.shouldWrapInTx({ name: ACTION, rule }, localParams)) {
|
|
37
|
-
return this.dboBuilder.getTX((
|
|
38
|
-
|
|
35
|
+
const finalDBtx = this.getTransaction(localParams);
|
|
36
|
+
/** Post validate and checkFilter require a transaction dbo handler because they need the action result */
|
|
37
|
+
if (this.shouldWrapInTx({ name: ACTION, rule }, localParams).shouldWrap) {
|
|
38
|
+
return this.dboBuilder.getTX((t) =>
|
|
39
|
+
t[this.name]?.[ACTION](rowOrRows, insertParams, param3_unused, tableRules, localParams),
|
|
39
40
|
);
|
|
40
41
|
}
|
|
41
42
|
|
|
@@ -114,14 +115,14 @@ export async function insert(
|
|
|
114
115
|
return row;
|
|
115
116
|
}),
|
|
116
117
|
);
|
|
117
|
-
const
|
|
118
|
+
const preValidatedRowOrRows = isMultiInsert ? preValidatedRows : preValidatedRows[0]!;
|
|
118
119
|
|
|
119
120
|
/**
|
|
120
121
|
* If media it will: upload file and continue insert
|
|
121
122
|
* If nested insert it will: make separate inserts and not continue main insert
|
|
122
123
|
*/
|
|
123
124
|
const mediaOrNestedInsert = await insertNestedRecords.bind(this)({
|
|
124
|
-
data:
|
|
125
|
+
data: preValidatedRowOrRows,
|
|
125
126
|
insertParams,
|
|
126
127
|
tableRules,
|
|
127
128
|
localParams,
|
|
@@ -156,7 +157,7 @@ export async function insert(
|
|
|
156
157
|
|
|
157
158
|
const validatedRows = validatedData.map((d) => d.validatedRow);
|
|
158
159
|
const allowedCols = Array.from(new Set(validatedData.flatMap((d) => d.allowedCols)));
|
|
159
|
-
const dbTx = finalDBtx || this.dboBuilder.dbo;
|
|
160
|
+
const dbTx = finalDBtx?.dbTX || this.dboBuilder.dbo;
|
|
160
161
|
const validationOptions = {
|
|
161
162
|
validate: validate as ValidateRowBasic,
|
|
162
163
|
localParams,
|
|
@@ -227,7 +228,18 @@ export async function insert(
|
|
|
227
228
|
|
|
228
229
|
const queryWithoutUserRLS = query;
|
|
229
230
|
const queryWithRLS = withUserRLS(localParams, query);
|
|
230
|
-
|
|
231
|
+
|
|
232
|
+
const queryToReturn = await getReturnTypeQuery({
|
|
233
|
+
handler: this,
|
|
234
|
+
localParams,
|
|
235
|
+
queryWithoutRLS: queryWithoutUserRLS,
|
|
236
|
+
queryWithRLS,
|
|
237
|
+
returnType: insertParams?.returnType,
|
|
238
|
+
newQuery: undefined,
|
|
239
|
+
});
|
|
240
|
+
if (queryToReturn) {
|
|
241
|
+
return queryToReturn as unknown[];
|
|
242
|
+
}
|
|
231
243
|
|
|
232
244
|
if (this.dboBuilder.prostgles.opts.DEBUG_MODE) {
|
|
233
245
|
console.log(this.tx?.t.ctx.start, "insert in " + this.name, data);
|
|
@@ -239,18 +251,20 @@ export async function insert(
|
|
|
239
251
|
queryWithoutUserRLS,
|
|
240
252
|
tableHandler: this,
|
|
241
253
|
returningFields,
|
|
242
|
-
data:
|
|
254
|
+
data: preValidatedRowOrRows,
|
|
243
255
|
fields,
|
|
244
256
|
params: insertParams,
|
|
245
257
|
command: "insert",
|
|
246
258
|
isMultiInsert,
|
|
247
259
|
});
|
|
260
|
+
|
|
248
261
|
await this._log({
|
|
249
262
|
command: "insert",
|
|
250
263
|
localParams,
|
|
251
264
|
data: { rowOrRows, param2: insertParams },
|
|
252
265
|
duration: Date.now() - start,
|
|
253
266
|
});
|
|
267
|
+
|
|
254
268
|
return result;
|
|
255
269
|
} catch (e) {
|
|
256
270
|
await this._log({
|
|
@@ -70,8 +70,7 @@ export async function insertNestedRecords(
|
|
|
70
70
|
/**
|
|
71
71
|
* Make sure nested insert uses a transaction
|
|
72
72
|
*/
|
|
73
|
-
const dbTX = this.
|
|
74
|
-
const t = localParams?.tx?.t || this.tx?.t;
|
|
73
|
+
const { dbTX, t } = this.getTransaction(localParams) ?? {};
|
|
75
74
|
if (hasNestedInserts && (!dbTX || !t)) {
|
|
76
75
|
return {
|
|
77
76
|
insertResult: await this.dboBuilder.getTX((dbTX, _t) =>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AnyObject} from "prostgles-types";
|
|
1
|
+
import type { AnyObject } from "prostgles-types";
|
|
2
2
|
import { asName, pickKeys } from "prostgles-types";
|
|
3
|
-
import type { LocalParams} from "../DboBuilder";
|
|
3
|
+
import type { LocalParams } from "../DboBuilder";
|
|
4
4
|
import { type Media } from "../DboBuilder";
|
|
5
5
|
import type { TableHandler } from "./TableHandler";
|
|
6
6
|
|
|
@@ -15,12 +15,14 @@ type OnDeleteFromFileTableArgs = {
|
|
|
15
15
|
};
|
|
16
16
|
export async function onDeleteFromFileTable(
|
|
17
17
|
this: TableHandler,
|
|
18
|
-
{ localParams, queryType, returningQuery, filterOpts }: OnDeleteFromFileTableArgs
|
|
18
|
+
{ localParams, queryType, returningQuery, filterOpts }: OnDeleteFromFileTableArgs,
|
|
19
19
|
) {
|
|
20
|
-
if (!this.dboBuilder.prostgles.fileManager)
|
|
20
|
+
if (!this.dboBuilder.prostgles.fileManager) {
|
|
21
|
+
throw new Error("fileManager missing");
|
|
22
|
+
}
|
|
21
23
|
if (this.dboBuilder.prostgles.opts.fileTable?.delayedDelete) {
|
|
22
24
|
return this.dbHandler[queryType]<void>(
|
|
23
|
-
`UPDATE ${asName(this.name)} SET deleted = now() ${filterOpts.where} ${returningQuery ?? ""}
|
|
25
|
+
`UPDATE ${asName(this.name)} SET deleted = now() ${filterOpts.where} ${returningQuery ?? ""};`,
|
|
24
26
|
);
|
|
25
27
|
} else {
|
|
26
28
|
const txDelete = async (tbl: TableHandler) => {
|