From 8ecef72efc76814c8e6cc001781409983474d2ec Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Sat, 25 Jan 2025 15:45:27 +0100 Subject: [PATCH] Updates --- dist/package-shared/types/index.d.ts | 1 + .../utils/data-fetching/method-crud.d.ts | 2 +- dist/package-shared/utils/data-fetching/method-crud.js | 10 +++++++--- package-shared/types/index.ts | 1 + package-shared/utils/data-fetching/method-crud.ts | 9 +++++++-- package.json | 2 +- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts index 4e48034..b646118 100644 --- a/dist/package-shared/types/index.d.ts +++ b/dist/package-shared/types/index.d.ts @@ -1308,6 +1308,7 @@ export type DsqlMethodCrudParam Promise; existingData?: T; targetId?: string | number; + sanitize?: (data?: T) => T; }; export declare const DsqlCrudActions: readonly ["insert", "update", "delete", "get"]; export type DsqlCrudQueryObject({ method, tableName, addUser, user, extraData, transform, existingData, body, query, targetId, }: DsqlMethodCrudParam): Promise>; +}>({ method, tableName, addUser, user, extraData, transform, existingData, body, query, targetId, sanitize, }: DsqlMethodCrudParam): Promise>; diff --git a/dist/package-shared/utils/data-fetching/method-crud.js b/dist/package-shared/utils/data-fetching/method-crud.js index 84f46da..bdd8896 100644 --- a/dist/package-shared/utils/data-fetching/method-crud.js +++ b/dist/package-shared/utils/data-fetching/method-crud.js @@ -16,7 +16,7 @@ exports.default = dsqlMethodCrud; const ejson_1 = __importDefault(require("../ejson")); const crud_1 = __importDefault(require("./crud")); function dsqlMethodCrud(_a) { - return __awaiter(this, arguments, void 0, function* ({ method, tableName, addUser, user, extraData, transform, existingData, body, query, targetId, }) { + return __awaiter(this, arguments, void 0, function* ({ method, tableName, addUser, user, extraData, transform, existingData, body, query, targetId, sanitize, }) { let result = { success: false, }; @@ -44,9 +44,9 @@ function dsqlMethodCrud(_a) { OFFSET = (PAGE - 1) * LIMIT; } let finalData = finalBody - ? Object.assign(Object.assign({}, finalBody.data), extraData) + ? Object.assign(Object.assign({}, finalBody), extraData) : undefined; - if (finalData && user && addUser) { + if (finalData && (user === null || user === void 0 ? void 0 : user.id) && addUser) { finalData = Object.assign(Object.assign({}, finalData), { [addUser.field]: String(user.id) }); } if (transform && finalData) { @@ -69,6 +69,7 @@ function dsqlMethodCrud(_a) { } : undefined }), limit: LIMIT, offset: OFFSET || undefined }) : undefined, + sanitize, }); result = { success: Boolean(GET_RESULT === null || GET_RESULT === void 0 ? void 0 : GET_RESULT.success), @@ -82,6 +83,7 @@ function dsqlMethodCrud(_a) { action: "insert", table: tableName, data: finalData, + sanitize, }); result = { success: Boolean(POST_RESULT === null || POST_RESULT === void 0 ? void 0 : POST_RESULT.success), @@ -96,6 +98,7 @@ function dsqlMethodCrud(_a) { table: tableName, data: finalData, targetId, + sanitize, }); result = { success: Boolean(PUT_RESULT === null || PUT_RESULT === void 0 ? void 0 : PUT_RESULT.success), @@ -109,6 +112,7 @@ function dsqlMethodCrud(_a) { action: "delete", table: tableName, targetId, + sanitize, }); result = { success: Boolean(DELETE_RESULT === null || DELETE_RESULT === void 0 ? void 0 : DELETE_RESULT.success), diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts index 412af43..d285f4f 100644 --- a/package-shared/types/index.ts +++ b/package-shared/types/index.ts @@ -1489,6 +1489,7 @@ export type DsqlMethodCrudParam< }) => Promise; existingData?: T; targetId?: string | number; + sanitize?: (data?: T) => T; }; export const DsqlCrudActions = ["insert", "update", "delete", "get"] as const; diff --git a/package-shared/utils/data-fetching/method-crud.ts b/package-shared/utils/data-fetching/method-crud.ts index 954716e..7792b00 100644 --- a/package-shared/utils/data-fetching/method-crud.ts +++ b/package-shared/utils/data-fetching/method-crud.ts @@ -27,6 +27,7 @@ export default async function dsqlMethodCrud< body, query, targetId, + sanitize, }: DsqlMethodCrudParam): Promise> { let result: CRUDResponseObject = { success: false, @@ -61,12 +62,12 @@ export default async function dsqlMethodCrud< let finalData = finalBody ? ({ - ...finalBody.data, + ...finalBody, ...extraData, } as T) : undefined; - if (finalData && user && addUser) { + if (finalData && user?.id && addUser) { finalData = { ...finalData, [addUser.field]: String(user.id), @@ -102,6 +103,7 @@ export default async function dsqlMethodCrud< offset: OFFSET || undefined, } as any) : undefined, + sanitize, }); result = { @@ -117,6 +119,7 @@ export default async function dsqlMethodCrud< action: "insert", table: tableName, data: finalData, + sanitize, }); result = { success: Boolean(POST_RESULT?.success), @@ -132,6 +135,7 @@ export default async function dsqlMethodCrud< table: tableName, data: finalData, targetId, + sanitize, }); result = { success: Boolean(PUT_RESULT?.success), @@ -145,6 +149,7 @@ export default async function dsqlMethodCrud< action: "delete", table: tableName, targetId, + sanitize, }); result = { success: Boolean(DELETE_RESULT?.success), diff --git a/package.json b/package.json index 60b6916..34126ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "3.8.8", + "version": "3.8.9", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {